How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

OpenMercantil Public Procurement API

Public procurement awards (PLACSP) and grants (BDNS)

OpenMercantil Public Procurement API is one of 18 APIs that OpenMercantil publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Public Procurement. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 13 operations across 13 paths, organized into 3 resource areas, and defines 27 schemas. It is described by OpenAPI 3.1.0, at version 1.9.3.

Requests are made against a single base URL, https://openmercantil.es.

13 operations 13 paths 27 schemas 13 GET

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
1.9.3
Base URL
https://openmercantil.es
Authentication
API Key, HTTP Bearer
Terms of Service
Resource Areas
3

Authentication & Security 2

OpenMercantil Public Procurement API declares 2 security schemes for authenticating requests. An API key is passed in the header as X-API-Key (apiKey). It accepts HTTP bearer tokens (opaque omk_* credential) (bearerAuth).

  • apiKey — Optional opaque omk API credential for public GETs. Anonymous access remains valid; a credential with the operation's x-api-credential-scope (or public:read) s…
  • bearerAuth — Optional Authorization: Bearer transport for the same opaque omk API credential accepted by X-API-Key. It is not a JWT or OAuth access token.

Paths & Operations 13

Across 13 paths, the API surfaces 13 operations — 13 GET. They span 3 resource areas: Companies, Persons, Public Procurement. Each is listed below with its method, path, parameters, and response codes.

Companies 4
GET
/api/v1/company/{slug}/contracts
Get PLACSP procurement notices linked to a legal entity
getCompanyBySlugContracts 2 params → 200400422404429500503
GET
/api/v1/company/{slug}/procurement
Alias of /contracts
getCompanyBySlugProcurement 1 param → 200400404429500503
GET
/api/v1/company/{slug}/grants
Get BDNS public grants
getCompanyBySlugGrants 3 params → 200304400422404429503
GET
/api/v1/company/{slug}/ted
Get TED notice records linked to this corporate NIF
getCompanyBySlugTed 3 params → 200304400422404429503
Persons 1
GET
/api/v1/persona/{slug}/contractsdeprecated
Person-to-procurement derivation (unavailable)
getPersonaBySlugContracts 1 param → 429503
Public Procurement 8

Public procurement awards (PLACSP) and grants (BDNS)

GET
/api/v1/contracts/top-companies
Corporate suppliers ranked by PLACSP award procedures
getContractsTopCompanies 1 param → 200400422429500503
GET
/api/v1/contracts/top-personsdeprecated
Top persons by PLACSP-signatory companies
getContractsTopPersons → 429503
GET
/api/v1/contracts/top-companies.csv
Corporate suppliers by award procedures (CSV)
getContractsTopCompaniesCsv 1 param → 200400422429500503
GET
/api/v1/contracts/top-persons.csvdeprecated
Top persons by PLACSP-signatory companies (CSV)
getContractsTopPersonsCsv → 400429503
GET
/api/v1/tenders
Search public procurement notices
searchTenders 14 params → 200400422429500503
GET
/api/v1/tenders/{key}
Get a sanitized procurement notice
getTender 1 param → 200400404429500503
GET
/api/v1/tenders/stats
Get non-personal procurement coverage metrics
getTenderStats → 200400429500503
GET
/api/v1/tenders/suppliers
List corporate suppliers by award count
listTenderSuppliers 1 param → 200400422429500503

Schemas 27

The contract defines 27 schemas that model the data the API accepts and returns. The most detailed are ErrorResponse (35 properties), TenderNotice (31 properties), CompanyIntegrationAcquisitionCoverage (17 properties), CompanyGrantsResponse (15 properties). Each schema is shown below with its type and property counts.

CompanyGrantsResponse
object
Generation-bound BDNS view. count is the total projected row count; returnedcount is the bounded slice length. No monetary rollup is emitted.
15 properties 14 required
CompanyIntegrationAcquisitionCoverage
object
Attested acquisition boundary for one governed source package. Completeness applies only to this exact bounded scope; completehistoryclaimed and sourcesnapshot…
17 properties 17 required
CompanyIntegrationProjection
object
4 properties 4 required
CompanyIntegrationSourceMetadata
object
Projection-bound legal metadata plus the exact governed acquisition boundary for a company integration source.
13 properties 13 required
CompanyProcurementResponse
object
12 properties 7 required
CompanyTedResponse
object
Generation-bound minimized TED view. count is the total projected row count; returnedcount is the bounded slice length.
15 properties 14 required
ErrorResponse
object
Closed compatibility envelope for public/account errors. Route-specific schemas narrow these fields further where required.
35 properties 1 required
GrantRecord
object
Minimized, attested BDNS row. awardamountcents is an awarded amount, never proof of payment.
9 properties 9 required
JsonValue
A JSON value used only inside explicitly documented extension maps.
ProjectionUnavailableError
object
Fail-closed projection outage. Clients must not reinterpret this response as an empty or negative result.
3 properties 3 required
PublicSourcePolicyMetadata
object
12 properties 8 required
SourceCatalogEnvelope
object
4 properties 3 required
TedContractRecord
object
Minimized, attested TED notice. Tenderer, currency and connector free text are excluded.
4 properties 4 required
TenderCollectionMetadata
object
Hard response bounds and per-collection truncation flags. Truncation never triggers an unbounded fallback.
2 properties 2 required
TenderCoverage
object
8 properties
TenderDataQuality
object
6 properties 6 required
TenderGeography
object
3 properties 3 required
TenderLot
object
7 properties 7 required
TenderMoney
object
2 properties 2 required
TenderNotice
object
31 properties 31 required
TenderParty
object
6 properties
TenderResult
object
11 properties 11 required
TenderResultSupplier
object
2 properties 2 required
TenderSearchFilters
object
12 properties 12 required
TenderSearchResponse
object
12 properties 11 required
TenderStats
object
12 properties 11 required
TenderSupplierResponse
object
10 properties 9 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

openmercantil-public-procurement-api-openapi.yml Raw ↑

Other APIs OpenMercantil publishes across the network.

OpenMercantil API Credentials API
OpenMercantil Billing API
OpenMercantil BORME API
OpenMercantil Companies API
OpenMercantil Datasets API
OpenMercantil Graph API
OpenMercantil Integrations API
OpenMercantil Legal API
OpenMercantil Persons API
OpenMercantil Risk Signals API
OpenMercantil Search API
OpenMercantil Sectors API
Where this information came from

This is an independent, third-party profile of OpenMercantil Public Procurement API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.