Fuentio Resolve API

The resolve API from Fuentio — 5 operation(s) for resolve.

GitHub OpenAPI

Operations 5

POST /v1/resolve Is this the same company? Candidates with match decisions #
POST /v1/match/explain Why two records are (or aren't) the same company #
GET /v1/entities/{entity_id} One Fuentio entity, reconciled across its sources #
GET /v1/entities/{entity_id}/changes What changed at an entity since a date #
GET /v1/entities/{entity_id}/evidence Why Fuentio says what it says about an entity #

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/fuentio-com:fuentio-com-resolve-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

fuentio-com-resolve-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fuentio Resolve API
  summary: Verify any company in France, Spain or the United Kingdom in one call, with sources an auditor accepts.
  description: 'Start here: the sandbox quickstart (curl examples, a Postman collection, MCP setup and companies to try). What each outcome means: /docs/outcomes. Errors: /docs/errors.'
  version: 0.1.0
tags:
- name: Resolve
paths:
  /v1/resolve:
    post:
      tags:
      - Resolve
      summary: Is this the same company? Candidates with match decisions
      description: 'Matches what you know about a company (an official ID, or a name with a postcode or town) against the records Fuentio holds, and returns the candidates with a decision each: `linked` (an official ID proves it), `possible` (band `strong` or `possible`: a name, maybe with an address; never proof) or `rejected`, with reason codes and evidence (docs/matching.md). `outcome`: linked, possible_match or no_match; `uncertainty` says what the answer can''t tell you. Nothing is stored. Costs `STARTAPI_RESOLVE_UNITS` units (2 by default).'
      operationId: resolve_company_v1_resolve_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResolveRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Resolve Company V1 Resolve Post
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: unauthorized
                      message: This API key is unknown or revoked.
                      hint: Get a free key with POST /v1/keys, or call without a key for the keyless trial (20 units a day).
                      docs_url: https://api.fuentio.com/docs/errors#unauthorized
        '402':
          description: Payment Required
          content:
            application/json:
              examples:
                quota_exceeded:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: quota_exceeded
                      message: 'Quota used up: 20 of 20 units today.'
                      hint: Get a free key (100 units a month) with POST /v1/keys.
                      docs_url: https://api.fuentio.com/docs/errors#quota_exceeded
                      details:
                        limit: 20
                        used: 20
                        resets: '2026-10-06'
        '429':
          description: Too Many Requests
          content:
            application/json:
              examples:
                rate_limited:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: rate_limited
                      message: 'Too many requests: the Trial (no key) plan allows 1 per second.'
                      hint: Retry after 0.4 seconds.
                      docs_url: https://api.fuentio.com/docs/errors#rate_limited
                      details:
                        retry_after: 1
        '500':
          description: Internal Server Error
          content:
            application/json:
              examples:
                internal_error:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: internal_error
                      message: Something went wrong on our side.
                      hint: Retry later; quote the request_id if you contact support.
                      docs_url: https://api.fuentio.com/docs/errors#internal_error
        '503':
          description: Service Unavailable
          content:
            application/json:
              examples:
                upstream_unavailable:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: upstream_unavailable
                      message: The official source (Annuaire des Entreprises (API Recherche d'entreprises)) is not answering right now.
                      hint: Retry in a minute.
                      docs_url: https://api.fuentio.com/docs/errors#upstream_unavailable
                      details:
                        source: fr_recherche_entreprises
                        reason: timeout
        '400':
          description: Bad Request
          content:
            application/json:
              examples:
                invalid_request:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: invalid_request
                      message: Give an official identifier or a company name.
                      docs_url: https://api.fuentio.com/docs/errors#invalid_request
  /v1/match/explain:
    post:
      tags:
      - Resolve
      summary: Why two records are (or aren't) the same company
      description: 'Two Fuentio record IDs side by side: the decision under today''s rules (with reason codes and evidence, not stored), the decisions stored for the pair, the links between them, and whether they are one Fuentio entity. Use it to answer "why are these linked?" or "why are these not the same company?". Costs `STARTAPI_EXPLAIN_UNITS` units (1 by default).'
      operationId: explain_match_v1_match_explain_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExplainRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Explain Match V1 Match Explain Post
        '401':
          description: Unauthorized
          content:
            application/json:
              examples:
                unauthorized:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: unauthorized
                      message: This API key is unknown or revoked.
                      hint: Get a free key with POST /v1/keys, or call without a key for the keyless trial (20 units a day).
                      docs_url: https://api.fuentio.com/docs/errors#unauthorized
        '402':
          description: Payment Required
          content:
            application/json:
              examples:
                quota_exceeded:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: quota_exceeded
                      message: 'Quota used up: 20 of 20 units today.'
                      hint: Get a free key (100 units a month) with POST /v1/keys.
                      docs_url: https://api.fuentio.com/docs/errors#quota_exceeded
                      details:
                        limit: 20
                        used: 20
                        resets: '2026-10-06'
        '429':
          description: Too Many Requests
          content:
            application/json:
              examples:
                rate_limited:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: rate_limited
                      message: 'Too many requests: the Trial (no key) plan allows 1 per second.'
                      hint: Retry after 0.4 seconds.
                      docs_url: https://api.fuentio.com/docs/errors#rate_limited
                      details:
                        retry_after: 1
        '500':
          description: Internal Server Error
          content:
            application/json:
              examples:
                internal_error:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: internal_error
                      message: Something went wrong on our side.
                      hint: Retry later; quote the request_id if you contact support.
                      docs_url: https://api.fuentio.com/docs/errors#internal_error
        '503':
          description: Service Unavailable
          content:
            application/json:
              examples:
                upstream_unavailable:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: upstream_unavailable
                      message: The official source (Annuaire des Entreprises (API Recherche d'entreprises)) is not answering right now.
                      hint: Retry in a minute.
                      docs_url: https://api.fuentio.com/docs/errors#upstream_unavailable
                      details:
                        source: fr_recherche_entreprises
                        reason: timeout
  /v1/entities/{entity_id}:
    get:
      tags:
      - Resolve
      summary: One Fuentio entity, reconciled across its sources
      description: 'The entity''s records reconciled field by field (name, status, address, legal form, creation date, activity): each field has the value served, the value as published, its source, record, retrieval time and record hash, and every competing value another source gives (ADR-054 source priority). `conflicting_sources` lists the fields where sources disagree; `uncertainty` says what the answer can''t tell you. `as_of=YYYY-MM-DD` shows each record as it stood that day (stored history). A merged entity''s old ID still answers. Costs `STARTAPI_LOOKUP_UNITS` units (1).'
      operationId: get_entity_v1_entities__entity_id__get
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          maxLength: 20
          examples:
          - fu_7K3M9Q2XH4PZ
          title: Entity Id
      - name: as_of
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: 'YYYY-MM-DD: records as they stood then.'
          title: As Of
        description: 'YYYY-MM-DD: records as they stood then.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Entity V1 Entities  Entity Id  Get
        '401':
          content:
            application/json:
              examples:
                unauthorized:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: unauthorized
                      message: This API key is unknown or revoked.
                      hint: Get a free key with POST /v1/keys, or call without a key for the keyless trial (20 units a day).
                      docs_url: https://api.fuentio.com/docs/errors#unauthorized
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                quota_exceeded:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: quota_exceeded
                      message: 'Quota used up: 20 of 20 units today.'
                      hint: Get a free key (100 units a month) with POST /v1/keys.
                      docs_url: https://api.fuentio.com/docs/errors#quota_exceeded
                      details:
                        limit: 20
                        used: 20
                        resets: '2026-10-06'
          description: Payment Required
        '429':
          content:
            application/json:
              examples:
                rate_limited:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: rate_limited
                      message: 'Too many requests: the Trial (no key) plan allows 1 per second.'
                      hint: Retry after 0.4 seconds.
                      docs_url: https://api.fuentio.com/docs/errors#rate_limited
                      details:
                        retry_after: 1
          description: Too Many Requests
        '500':
          content:
            application/json:
              examples:
                internal_error:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: internal_error
                      message: Something went wrong on our side.
                      hint: Retry later; quote the request_id if you contact support.
                      docs_url: https://api.fuentio.com/docs/errors#internal_error
          description: Internal Server Error
        '503':
          content:
            application/json:
              examples:
                upstream_unavailable:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: upstream_unavailable
                      message: The official source (Annuaire des Entreprises (API Recherche d'entreprises)) is not answering right now.
                      hint: Retry in a minute.
                      docs_url: https://api.fuentio.com/docs/errors#upstream_unavailable
                      details:
                        source: fr_recherche_entreprises
                        reason: timeout
          description: Service Unavailable
  /v1/entities/{entity_id}/changes:
    get:
      tags:
      - Resolve
      summary: What changed at an entity since a date
      description: 'Dated changes from every record the entity holds: fields that changed between two stored versions (`observed_at`: when Fuentio saw it) and the source''s own dated events (Spain: BORME acts, `effective_date`), each with its source and evidence (version hash or document link). `gaps` lists what the sources can''t tell for the window (days not loaded, or a live source not checked since); a quiet window with gaps is never "no change". Costs `STARTAPI_HISTORY_UNITS` units (1).'
      operationId: get_entity_changes_v1_entities__entity_id__changes_get
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          maxLength: 20
          examples:
          - fu_7K3M9Q2XH4PZ
          title: Entity Id
      - name: since
        in: query
        required: true
        schema:
          type: string
          format: date
          description: 'YYYY-MM-DD: changes on or after this day.'
          title: Since
        description: 'YYYY-MM-DD: changes on or after this day.'
      - name: until
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: YYYY-MM-DD; default today.
          title: Until
        description: YYYY-MM-DD; default today.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Entity Changes V1 Entities  Entity Id  Changes Get
        '401':
          content:
            application/json:
              examples:
                unauthorized:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: unauthorized
                      message: This API key is unknown or revoked.
                      hint: Get a free key with POST /v1/keys, or call without a key for the keyless trial (20 units a day).
                      docs_url: https://api.fuentio.com/docs/errors#unauthorized
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                quota_exceeded:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: quota_exceeded
                      message: 'Quota used up: 20 of 20 units today.'
                      hint: Get a free key (100 units a month) with POST /v1/keys.
                      docs_url: https://api.fuentio.com/docs/errors#quota_exceeded
                      details:
                        limit: 20
                        used: 20
                        resets: '2026-10-06'
          description: Payment Required
        '429':
          content:
            application/json:
              examples:
                rate_limited:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: rate_limited
                      message: 'Too many requests: the Trial (no key) plan allows 1 per second.'
                      hint: Retry after 0.4 seconds.
                      docs_url: https://api.fuentio.com/docs/errors#rate_limited
                      details:
                        retry_after: 1
          description: Too Many Requests
        '500':
          content:
            application/json:
              examples:
                internal_error:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: internal_error
                      message: Something went wrong on our side.
                      hint: Retry later; quote the request_id if you contact support.
                      docs_url: https://api.fuentio.com/docs/errors#internal_error
          description: Internal Server Error
        '503':
          content:
            application/json:
              examples:
                upstream_unavailable:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: upstream_unavailable
                      message: The official source (Annuaire des Entreprises (API Recherche d'entreprises)) is not answering right now.
                      hint: Retry in a minute.
                      docs_url: https://api.fuentio.com/docs/errors#upstream_unavailable
                      details:
                        source: fr_recherche_entreprises
                        reason: timeout
          description: Service Unavailable
  /v1/entities/{entity_id}/evidence:
    get:
      tags:
      - Resolve
      summary: Why Fuentio says what it says about an entity
      description: 'For each field (or one `field`): the value served and every competing value, each with its source, record, retrieval time, source link and the SHA-256 of the stored record version; then the links between the entity''s records with the stored match decision behind each. `as_of` reads the records as they stood that day. Costs `STARTAPI_EVIDENCE_UNITS` units (1).'
      operationId: get_entity_evidence_v1_entities__entity_id__evidence_get
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          maxLength: 20
          examples:
          - fu_7K3M9Q2XH4PZ
          title: Entity Id
      - name: field
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: One field, e.g. status.
          title: Field
        description: One field, e.g. status.
      - name: as_of
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: YYYY-MM-DD.
          title: As Of
        description: YYYY-MM-DD.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Entity Evidence V1 Entities  Entity Id  Evidence Get
        '401':
          content:
            application/json:
              examples:
                unauthorized:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: unauthorized
                      message: This API key is unknown or revoked.
                      hint: Get a free key with POST /v1/keys, or call without a key for the keyless trial (20 units a day).
                      docs_url: https://api.fuentio.com/docs/errors#unauthorized
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                quota_exceeded:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: quota_exceeded
                      message: 'Quota used up: 20 of 20 units today.'
                      hint: Get a free key (100 units a month) with POST /v1/keys.
                      docs_url: https://api.fuentio.com/docs/errors#quota_exceeded
                      details:
                        limit: 20
                        used: 20
                        resets: '2026-10-06'
          description: Payment Required
        '429':
          content:
            application/json:
              examples:
                rate_limited:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: rate_limited
                      message: 'Too many requests: the Trial (no key) plan allows 1 per second.'
                      hint: Retry after 0.4 seconds.
                      docs_url: https://api.fuentio.com/docs/errors#rate_limited
                      details:
                        retry_after: 1
          description: Too Many Requests
        '500':
          content:
            application/json:
              examples:
                internal_error:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: internal_error
                      message: Something went wrong on our side.
                      hint: Retry later; quote the request_id if you contact support.
                      docs_url: https://api.fuentio.com/docs/errors#internal_error
          description: Internal Server Error
        '503':
          content:
            application/json:
              examples:
                upstream_unavailable:
                  value:
                    meta:
                      request_id: req_example
                    error:
                      code: upstream_unavailable
                      message: The official source (Annuaire des Entreprises (API Recherche d'entreprises)) is not answering right now.
                      hint: Retry in a minute.
                      docs_url: https://api.fuentio.com/docs/errors#upstream_unavailable
                      details:
                        source: fr_recherche_entreprises
                        reason: timeout
          description: Service Unavailable
components:
  schemas:
    ResolveRequest:
      properties:
        country:
          type: string
          title: Country
          description: 'ISO country code: FR or ES.'
          examples:
          - FR
        name:
          anyOf:
          - type: string
            maxLength: 200
          - type: 'null'
          title: Name
          description: The company's name as you have it.
        identifier:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Identifier
          description: 'An official ID if you have one (SIREN, SIRET, VAT, LEI, Registro Mercantil sheet): the only thing that links exactly.'
          examples:
          - '441639465'
        id_scheme:
          anyOf:
          - type: string
          - type: 'null'
          title: Id Scheme
          description: Force the ID type, e.g. LEI.
        postal_code:
          anyOf:
          - type: string
            maxLength: 20
          - type: 'null'
          title: Postal Code
          examples:
          - '92100'
        locality:
          anyOf:
          - type: string
            maxLength: 100
          - type: 'null'
          title: Locality
          examples:
          - Boulogne-Billancourt
        limit:
          type: integer
          maximum: 10.0
          minimum: 1.0
          title: Limit
          description: Candidates returned.
          default: 5
      additionalProperties: false
      type: object
      required:
      - country
      title: ResolveRequest
    ExplainRequest:
      properties:
        left:
          type: string
          title: Left
          description: A Fuentio record ID.
          examples:
          - FR-SIREN-441639465
        right:
          type: string
          title: Right
          description: Another record ID.
          examples:
          - FR-LEI-969500F7JLTX36OUI695
      additionalProperties: false
      type: object
      required:
      - left
      - right
      title: ExplainRequest