Fuentio Resolve API
The resolve API from Fuentio — 5 operation(s) for resolve.
The resolve API from Fuentio — 5 operation(s) for resolve.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/fuentio-com:fuentio-com-resolve-api"
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.
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: 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