B2BHint API

B2BHint API as documented publicly: 16 operations. Contract generated from the documentation by API Evangelist (2026-11-02); not the provider's own document.

Operations 16

POST /api/mcp POST /api/mcp #
GET /api/v1/company/changes GET /api/v1/company/changes #
GET /api/v1/company/details GET /api/v1/company/details #
POST /api/v1/company/resolve Resolve up to 25 messy company names/numbers to registry records in one call. #
GET /api/v1/company/search-by-email GET /api/v1/company/search-by-email #
GET /api/v1/country/list List every jurisdiction B2BHint covers. #
GET /api/v1/person/details Fetch one officer/director profile by its numeric id. #
GET /api/v1/user/me GET /api/v1/user/me returns an access object describing which jurisdictions your key may query. #
GET /api/v1/watchlist GET /api/v1/watchlist #
POST /api/v1/watchlist POST /api/v1/watchlist #
GET /api/v2/search/company GET /api/v2/search/company #
GET /api/v2/static-data/countries GET /api/v2/static-data/countries #
GET /api/v2/user/me GET /api/v2/user/me #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/b2bhint-com:b2bhint-com-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

b2bhint-com-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: B2BHint API
  version: '2026-11-02'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-02: 16 operation(s) read from 9 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; B2BHint has published no machine-readable contract that the pipeline
    could find. Engine: oss.'
  x-evidence-tiers:
    code-example: 10
    documentation: 6
    pages-with-code: 9
    pages-read: 9
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-02'
  x-generator: generate-contract-from-docs.py
  x-engine: oss
  x-sources:
  - https://b2bhint.com/en/api-reference/quickstart
  - https://b2bhint.com/en/api-reference/authentication
  - https://b2bhint.com/en/api-reference/pagination
  - https://b2bhint.com/en/api-reference/rate-limits
  - https://b2bhint.com/en/api-reference/verify-widget
  - https://b2bhint.com/en/api-reference/mcp
  - https://b2bhint.com/en/api-reference/search
  - https://b2bhint.com/en/api-reference/company
  - https://b2bhint.com/en/api-reference/static-data
paths:
  /api/mcp:
    post:
      operationId: post_api_mcp
      tags:
      - Api
      summary: POST /api/mcp
      x-source: https://b2bhint.com/en/api-reference/mcp
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiMcpRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl Copy curl -s https://b2bhint.com/api/mcp  -H "Content-Type: application/json"  -H "Accept: application/json, text/event-stream"  -d
          ''{ "jsonrpc" : "2.0" , "id" :1, "method" : "tools/list" }'' Tools search_companies GET /api/v1/company/search Search B2BHint companies
          by name. Wraps GET /api/v1/company/search — counted against your API search allowance. Each result carries its b2bhint.com profil'
  /api/v1/company/changes:
    get:
      operationId: get_api_v1_company_changes
      tags:
      - Api
      summary: GET /api/v1/company/changes
      x-source: https://b2bhint.com/en/api-reference/company
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1CompanyChangesResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Copy curl -G https://b2bhint.com/api/v1/company/changes  -H \"apiKey: {apiKey}\"  -d limit = \"50\" Response · 200 Copy\
          \ { \n \"changes\" : [ \n { \n \"companyName\" : \"Sabiedrība ar ierobežotu atbildību \\\"Tet\\\"\" , \n \"shortName\" : null , \n \"\
          brandName\" : \"Tet\" , \n \"internationalNumber\" : \"40003052786\" , \n \"countryCode\" : \"lv\" , \n \"change\" : \"persons\" , \n\
          \ \"typeId\" : 8 , \n \"at\" : \"2026-07-11T08:14:22.113Z\" "
  /api/v1/company/details:
    get:
      operationId: get_api_v1_company_details
      tags:
      - Api
      summary: GET /api/v1/company/details
      x-source: https://b2bhint.com/en/api-reference/rate-limits
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -sD - -o /dev/null -G https://b2bhint.com/api/v1/company/details  -H "apiKey: {apiKey}"  -d countryCode = gb  -d internationalNumber
          = 00000006 '
  /api/v1/company/resolve:
    post:
      operationId: post_api_v1_company_resolve
      tags:
      - Api
      summary: Resolve up to 25 messy company names/numbers to registry records in one call.
      description: Resolve up to 25 messy company names/numbers to registry records in one call. Wraps POST /api/v1/company/resolve — billed per
        matched row against your API quota.
      x-source: https://b2bhint.com/en/api-reference/mcp
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/company/search:
    get:
      operationId: get_api_v1_company_search
      tags:
      - Api
      summary: Search B2BHint companies by name.
      description: Search B2BHint companies by name. Wraps GET /api/v1/company/search — counted against your API search allowance.
      x-source: https://b2bhint.com/en/api-reference/mcp
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/company/search-by-email:
    get:
      operationId: get_api_v1_company_search_by_email
      tags:
      - Api
      summary: GET /api/v1/company/search-by-email
      x-source: https://b2bhint.com/en/api-reference/search
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1CompanySearchByEmailResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Copy curl -G https://b2bhint.com/api/v1/company/search-by-email  -H \"apiKey: {apiKey}\"  -d email = \" [email protected]\
          \ \" Response · 200 Copy [ \n { \n \"name\" : \"Sabiedrība ar ierobežotu atbildību \\\"Tet\\\"\" , \n \"shortName\" : null , \n \"brandName\"\
          \ : \"Tet\" , \n \"internationalNumber\" : \"40003052786\" , \n \"countryCode\" : \"lv\" \n } , "
  /api/v1/country/list:
    get:
      operationId: get_api_v1_country_list
      tags:
      - Api
      summary: List every jurisdiction B2BHint covers.
      description: List every jurisdiction B2BHint covers. Wraps GET /api/v1/country/list — not metered.
      x-source: https://b2bhint.com/en/api-reference/mcp
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/person/details:
    get:
      operationId: get_api_v1_person_details
      tags:
      - Api
      summary: Fetch one officer/director profile by its numeric id.
      description: Fetch one officer/director profile by its numeric id (from search_officers). Wraps GET /api/v1/person/details — counted against
        your API quota.
      x-source: https://b2bhint.com/en/api-reference/mcp
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/person/search:
    get:
      operationId: get_api_v1_person_search
      tags:
      - Api
      summary: Search B2BHint officers/directors by name.
      description: Search B2BHint officers/directors by name. Wraps GET /api/v1/person/search — counted against your API search allowance.
      x-source: https://b2bhint.com/en/api-reference/mcp
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/v1/user/me:
    get:
      operationId: get_api_v1_user_me
      tags:
      - Api
      summary: GET /api/v1/user/me returns an access object describing which jurisdictions your key may query.
      description: Returns an access object with scope and list of allowed country codes for the API key.
      x-source: https://b2bhint.com/en/api-reference/authentication
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1UserMeResponse'
      x-evidence:
        kind: documentation
  /api/v1/watchlist:
    get:
      operationId: get_api_v1_watchlist
      tags:
      - Api
      summary: GET /api/v1/watchlist
      x-source: https://b2bhint.com/en/api-reference/company
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1WatchlistResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Copy curl https://b2bhint.com/api/v1/watchlist  -H \"apiKey: {apiKey}\" Response · 200 Copy { \n \"watching\" : [ \n {\
          \ \n \"name\" : \"Sabiedrība ar ierobežotu atbildību \\\"Tet\\\"\" , \n \"shortName\" : null , \n \"brandName\" : \"Tet\" , \n \"internationalNumber\"\
          \ : \"40003052786\" , \n \"countryCode\" : \"lv\" , \n \"watchedAt\" : \"2026-07-11T08:14:22.113Z\" , \n \"monitored\" : true \n } , "
    post:
      operationId: post_api_v1_watchlist
      tags:
      - Api
      summary: POST /api/v1/watchlist
      x-source: https://b2bhint.com/en/api-reference/company
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiV1WatchlistRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiV1WatchlistResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Copy curl -X POST https://b2bhint.com/api/v1/watchlist  -H \"apiKey: {apiKey}\"  -H \"Content-Type: application/json\"\
          \  -d '{\n \"companies\" : [\n { \"countryCode\" : \"lv\" , \"internationalNumber\" : \"40003052786\" , \"ref\" : \"supplier-118\" },\n\
          \ { \"countryCode\" : \"gb\" , \"internationalNumber\" : \"00445790\" }\n ]\n }' Response · 200 Copy { \n \"success\" : true , \n \"\
          action\" : \"add\" , \n \"maxItems\" : 50 , \n \"request"
  /api/v2/search/company:
    get:
      operationId: get_api_v2_search_company
      tags:
      - Api
      summary: GET /api/v2/search/company
      x-source: https://b2bhint.com/en/api-reference/pagination
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV2SearchCompanyResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -G https://b2bhint.com/api/v2/search/company  -H \"apiKey: {apiKey}\"  -d q = lukoil  -d perPage = 10  -d page = 1 Paginated\
          \ response Copy { \n \"totalPages\" : 83 , \n \"totalResults\" : 827 , \n \"pagesTruncated\" : false , \n \"perPage\" : 10 , \n \"page\"\
          \ : 1 , \n \"list\" : [ \n { "
  /api/v2/static-data/countries:
    get:
      operationId: get_api_v2_static_data_countries
      tags:
      - Api
      summary: GET /api/v2/static-data/countries
      x-source: https://b2bhint.com/en/api-reference/static-data
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV2StaticDataCountriesResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl Copy curl -G https://b2bhint.com/api/v2/static-data/countries  -H \"apiKey: {apiKey}\" Response · 200 Copy [ \n { \n \"\
          id\" : 136 , \n \"name\" : \"Dubai\" , \n \"parentId\" : 14 , \n \"code\" : \"ae-du\" \n } , \n { \n \"id\" : 21 , \n \"name\" : \"\
          Estonia\" , \n \"parentId\" : null , \n \"code\" : \"ee\" \n } , \n { \n \"id\" : 28 , \n \"name\" : \"Finland\" , \n \"parentId\" :\
          \ null , \n \"code\" : \"fi\" \n } , \n { \n \"id\" : 34 , \n \"name\" : \"Flo"
  /api/v2/user/me:
    get:
      operationId: get_api_v2_user_me
      tags:
      - Api
      summary: GET /api/v2/user/me
      x-source: https://b2bhint.com/en/api-reference/quickstart
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: curl example, the request fetches account information with the necessary authentication. The account endpoint is available as
          both /api/v2/user/me and /api/v1/user/me and the two return the same body — your account record plus the usage , access and freeTier
          objects described later in this guide. Neither one spends any quota, so you can poll it freely. GET /api/v2/user/me cURL Copy curl https://b2
  /api/widget/search:
    get:
      operationId: get_api_widget_search
      tags:
      - Api
      summary: GET /api/widget/search
      x-source: https://b2bhint.com/en/api-reference/verify-widget
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiWidgetSearchResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -G https://b2bhint.com/api/widget/search  --data-urlencode \"q=monzo\"  --data-urlencode \"countryCode=gb\"  --data-urlencode\
          \ \"locale=en\"  --data-urlencode \"limit=5\" Response Copy { \n \"query\" : \"monzo\" , \n \"results\" : [ \n { \n \"name\" : \"Monzo\
          \ Bank Limited\" , \n \"countryCode\" : \"gb\" , \n \"countryName\" : \"United Kingdom\" , \n \"registrationNumber\" : \"09446231\"\
          \ , \n \"address\" : \"Broadwalk House, 5 Appold "
components:
  schemas:
    PostApiMcpRequest:
      type: object
      properties:
        jsonrpc:
          type: string
        id:
          type: integer
        method:
          type: string
    GetApiV1CompanyChangesResponse:
      type: object
      properties:
        changes:
          type: array
          items:
            type: object
            properties:
              companyName:
                type: string
              shortName:
                type:
                - string
                - 'null'
              brandName:
                type: string
              internationalNumber:
                type: string
              countryCode:
                type: string
              change:
                type: string
              typeId:
                type: integer
              at:
                type: string
                format: date-time
        nextCursor:
          type: string
        hasMore:
          type: boolean
        plan:
          type: object
          properties:
            radarFrequency:
              type: string
            eventTypes:
              type: string
            typeIds:
              type: array
              items:
                type: integer
            typeCount:
              type: integer
            trackedTypeCount:
              type: integer
    GetApiV1CompanySearchByEmailResponse:
      type: object
      properties:
        name:
          type: string
        shortName:
          type:
          - string
          - 'null'
        brandName:
          type: string
        internationalNumber:
          type: string
        countryCode:
          type: string
    GetApiV1UserMeResponse:
      type: object
      properties:
        access:
          type: object
          description: Object describing the key's access scope.
        access.scope:
          type: string
          description: Either "all" for unrestricted keys or "scoped" for limited keys.
        access.countries:
          type: array
          description: Sorted list of lowercase country codes the key is allowed to query.
    GetApiV1WatchlistResponse:
      type: object
      properties:
        watching:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              shortName:
                type:
                - string
                - 'null'
              brandName:
                type: string
              internationalNumber:
                type: string
              countryCode:
                type: string
              watchedAt:
                type: string
                format: date-time
              monitored:
                type: boolean
        quota:
          type: object
          properties:
            limit:
              type: integer
            used:
              type: integer
            remaining:
              type: integer
            watchedPersons:
              type: integer
        radar:
          type: object
          properties:
            frequency:
              type: string
            eventTypes:
              type: array
              items:
                type: integer
    PostApiV1WatchlistRequest:
      type: object
      properties:
        companies:
          type: array
          items:
            type: object
            properties:
              countryCode:
                type: string
              internationalNumber:
                type: string
              ref:
                type: string
    PostApiV1WatchlistResponse:
      type: object
      properties:
        success:
          type: boolean
        action:
          type: string
        maxItems:
          type: integer
        requested:
          type: integer
        added:
          type: integer
        alreadyWatching:
          type: integer
        notFound:
          type: integer
        quotaFull:
          type: integer
        countryNotAllowed:
          type: integer
        duplicateInRequest:
          type: integer
        slotsLeft:
          type: integer
        results:
          type: array
          items:
            type: object
            properties:
              ref:
                type: string
              countryCode:
                type: string
              internationalNumber:
                type: string
              status:
                type: string
              name:
                type: string
    GetApiV2SearchCompanyResponse:
      type: object
      properties:
        totalPages:
          type: integer
        totalResults:
          type: integer
        pagesTruncated:
          type: boolean
        perPage:
          type: integer
        page:
          type: integer
        list:
          type: array
          items:
            type: object
    GetApiV2StaticDataCountriesResponse:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        parentId:
          type: integer
        code:
          type: string
    GetApiWidgetSearchResponse:
      type: object
      properties:
        query:
          type: string
        results:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              countryCode:
                type: string
              countryName:
                type: string
              registrationNumber:
                type: string
              address:
                type: string
              url:
                type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: apiKey
security:
- apiKey: []
tags:
- name: Api