sirenic

Public procurement of a Spanish company

Every day the Spanish Ministry of Finance publishes, in CODICE and under written reuse conditions, the tenders of the profiles hosted by the public-procurement platform and those of the aggregated regional platforms — close to half a million award results a year. This route finds a company by its NIF, as a winner (lot, result, amounts, buyer) and as a buyer when the public entity carries a NIF.

See a real response (free) Get the quote for /v1/eu/entreprise/ES/{nif}/marches-publics

What the route returns

Catalogue description, exactly as agents read it:

Public-procurement record of a Spanish company from the Plataforma de Contratación del Sector Público (Ministry of Finance CODICE feeds, hosted profiles and aggregated regional platforms, since 2012): contracts WON matched by legal-person NIF — buyer (name, DIR3), subject, CPV, lot, result, award date, amounts in EUR, tenders received, SME flag — and notices ISSUED as a buyer; newest first, capped at 100. Never a natural-person winner. Reuse under the ministry's conditions.

Expected identifier

Legal-person NIF: one letter, seven digits, a check character (e.g. A28582013).

A wrongly formatted identifier in the path returns 400 and is not billed — but it costs you a round trip. It is the leading cause of failed calls on the foreign routes. A search parameter, by contrast, is cleaned up: unsupported characters are stripped and the usable query is served.

Extract from a genuinely paid response

Dated snapshot from 2026-09-18, truncated to one item per array and then cut for length. It is not live data. The full extract is served free of charge from the samples surface, and the schema from the OpenAPI document.

{
 "pays": "ES",
 "nif": "A28582013",
 "attributions": [
  {
   "id": "19724487",
   "flux": "licitaciones",
   "expediente": "26/030",
   "lien": "https://contrataciondelestado.es/wps/poc?uri=deeplink:detalle_licitacion&idEvl=JGc4e4Jv86zECtSnloz%2BZQ%3D%3D",
   "statut": "attribuée",
   "statut_source": "ADJ",
   "objet": "Ejecución de las obras del \"Proyecto de construcción para la prolongación de los andenes de las estaciones de la Línea 3 de Metrovalencia\"",
   "type_contrat": "travaux",
   "type_contrat_source": "3",
   "procedure": "ouvert",
   "procedure_source": "1",
   "cpv": [
    "45234121",
    "45234126"
   ],
   "nuts": "ES521",
   "budget_ht_eur": 2897272.46,
   "fonds_ue": false,
   "acheteur": {
    "nom": "Gerencia de Ferrocarrils de la Generalitat Valenciana",
    "dir3": null,
    "nif": "Q9650001B",
    "type": "7",
    "hierarchie": [
     "Ferrocarrils de la Generalitat Valenciana",
     "Comunidad Valenciana"
    ]
   },
   "mis_a_jour": "2026-09-17T18:10:24Z",
   "lot": null,
   "resultat": "attribué",
   "resultat_source": "8",
   "date_attribution": "2026-09-16",
   "montant_ht_eur": 2576254.67,
   "montant_ttc_eur": 3117268.15,
   "offres_recues": 9,
   "pme": false,
   "gagnant": {
    "nif": "A28582013",
    "nom_publie": "CHM OBRAS E INFRAESTRUCTURAS SA",
    "nuts": "ES521",
    "localite": "ALICANTE"
   }
  }
 ],
 "nombre_attributions": 1,
 "valeur_totale_ht_eur": 2576254.67,
 "tronque_attributions": false,
 "aucune_attribution": false,
 "avis_emis": [],
 "nombre_avis_emis": 0,
 "tronque_avis_emis": false,
 "stock": {
  "depuis": "2012",
 
…

Price and billing

Price: $0.02. The authoritative amount is the one in the 402 quote returned by the route itself — not this text, which derives from the same grid but is still just a page.

An error response cancels the payment: a 400, 404 or 503 is never billed. An upstream outage closes the route with a 503 rather than serving a degraded response.

Calling the route

# 1. Le devis, sans rien payer : la route répond 402 avec son montant
curl -i https://api.sirenic.eu/v1/eu/entreprise/ES/{nif}/marches-publics

# 2. L'appel réglé — le client x402 paie le devis et rejoue la requête
npx x402-fetch https://api.sirenic.eu/v1/eu/entreprise/ES/{nif}/marches-publics

# 3. Ou en MCP, dans Claude Code / Cursor / un agent
claude mcp add --transport http sirenic https://api.sirenic.eu/mcp

What this route does not do

Partial coverage by construction: 20 % of results carry no winner NIF (consortia without their own NIF, void lots) and Spain has no open register by NIF — a NIF with no row answers 404 without charge, never a sold zero. Never a natural-person winner (DNI, NIE refused), never a contact. Amounts in EUR as published. Source: Ministerio de Hacienda.

Neighbouring routes

How you pay

Every route is paid per call, in USDC or EURC on the Base network, over the x402 protocol: no account to create, no API key, no subscription. The first call returns a 402 quote your client settles, then replays the call. A failed call is never billed.

Would you rather have a euro invoice and prepaid credits? That is in preparation, and we will not announce a date until it is open. Write to contact@sirenic.eu and we will let you know when it opens.

Paid responses are Ed25519-signed: you can later prove what was served to you, and when. The whole catalogue is free to read in the OpenAPI document and in llms.txt.

One call, end to end

# Client x402 (npm) — le devis 402 est réglé et l'appel rejoué automatiquement
npx x402-fetch https://api.sirenic.eu/v1/entreprise/552032534

# Ou en MCP, dans Claude Code / Cursor
claude mcp add --transport http sirenic https://api.sirenic.eu/mcp

Routes used and pricing

RoutePriceSampleWhat it returns
/v1/eu/entreprise/ES/{nif}/marches-publics$0.02free samplePublic-procurement record of a Spanish company from the Plataforma de Contratación del Sector Público (Ministry of Finance CODICE feeds, hosted profiles and aggregated regional platforms, since 2012): contracts WON matched by legal-person NIF — buyer (name, DIR3), subject, CPV, lot, result, award date, amounts in EUR, tenders received, SME flag — and notices ISSUED as a buyer; newest first, capped at 100. Never a natural-person winner. Reuse under the ministry's conditions.

Contract end dates are estimates, computed from the notification date and the declared duration. This is not an official re-tendering calendar.

Take it further

No account to create, no key to request: the first step is free and shows you exactly what you would be buying.

See a real response (free) Get the quote for /v1/eu/entreprise/ES/{nif}/marches-publics Get notified about euro packs

Read next

Volume figures on this page were measured in our database on 2026-08-19. They are dated snapshots, not live counters. · OpenAPI · llms.txt · Full route catalogue and pricing