A provider (or supplier) is a government institution that independently hosts asset declaration data in a PDN-compatible REST API. S1 Backend connects to one or more providers defined inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/PDNMX/s1_backend/llms.txt
Use this file to discover all available pages before exploring further.
endpoints.json. Each provider has a unique supplier_id that callers use when targeting a specific provider in search and summary requests.
Provider Fields
GET /v1/providers returns an array of provider objects. Each object exposes the following fields — note that internal credentials (username, password, client_id, client_secret, token_url, url) are stripped and never returned to callers.
A short, unique identifier for the provider. Used by callers to target a specific provider in
POST /v1/search and to filter results in POST /v1/summary.Example: "EDOMEX"The full official institutional name of the provider.Example:
"Secretaría Ejecutiva del Sistema Estatal Anticorrupción del Estado México"One or more government levels that the provider belongs to. Used to filter providers in
POST /v1/summary via the nivel_gobierno field.Valid values: "federal", "estatal", "municipal"Example: ["estatal"]Provider status field passed through directly from
endpoints.json. Its shape depends on what was configured for each provider — it is not interpreted or transformed by S1 Backend.Government Levels
Every provider tags itself with one or morelevels values to indicate which tier of Mexican government it represents:
| Value | Scope |
|---|---|
"federal" | Federal government institutions |
"estatal" | State-level (entidad federativa) institutions |
"municipal" | Municipal or borough-level institutions |
POST /v1/summary, you can pass a nivel_gobierno string to restrict the fan-out to only providers whose levels array includes that value. If nivel_gobierno is omitted, S1 Backend queries all configured providers.
Using supplier_id in Requests
The supplier_id is the primary key callers use to address a specific provider.
In POST /v1/search
supplier_id is required in the request body. S1 Backend looks up the matching endpoint in endpoints.json and queries only that provider.
supplier_id is missing entirely, the gateway returns HTTP 500:
supplier_id is present but does not match any configured provider, the gateway also returns HTTP 500:
In POST /v1/summary
supplier_id is optional here. Pass it inside an institucion object to restrict the summary fan-out to a single provider:
institucion is provided, the nombre value is also forwarded to the provider as the institucionDependencia query filter.
Example: Discover Providers, Then Search
The typical client flow is to fetch the provider list first, pick asupplier_id, and then use it in a search request.
The list of available providers depends entirely on the contents of
endpoints.json on the server — there are no hardcoded providers in the source code. If endpoints.json is empty or missing, GET /v1/providers returns an empty array and all summary/search requests will have no providers to query.