Public procurement of a Polish company
Every day the Public Procurement Office publishes, as open data (CC0), the contract and result notices of the Public Procurement Bulletin — about 500 results and 600 contract notices per working day. This route finds a company by its NIP, as a winner (part, outcome, awarded price, contract value and date, buyer) and as a buyer, serving only winners proven to be legal persons.
See a real response (free) Get the quote for /v1/eu/entreprise/PL/{nip}/marches-publics
What the route returns
Catalogue description, exactly as agents read it:
Public-procurement record of a Polish company from the Biuletyn Zamówień Publicznych (e-Zamówienia public API, UZP, CC0; national below-EU-threshold notices since 2021): contracts WON matched by legal-person NIP — buyer (name, NIP), subject, CPV, part, outcome, tenders received, awarded price and contract value in PLN, contract date, enterprise size — and notices ISSUED as a buyer; newest first, capped at 100. Winners served only when proven legal persons (legal form or KRS); sole traders never.
Expected identifier
Ten-digit NIP (separators tolerated), e.g. 7812034808.
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. 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": "PL",
"nip": "6040248554",
"attributions": [
{
"avis_id": "2026/BZP 00441969/01",
"type_avis": "TenderResultNotice",
"publie_le": "2026-09-17T05:36:05Z",
"type_marche": "travaux",
"type_marche_source": "Works",
"sous_seuil_ue": true,
"objet": "Wykonanie remontu dla części: Część I: Malowanie - I/Tczew; Część II: Remont pokoi biurowych - I/Gdynia; Część III: Remont pokoi biurowych - I/Kartuzy; Część IV: Remont pokoi biurowych - I/Malbork",
"cpv": [
"45400000-1"
],
"acheteur": {
"nom": "ZAKŁAD UBEZPIECZEŃ SPOŁECZNYCH ODDZIAŁ W GDAŃSKU",
"ville": "Gdańsk",
"province": "PL22",
"pays": "PL",
"nip": "5832622111"
},
"nombre_parties": 4,
"partie": 4,
"issue": "contrat conclu",
"issue_source": "zawarcieUmowy",
"offres_recues": 2,
"offres_pme": 2,
"prix_retenu_pln": 581992.37,
"groupement": false,
"date_contrat": "2026-09-01",
"valeur_contrat_pln": 581992.37,
"duree": "126 dni",
"gagnant": {
"nip": "6040248554",
"nom_publie": "M&M JOB CONNECT Sp. z o.o.",
"ville": "Pszczółki",
"province": "PL22",
"pays": "PL",
"taille": "micro-entreprise",
"taille_source": "Mikro przedsiębiorca"
}
}
],
"nombre_attributions": 1,
"valeur_totale_pln": 581992.37,
"tronque_attributions": false,
"aucune_attribution": false,
"avis_emis": [],
"nombre_avis_emis": 0,
"tronque_avis_emis": false,
"nature_nip": "personne_morale",
"stock": {
"depuis": "2021-01-01",
"dernier_jour_complet": "2026-09-17",
"gagnants_a_classer": 1832
}
}
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/PL/{nip}/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/PL/{nip}/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: the BZP only carries national below-EU-threshold procurement (above: TED), 37 % of winners are sole traders never served, 15 % are identified by REGON only; a NIP not yet classified answers 404 without charge. Zero never means “never won a contract”. Amounts in PLN as published; never a street nor a contact.
Neighbouring routes
/v1/eu/entreprise/PL/{id}— $0.01/v1/eu/entreprise/PL/{krs}/evenements— $0.02/v1/eu/entreprise/ES/{nif}/marches-publics— $0.02
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
| Route | Price | Sample | What it returns |
|---|---|---|---|
/v1/eu/entreprise/PL/{nip}/marches-publics | $0.02 | free sample | Public-procurement record of a Polish company from the Biuletyn Zamówień Publicznych (e-Zamówienia public API, UZP, CC0; national below-EU-threshold notices since 2021): contracts WON matched by legal-person NIP — buyer (name, NIP), subject, CPV, part, outcome, tenders received, awarded price and contract value in PLN, contract date, enterprise size — and notices ISSUED as a buyer; newest first, capped at 100. Winners served only when proven legal persons (legal form or KRS); sole traders never. |
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/PL/{nip}/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