B2TrustB2Trust

API Documentation

Programmatic access to global business registry data.

Get a trial key

Quick start

Make your first request in seconds. All you need is an API key.

curl -H "X-API-Key: b2t_your_key" \
  "https://b2trust.com/api/v1/search?q=CD+Projekt"

Authentication

Authenticate every request by including your API key in the X-API-Key header.

X-API-Key: b2t_your_key

API keys are prefixed with b2t_. Keep your key secret and never expose it in client-side code.

Endpoints

GET/api/v1/search

Search for companies across all registries by name, tax ID, VAT number, or registry number.

ParameterTypeDescription
qstringRequired. Company name, tax ID, VAT number, or registry number.
modeenumname (default) or taxid. Hints the confidence scorer; with taxid, default status becomes all.
countrystringISO 3166-1 alpha-2 country code, comma-separated for multiple (e.g. PL,DE). Note UK is GB.
statusenumactive (default for mode=name), suspended, dissolved, inactive, or all.
legal_formstringFilter by legal form, comma-separated. Case-insensitive partial match.
citystringFilter by registered-address city. Case-insensitive partial match.
date_fromISO dateEarliest registration date, format YYYY-MM-DD.
date_toISO dateLatest registration date, format YYYY-MM-DD.
sortenumrelevance (default), newest, oldest, name_asc, name_desc, country, confidence.
pagenumberPage number, default 1.
limitnumberResults per page. Default 50, max 500.
localestringResponse locale hint (e.g. en, pl). Default en.

Every result includes registry_count — the number of independent sources that confirm the company. This is B2Trust's consensus signal: we report how many sources agree, not which registries they are.

Country codes are ISO 3166-1 alpha-2. The United Kingdom is GB (never UK); other common codes include PL, CZ, DE, NO, FR, US, AU, NZ, BR, FI, SK.

GET/api/v1/company/{country_code}-{national_id}

Retrieve a full company profile by its unique identifier (cache + live enrichment + BII + VIES cross-check).

curl -H "X-API-Key: b2t_your_key" \
  "https://b2trust.com/api/v1/company/PL-7342867148"

The path identifier is {country_code}-{national_id}. UK companies use GB (e.g. GB-12345678).

POST/api/v1/company/{country_code}-{national_id}/verify-bank

Verify whether a bank account is registered against this company on the Polish VAT Whitelist (Biała Lista). Poland only. Never returns account numbers — only a boolean result.

Body fieldTypeDescription
accountstring (JSON)Required. Bank account to check. Accepts a 26-digit NRB or a PL-prefixed IBAN (PL + 26 digits). Spaces, dashes, dots and slashes are ignored.

Send the account in a JSON request body:

curl -X POST \
  -H "X-API-Key: b2t_your_key" \
  -H "Content-Type: application/json" \
  -d '{"account": "PL61109010140000071219812874"}' \
  "https://b2trust.com/api/v1/company/PL-7342867148/verify-bank"

Response:

{
  "status": "ok",
  "data": {
    "verified": true,
    "company_name": "CD PROJEKT S.A.",
    "account_count": 2,
    "checked_at": "2026-06-30T15:00:00.000Z"
  }
}

Response schema

All responses follow a consistent envelope format. /search returns an array; /company/{id} returns a single object.

Search response

{
  "status": "ok",
  "query": "CD Projekt",
  "mode": "name",
  "data": [
    {
      "country_code": "PL",
      "national_id": "7342867148",
      "registry_number": "0000317499",
      "company_name": "CD Projekt S.A.",
      "legal_form": "Spółka Akcyjna",
      "status": "active",
      "registered_address": {
        "street": "ul. Jagiellońska 74",
        "city": "Warszawa",
        "postal_code": "03-301",
        "country": "PL"
      },
      "registration_date": "2002-02-01",
      "registry_count": 3,
      "vat_number": "PL7342867148",
      "fetched_at": "2026-04-30T00:23:02.602Z",
      "confidence": {
        "score": 92,
        "label": "High",
        "color": "green",
        "factors": ["Exact name match", "Verified by 3 registries"]
      },
      "first_indexed_at": "2025-11-10T08:14:00.000Z",
      "vies_status": "valid",
      "vies_note": null
    }
  ],
  "meta": {
    "total": 1,
    "page": 1,
    "limit": 50,
    "total_pages": 1,
    "query_time_ms": 412,
    "cache_hit": true,
    "countries": ["PL"],
    "country_counts": { "PL": 1 },
    "legal_forms": ["Spółka Akcyjna"]
  }
}

Company response

The profile returns company identity plus B2Trust Identity Consensus metadata — how many independent sources confirm the entity (registry_count, source_breakdown by type, confirmation_count), EU VAT cross-check, and time-in-index. We expose how many sources confirm a record, never which registries. Natural-person data (directors, beneficial owners, shareholders) and raw bank account numbers are not exposed.

{
  "status": "ok",
  "data": {
    "country_code": "PL",
    "national_id": "7342867148",
    "vat_number": "PL7342867148",
    "secondary_id": "0000317499",
    "registry_number": "0000317499",
    "company_name": "CD Projekt S.A.",
    "legal_form": "Spółka Akcyjna",
    "registered_address": {
      "street": "ul. Jagiellońska 74",
      "city": "Warszawa",
      "postal_code": "03-301",
      "country": "PL"
    },
    "registration_date": "2002-02-01",
    "status": "active",
    "activity_codes": [
      { "code": "62.01.Z", "system": "PKD", "description": "Software development" }
    ],
    "registry_count": 3,
    "bank_accounts_count": 2,
    "verified_at": "2026-04-30T00:23:02.602Z",
    "first_indexed_at": "2025-11-10T08:14:00.000Z",
    "vies_cross_check_status": "valid_match",
    "vies_name": "CD PROJEKT SPÓŁKA AKCYJNA",
    "vies_match_score": 0.94,
    "vies_checked_at": "2026-04-30T00:23:01.000Z",
    "vies_vat_id": "PL7342867148",
    "confirmation_count": 5,
    "source_breakdown": { "registry": 3, "search": 1, "node_scan": 0, "opc": 0, "bulk_import": 1 },
    "first_seen": "2025-11-10T08:14:00.000Z",
    "last_confirmed": "2026-04-30T00:23:02.602Z"
  },
  "meta": {
    "cached": true,
    "enriched": false,
    "source_count": 3,
    "fetched_at": "2026-04-30T00:23:02.602Z",
    "expires_at": "2026-05-07T00:23:02.602Z"
  }
}

Notes on meta.country_counts

When country= is supplied, country_counts reflects only the filtered country (post-filter counts). Without country=, it reports counts across every country present in the result set. meta.countries follows the same source — it is always Object.keys(country_counts).

Rate limits

PlanPer minutePer dayValidity
Trial (b2t_trial_*)2020014 days

Limits are enforced per API key. Exceeding either limit returns a 429 status with a Retry-After header. Higher tiers are issued on request — contact contact@b2trust.com.

Error codes

CodeStatusDescription
400Bad RequestMissing or invalid query parameters
401UnauthorizedMissing or invalid API key
404Not FoundCompany or resource not found
429Too Many RequestsRate limit exceeded
500Internal Server ErrorUnexpected server error

Code examples

Python

import requests

response = requests.get(
    "https://b2trust.com/api/v1/search",
    params={"q": "CD Projekt"},
    headers={"X-API-Key": "b2t_your_key"}
)

data = response.json()
for company in data["data"]:
    print(company["company_name"], company["country_code"])

JavaScript

const response = await fetch(
  "https://b2trust.com/api/v1/search?q=CD+Projekt",
  {
    headers: { "X-API-Key": "b2t_your_key" }
  }
);

const { data } = await response.json();
data.forEach(company => {
  console.log(company.company_name, company.country_code);
});

curl

curl -H "X-API-Key: b2t_your_key" \
  "https://b2trust.com/api/v1/search?q=CD+Projekt&country=PL&limit=5"