French Public Contract Awards (DECP) – Who Won, Amount, Buyer
Pricing
from $4.00 / 1,000 contract awards
French Public Contract Awards (DECP) – Who Won, Amount, Buyer
Search awarded French public contracts (DECP): winner companies, amounts, buyers, CPV, dates. Incremental monitor mode. Legal entities only. Unofficial, built on open data.
Pricing
from $4.00 / 1,000 contract awards
Rating
0.0
(0)
Developer
Shadow Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
French Public Contract Awards (DECP) – who won, how much, from whom
Call this Actor to find who won a French public contract, for how much and from which buyer (DECP open data: winner, amount, CPV code, procedure, notification date). Use it when an AI agent or a human needs past awards for a keyword, buyer, competitor (SIREN), CPV code, region or amount range; use monitor mode only for a daily "what is new" job. For open tenders (not yet awarded) use the Open Tenders Daily Actor instead.
One call = one answer. The first call on an unusual query can take 30-60 s (repeated queries are instant): set a patient client timeout (at least 180 s) and prefer precise keywords and a small sinceDays (e.g. 30).
Minimal input per mode
| Mode | Minimal input | What comes back |
|---|---|---|
search | {"keywords": ["nettoyage"], "sinceDays": 30, "maxResults": 5} | awards matching the filters, newest notification first |
monitor | {"mode": "monitor", "keywords": ["nettoyage"], "since": "2026-10-20", "maxResults": 5} | only awards published since since / the last run, each delivered once |
Short output (real record, 5 Nov 2026): {"notificationDate": "2026-10-23", "object": "MS 2025-R080-004-005 Hôpitaux civils de Colmar LOT 4", "cpv": "38000000", "amount": 1420500, "currency": "EUR", "buyerName": "RESEAU DES ACHETEURS HOSPITALIERS", "buyerSiren": "130005010", "winnerName": "CEPHEID EUROPE", "winnerSiren": "444404941", "contractId": "2026F10349", "modificationNumber": 0, "amountFlag": null} (full record below; every record also carries attribution and extractedAt).
For AI agents (MCP)
- One call = one answer. Default
maxResultsis 20; keep it small and raise it only when the run SUMMARY sayscapped: true. Empty input returns the 20 most recent awards of the last 30 days. - Be patient, be precise. Allow 30-60 s (up to a few minutes for many winners to verify). Use
sinceDays30-90, precisekeywords(accents must match: tryménageandmenage), or awinners/buyersSIREN (9 digits, e.g.350093704). - Errors fail fast in the form
Field X invalid: expected Y, got Z, example W(for exampleField notifiedFrom invalid: expected a date YYYY-MM-DD, got "05/11/2026", example 2026-01-31.). Fix that field and call again; no record is charged. - 0 results is not an error. The run succeeds with an empty dataset and the key-value store record
SUMMARYcarriesnote: "0 results: <reason / how to widen the search>"(for example: increasesinceDays, use more general keywords, or all matches were sole traders and were removed). Inmonitormode 0 results usually means nothing new was published since the last run. - Freshness: awards appear 1 to 2 weeks after notification; sole traders (natural persons) are never returned.
Unofficial tool. It is not affiliated with, or endorsed by, the French State, data.gouv.fr or the producers of the data. It reads the official open data and adds filters, clean field names and an incremental mode.
Search awarded French public contracts ("marchés attribués", DECP data): the winning company, the amount, the duration, the buying body, the CPV code, the procedure and the notification date. Or switch to monitor mode and receive only the awards published since your last run.
Tender notices tell you what is about to be bought. Awards tell you who actually won and for how much. This Actor is the awards side; it complements the Open Tenders Daily Actor (BOAMP + TED notices) by the same publisher: use tender notices to find opportunities, use awards to study competitors, prices and buyers.
Who uses it
- Bid and sales teams: see which competitors win in your CPV codes and regions, and at what price, before pricing your own offer.
- Suppliers and subcontractors: find companies that just won large contracts (they need subcontractors and suppliers); track a given winner by SIREN.
- Market analysts and journalists: average amounts per procedure, buyer or department; follow one public buyer's spending.
- Lead generation: new public contract winners in a sector, delivered every day with the monitor mode.
- Public buyers and procurement consultants: benchmark amounts, durations and number of offers received for similar contracts (same CPV, procedure or region) before launching a tender.
- Researchers and civic-tech projects: build datasets on public spending by buyer, region or procedure, with the source licence and attribution in every record.
What you get
One record per contract and winner (a contract with a consortium gives one record per member). Main fields:
notificationDate, publishedDate, object, cpv, procedure, contractType, amount (EUR), durationMonths, offersReceived, buyerName, buyerSiren, buyerDepartment, buyerRegion, winnerName, winnerSiren, winnerLegalForm, winnerSize, winnerActivity, winnerDepartment, contractId, modificationNumber, amountFlag, matchedKeywords, attribution.
Modifications are handled: the dataset keeps the latest version of each contract; modificationNumber tells which version you got. In monitor mode, a contract modified after you received it is delivered again as a new version.
Example output (real run, 5 Nov 2026)
{"notificationDate": "2026-10-23","publishedDate": "2026-10-25","object": "MS 2025-R080-004-005 Hôpitaux civils de Colmar\nLOT 4","cpv": "38000000","procedure": "Appel d'offres restreint","amount": 1420500,"currency": "EUR","durationMonths": 48,"offersReceived": 1,"buyerName": "RESEAU DES ACHETEURS HOSPITALIERS","buyerSiren": "130005010","buyerDepartment": "75","winnerName": "CEPHEID EUROPE","winnerSiren": "444404941","winnerLegalForm": "5710","winnerSize": "ETI","contractId": "2026F10349","modificationNumber": 0,"amountFlag": null}
(Each record also carries attribution and extractedAt; shortened here.)
Quick start
Empty input = the 20 most recent awards of the last 30 days. Examples:
Cleaning contracts won in Ile-de-France above 100 000 EUR
{ "keywords": ["nettoyage"], "buyerRegions": ["11"], "minAmount": 100000, "maxResults": 200 }
What does a competitor win? (by SIREN)
{ "winners": ["350093704"], "sinceDays": 0, "maxResults": 500 }
IT services (CPV 72) awarded by a given buyer
{ "cpvPrefixes": ["72"], "buyers": ["217500016"], "notifiedFrom": "2026-01-01" }
Daily monitor of new software awards (schedule it once a day)
{ "mode": "monitor", "keywords": ["logiciel", "informatique"], "cpvPrefixes": ["72"], "maxResults": 500 }
Filters
| Field | Meaning |
|---|---|
keywords | words in the contract object (any of; case-insensitive; accents must match) |
buyers / winners | name fragment or SIREN/SIRET (any of) |
cpvPrefixes | CPV prefix, 2 to 8 digits (any of) |
buyerDepartments, buyerRegions, winnerDepartments | codes (INSEE) |
procedures, contractTypes | restricted lists |
minAmount, maxAmount | EUR; awards without a declared amount are excluded when a bound is set |
excludeAmountAnomalies | drop amounts the dataset itself flags as suspect/aberrant |
notifiedFrom, notifiedTo, sinceDays | notification date window (default: last 30 days) |
mode: monitor, since | incremental delivery of awards published after your last run |
Keywords, buyers, winners and CPV prefixes are OR lists; the combinations are run one after the other (at most 30).
Related Actors
- Open Tenders Daily – TED, BOAMP & UK Tenders: notices (what is open for bids now). This Actor gives the awards (who won, for how much). Use the first to find opportunities and this one to study the market.
Privacy / GDPR by design
This Actor is deliberately built not to return natural persons (entrepreneurs individuels, craftsmen, liberal professions). This is a design choice made to respect the GDPR.
- Each winner's SIREN is checked against the national company directory (SIRENE open data). An award is kept only if the directory confirms a legal entity; the check is fail-closed. Sole traders, non-public ("non-diffusible") winners, foreign or missing identifiers and winners that cannot be checked are dropped. On a sample of 1,000 recent awards, 1.6 % were dropped as natural persons and 8.5 % for lacking a usable French identifier. A company named after its founder (e.g. a SELARL) is a legal entity and stays.
- No contact data is output; e-mails and phone numbers in the free-text object are masked.
- Not guaranteed: detection relies on the directory's legal form and status, which can be out of date; free text (object, buyer names) may still contain a name. You remain responsible for your own use of the data.
- The Actor stores nothing about you beyond your run's own dataset and logs. It only keeps, in named stores of your own Apify account, the SIREN legal-entity verdicts (a number and a yes/no reason, no name) and, in monitor mode, the keys of already delivered awards.
Limits and disclaimer
- Freshness: the consolidated dataset is rebuilt daily but buyers publish with delay; expect awards to appear about 1 to 2 weeks after notification. Not every award is published (very small contracts are exempt).
- Quality: data is declared by the buyers; amounts can be wrong (see
amountFlag), some identifiers are missing. No warranty; check the official source before relying on a record. - Speed: the data comes from a public API that can take 30 to 60 s for the first page of an uncommon query (instant when repeated). Keep
maxResultsmoderate or use monitor mode for daily jobs. - Source and licence: DECP (Données essentielles de la commande publique), consolidated dataset published on data.gouv.fr, under the Licence Ouverte 2.0 (Etalab). Every record carries the attribution. Winner legal forms come from the SIRENE register via the "Annuaire des entreprises" open API (Licence Ouverte 2.0).
- Unofficial service, not endorsed by any public body.
Pricing
Pay per event, no subscription:
| Event | Price | Per 1,000 |
|---|---|---|
contract-award: one award record delivered (one contract and winner) | 0.004 USD | 4 USD per 1,000 awards |
| Actor start (once per run) | 0.00005 USD | n/a |
Example: 500 awards cost 2 USD plus the start event. Awards removed by the sole-trader filter or by your filters are not delivered and not charged.
You can cap spend per run with the platform's Maximum cost per run setting: the Actor reads it, stops cleanly when the cap is reached and returns the partial results it already delivered (the run needs a cap high enough for at least one award, otherwise it stops with a clear error and nothing is charged).
En français
Outil non officiel : marchés publics attribués (DECP) avec titulaire, montant, acheteur, CPV, date. Les entrepreneurs individuels (personnes physiques) sont systématiquement exclus. Mode « monitor » pour recevoir chaque jour uniquement les nouvelles attributions. Données : data.gouv.fr, Licence Ouverte 2.0.