Use case · Public-sector risk

Public Procurement Screening API

Look up public-contract awards from Spain, France, the UK, Ireland, Poland and Norway by supplier, buyer, CPV code or date, and link an award back to a company's registry profile. One REST endpoint, updated daily from the official platforms.

Published 18 September 2026, updated 5 October 2026 · Esta página en español · Cette page en français

The problem

A supplier's registry status says it exists and is active. It does not say whether the supplier has ever done business with the public sector, how much of its book depends on one contracting body, or what a given ayuntamiento, ministry or mairie has awarded before. Compliance and procurement teams that want that context today read it off PLACSP and DECP filings by hand, one contracting body at a time.

GET /procurement/awards puts the same published data behind one REST call. It is a list of award rows, not a score: the reading is up to you.

The endpoint

GET /procurement/awards filters by country (ES, FR, GB, IE, PL or NO; omit it for all six), company_id, nif (exact, the supplier identifier as published: NIF, SIRET, Companies House number, CRO number, NIP or organisasjonsnummer), supplier or buyer (name, minimum 3 characters), cpv (2 to 8 digits), date_from/date_to and min_amount. At least one of company_id, nif, supplier, buyer, cpv or date_from is required. Results come back newest first, up to 100 per page (limit), with a keyset cursor for the next page.

One row is one award to one supplier. Each carries id, country, company_id, supplier_name, supplier_tax_id, buyer, buyer_id, subject, amount_eur, amount_contract_eur, amount_is_ceiling, amount_suspect, award_date, nature, is_framework, n_suppliers, contract_type, procedure, cpv, bids_received, sme, duration_months, file_reference, source_url. source_url links back to the published filing for audit. A Spanish company's ten latest awards are also available inline via GET /companies/{id}?include=procurement.

# Road-works awards (CPV 45) from 2026 onward, all countries, any buyer
curl "https://api.prometiam.com/functions/v1/risk-api/procurement/awards?cpv=45&date_from=2026-01-01&limit=50" \
  -H "Authorization: Bearer rk_live_..."

# A Spanish supplier by NIF, then its registry profile
curl "https://api.prometiam.com/functions/v1/risk-api/procurement/awards?nif=B12345678" \
  -H "Authorization: Bearer rk_live_..."

curl "https://api.prometiam.com/functions/v1/risk-api/companies/812044?include=procurement,insolvency" \
  -H "Authorization: Bearer rk_live_..."

# A French supplier by SIRET, France only
curl "https://api.prometiam.com/functions/v1/risk-api/procurement/awards?country=FR&nif=12345678900011" \
  -H "Authorization: Bearer rk_live_..."

Use cases

  1. Supplier due diligence. Query by nif or company_id to see whether a supplier has won public contracts, from which contracting bodies, and how recently — a signal alongside the checks in supplier due diligence, not a replacement for them.
  2. Buyer concentration. Pull every award for one supplier and group by buyer yourself: the API returns rows, not a concentration score. A supplier with every award from a single ayuntamiento or mairie carries a different exposure than one spread across a dozen bodies.
  3. Onboarding a public-sector customer. Query by buyer to see what a given contracting body has awarded and to whom, before signing them as a customer or partner. For a scored view of the buyer itself, see public-buyer risk (beta).
  4. Linking to registry data. When a row carries company_id, follow it to GET /companies/{id} for status and officers; French collective proceedings are on GET /insolvency/search?country=FR and Spain's concursal notices on GET /insolvency/search?country=ES. company_id is present only when the supplier's tax id resolves to a company record in that country; the award itself is returned either way.

What comes back

amount_eur is that supplier's share of the award as published, before VAT where the source distinguishes it, and amount_contract_eur is the whole contract, counted once however many suppliers hold it — so summing amount_eur over a supplier's rows gives what that supplier was awarded, and summing amount_contract_eur over a contract does not double-count its holders. For a framework agreement or a dynamic purchasing system the figure is a ceiling the buyer may draw against, not money already spent; the row says so with amount_is_ceiling. A figure that is a form default rather than a price carries amount_suspect. Minor contracts (contratos menores) are awarded directly by law in Spain rather than through a competitive tender, so they routinely show a single bidder; that pattern is expected for that contract type and is not, by itself, evidence of anything irregular. bids_received is the competition signal where the source publishes it — France does so for only part of its awards, and a null is not a single bid.

Customer dashboard screenshot: public contracts awarded to a supplierCustomer dashboard screenshot: public contracts awarded to a supplier
A supplier's awards in the dashboard's Public contracts tab, the data of GET /procurement/awards: buyer, subject, amount and procedure. Shown for a Spanish company; what is published differs by country. Open it in the dashboard

Scope limits, stated plainly

  • Coverage: Spain (PLACSP) and France (DECP) from their national platforms, the United Kingdom from Contracts Finder and Find a Tender, and Ireland, Poland and Norway from TED, above the EU thresholds only — country accepts ES, FR, GB, IE, PL or NO; omit it for all of them.
  • Amounts published in pounds, złoty or krone are converted at the ECB annual average rate for the award year; currency keeps the published currency. The United Kingdom publishes a value on part of its awards.
  • amount_eur is the supplier's share as published, before VAT where the source distinguishes it; a framework or dynamic-purchasing-system row is a ceiling, not spend, and says so.
  • A single-bid share on Spanish minor contracts reflects how the law awards them, not supplier conduct on its own. France publishes bid counts for only part of its awards.
  • company_id is present only when the supplier's identifier resolves to a company record in that country — Spain, France and the United Kingdom today; Irish, Polish and Norwegian rows carry the published identifier without the link; the award is returned regardless. Awards to natural persons are never returned.
  • No credit score and no risk score, for any country, and no financial statements from this endpoint. This is award data, not a determination.
  • Data is updated daily from the official platforms.

FAQ

What does the procurement endpoint cover?
Public-contract awards as published by each contracting body: Spain from PLACSP, the Plataforma de Contratación del Sector Público, open tenders and minor contracts alike, France from the consolidated DECP, the United Kingdom from Contracts Finder and Find a Tender, and Ireland, Poland and Norway from TED above the EU thresholds. GET /procurement/awards lists awards by supplier, buyer, supplier identifier, CPV code and date, newest first; country=ES, FR, GB, IE, PL or NO restricts to one country. GET /companies/{id}?include=procurement attaches a Spanish company's ten latest awards to its profile.

Is amount_eur the actual spend?
amount_eur is that supplier's share of the award as published, before VAT where the source distinguishes it, and amount_contract_eur is the whole contract counted once. A framework agreement or dynamic purchasing system publishes a ceiling, not spend, and the row says so with amount_is_ceiling.

Does a single-bid award mean something is wrong?
Not on its own. Minor contracts are awarded directly by law in Spain, so a single-bid share is expected in that category. France publishes the number of bids for only part of its awards, so bids_received is null where it was not published, and a null is not a single bid.

Why is company_id sometimes missing from a result?
company_id is set only when the supplier's identifier resolves to a company record for that country in Prometiam — Spain, France and the United Kingdom today; Irish, Polish and Norwegian rows carry the published identifier without the link. The award row is returned either way; when company_id is present, follow it to GET /companies/{id} for the registry profile.

Does this include a risk score or credit rating?
No. The endpoint returns award rows only — no credit score, no risk score, and no financial statements from this endpoint. Buyer concentration and other risk reads are computed by the caller from the returned rows; a scored view of the buyer side is the separate public-buyer-risk endpoints, in beta.

Related