VOOZH about

URL: https://apify.com/dltik/decp-fr-scraper

⇱ DECP Scraper: French Public Contracts Awarded (Marches Publics) · Apify


👁 DECP Scraper: French Public Contracts Awarded (Marches Publics) avatar

DECP Scraper: French Public Contracts Awarded (Marches Publics)

Pricing

from $0.00005 / actor start

Go to Apify Store

DECP Scraper: French Public Contracts Awarded (Marches Publics)

Scrape 650K+ awarded French public contracts (DECP) — buyer SIRET, winner SIRET, amount, CPV, procedure. Filter by date, CPV, montant, departement. For B2G prospection, market intel, lead gen. $5/1K records.

Pricing

from $0.00005 / actor start

Rating

0.0

(0)

Developer

👁 Walid

Walid

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

DECP Scraper — 650K+ Awarded French Public Contracts API

Bookmark this actor → apify.com/dltik/decp-fr-scraper — Apify ranks by bookmarks, so it directly drives the visibility of this scraper. One click. No signup beyond your existing Apify account.

Scrape 650K+ awarded French public contracts from DECP (Données Essentielles de la Commande Publique — Arrêté du 22 décembre 2022). Get the buyer SIRET, winner SIRET, contract amount in euros, notification date, CPV code, procedure, duration, location for every public contract awarded by French communes, départements, regions, hospitals, ministries and public agencies. Filter by date, CPV, montant, département, buyer, winner. No OAuth, no API key, no monthly subscription.

What makes this scraper different

FeatureThis DECP scraperTED-only scrapersGeneric procurement scrapers
French municipal contracts (sub-EU threshold)✅ 650K+⚠️ shallow
Buyer SIRET (joinable to Sirene / Pappers)
Winner SIRET (titulaire 1/2/3)❌ partial
Contract amount in euros (montant)✅ structured⚠️ rare
CPV prefix filter (72, 45, 85...)⚠️
Montant min/max filter
Département filter (prefix on lieu_execution)
Innovative-contract toggle (marcheinnovant)
Green-procurement toggle (considérations env.)
Per-record charge (no actor-start fee)❌ inflated
Concessions dataset toggle

What can this scraper do?

  • 🇫🇷 650K+ awarded French public contracts from the official DECP feed (Arrêté 22/12/2022, live)
  • 🏛️ Every type of public buyer — communes, départements, régions, CHU, ministères, agences, syndicats intercommunaux
  • 💰 Structured montant in euros — filter sub-threshold MAPA, mid-range marchés, mega-contrats by exact value
  • 🏢 Buyer and winner SIRET — directly joinable to Sirene for instant company enrichment
  • 🎯 CPV prefix filter72 for IT services, 45 for construction, 85 for health, 50410000 for metrology, etc.
  • 🌿 Green / innovation togglesmarcheinnovant=oui + considerationsenvironnementales for ESG-aware prospection
  • 🗺️ Lieu d'exécution code — INSEE / postcode / département for geo-targeted bidding
  • 🚀 No auth, no quota — HTTP-only, Opendatasoft Explore v2.1, datacenter proxy optional

What data can you extract per contract?

FieldDescription
contract_idDECP contract identifier (id)
objetFree-text object of the contract
natureMarché / Accord-cadre / Marché subséquent
montant_eurAwarded amount, in EUR (numeric)
date_notificationDate the contract was notified to the winner (YYYY-MM-DD)
annee_notificationYear extracted from date_notification (numeric)
date_publication_donneesDate the DECP record was published
acheteur_siret14-digit SIRET of the public buyer
acheteur_nom_resolvedBuyer name (null — join Sirene to enrich)
titulaire_siret14-digit SIRET of the primary winner (titulaire 1)
titulaire_type_identifiantSIRET, TVA, UE, HORS-UE
titulaire_nom_resolvedWinner name (null — join Sirene to enrich)
titulaires_allAll co-titulaires (1-3) with id + type
code_cpvCommon Procurement Vocabulary code (8 digits + check)
cpv_labelCPV human label (null — combine with a CPV reference table)
procedure"Procédure adaptée", "Appel d'offres ouvert", "Marché négocié"...
duree_moisContract duration in months
lieu_execution_codeExecution location code (INSEE / postcode / dept)
lieu_execution_type"Code postal", "Code commune", "Code département"...
forme_prixUnitaire / Forfaitaire / Mixte
offres_recuesNumber of offers received (proxy for competitiveness)
considerations_socialesSocial-clauses status
considerations_environnementalesEnvironmental-clauses status
marche_innovantBoolean — innovation procurement flag
ccagCCAG reference (Cahier des Clauses Administratives Générales)
modalites_execution, techniques, types_prixContract-shape details
origine_france_pct, origine_ue_pctStated French / EU origin share
sous_traitance_declareeSub-contracting flag
type_groupement_operateursJoint-venture grouping type
source_publicationDECP source feed (e.g. "DGFIP – PES MARCHÉ")
source_datasetdecp-2022-marches-valides or decp-2022-concessions-valides
source_urldata.economie.gouv.fr permalink
scraped_atUTC timestamp of the run

How to scrape DECP in 5 steps

  1. Create a free Apify account — no credit card required.
  2. Open DECP Scraper on Apify Store.
  3. Set your filters — for example cpv=["72"] (IT), departement="75" (Paris), notifiedSince="today-180", montantMin=50000.
  4. Pick maxResults — start at 20 to validate, scale to 5,000 once happy. Hard cap 10,000 per run (Opendatasoft window).
  5. Click Start — clean JSON in seconds, exportable to CSV / JSON / Excel from the Apify dataset UI.

How much does it cost to scrape DECP contracts?

PAY_PER_EVENT — $0.005 per contract scraped ($5 per 1,000 results). Failed / empty runs not charged.

Run sizeContractsApify costTime
Quick test20$0.10~3s
Standard200$1.00~15s
Deep1,000$5.00~1 min
Massive5,000$25.00~5 min

Add includeConcessions=true to also pull the small concessions dataset (~600 records, long-term public service delegations).

Input parameters

ParameterTypeDefaultDescription
querystringFree-text search in objet
cpvarray[]CPV codes, prefix-matched. ["72"] = all IT, ["45","85"] = construction OR health
acheteurSiretstringExact buyer SIRET (14 digits)
titulaireSiretstringExact winner SIRET — every contract a given company has won
notifiedSincestringISO date YYYY-MM-DD or today-N
notifiedUntilstringISO date YYYY-MM-DD
montantMinintegerMinimum contract value (EUR)
montantMaxintegerMaximum contract value (EUR)
lieuExecutionCodestringExact location code (INSEE / postcode / dept as published)
departementstringTwo-digit dept prefix on lieu_execution_code
procedurestringPartial match — adaptee, ouvert, restreint, negocie
marcheInnovantboolfalseKeep only marcheinnovant=oui
considerationsEnvboolfalseKeep contracts with environmental clauses
includeConcessionsboolfalseAlso pull the concessions dataset (~600 rows)
maxResultsinteger501–10000
proxyConfigobjectnoneApify proxy (rarely needed)

Output example

{
"type":"marche",
"source_dataset":"decp-2022-marches-valides",
"contract_id":"202424.02",
"objet":"Prestations relatives au contrôle métrologique des instruments de pesage",
"nature":"Marché",
"montant_eur":40000.0,
"date_notification":"2024-04-25",
"annee_notification":2024,
"date_publication_donnees":"2024-04-26",
"acheteur_siret":"25020879000098",
"titulaire_siret":"34974317900203",
"titulaire_type_identifiant":"SIRET",
"titulaires_all":[
{"id":"34974317900203","type":"SIRET"}
],
"code_cpv":"50410000-2",
"procedure":"Procédure adaptée",
"duree_mois":48,
"lieu_execution_code":"02000",
"lieu_execution_type":"Code postal",
"forme_prix":"Unitaire",
"offres_recues":1,
"considerations_sociales":"Pas de considération sociale",
"considerations_environnementales":"Pas de considération environnementale",
"marche_innovant":true,
"ccag":"Fournitures courantes et services",
"source_publication":"DGFIP – PES MARCHÉ",
"source_url":"https://data.economie.gouv.fr/explore/dataset/decp-2022-marches-valides/table/?q=202424.02",
"scraped_at":"2026-06-20T14:32:01Z"
}

Use cases

  • 🎯 B2G prospection pipeline — feed your CRM with every new contract matching your CPV + département; never miss a public buyer who's actively spending in your category.
  • 📊 Win/loss intelligence — pull every contract awarded to a competitor SIRET (titulaireSiret) to learn which buyers they own and what amounts they win at.
  • 💼 Account-based marketing — pull every contract awarded by a target buyer SIRET (acheteurSiret) — see exactly which prestataires they trust and what they spend on each line.
  • 🏛️ Public-spend dashboards — aggregate montant_eur per code_cpv × annee_notification × departement for sector-level dashboards.
  • 🌿 ESG / green-procurement intel — filter marcheInnovant=true or considerationsEnv=true to track public buyers leading on innovation and environmental clauses.
  • 🤖 Public-tender bot — combine with BOAMP Scraper (live calls for tender) for full upstream-to-downstream coverage of the French public procurement funnel.

Use the actor via API

Python:

import requests
run = requests.post(
"https://api.apify.com/v2/acts/dltik~decp-fr-scraper/run-sync-get-dataset-items",
headers={"Authorization":"Bearer YOUR_APIFY_TOKEN","Content-Type":"application/json"},
json={
"cpv":["72"],
"departement":"75",
"notifiedSince":"today-180",
"montantMin":100000,
"maxResults":200,
},
).json()
print(f"Scraped {len(run)} contracts")

curl:

curl-X POST "https://api.apify.com/v2/acts/dltik~decp-fr-scraper/run-sync-get-dataset-items"\
-H"Authorization: Bearer YOUR_APIFY_TOKEN"\
-H"Content-Type: application/json"\
-d'{"cpv":["45"],"departement":"13","notifiedSince":"2024-01-01","montantMax":1000000,"maxResults":500}'

FAQ

What is DECP exactly? DECP (Données Essentielles de la Commande Publique) is the legal obligation, since 2018 and reinforced by the Arrêté du 22/12/2022, for every French public buyer to publish the essential data of every awarded contract above €40K (sometimes lower, depending on the buyer category). Data is centralised on data.economie.gouv.fr.

How fresh is the data? DECP has a structural 2–6 month publication lag — public buyers consolidate then publish in batches. For real-time call-for-tenders, combine with BOAMP Scraper. For EU-threshold tenders, see TED Europa scrapers.

Is every French public contract included? Compliance is enforced unevenly — ~85% of communes publish, ~15% of small communes still don't. Large buyers (régions, ministères, CHU) are very well covered.

Why is acheteur_nom_resolved null? DECP only publishes the buyer SIRET, not the name. Join the SIRET with our Pappers Sirene Scraper or MCP Pappers server to enrich with the buyer's legal name, address, and effectif.

Will I get blocked? The data.economie.gouv.fr Opendatasoft instance has no anti-bot and no published rate limit. We've never been blocked at moderate volume. Datacenter proxy is the default.

Can I export to CSV? Yes — the Apify dataset UI exports to JSON, CSV, XLSX, RSS and HTML out of the box.


Found this DECP Scraper useful? Bookmark it — Apify ranks actors by bookmarks, so it's the strongest single signal for Store visibility. One click.

Other scrapers by dltik

ActorWhat it doesPrice
BOAMP ScraperFrench national calls for tender (upstream of DECP)$0.005/tender
TED Europa ScraperEU-threshold public procurement (above DECP)$0.005/tender
Pappers Sirene Scraper26M French companies — enrich SIRETs from DECP$0.001/result
Pappers MCP ServerFrench company data for AI agents (Claude / GPT)$0.01/tool-call
BODACC ScraperFrench commercial court announcements$0.003/record
Annuaire Administration FRFrench gov agencies & contacts$0.003/org
HATVP ScraperFrench elected officials' financial declarationsvaries
France Travail Scraper700K+ FR public job offers$0.0015/job

License: MIT · Author: dltik

You might also like

BOAMP Scraper: French Public Tenders & Marches Publics

dltik/boamp-fr-scraper

Scrape French national public procurement tenders from BOAMP (Bulletin Officiel des Annonces de Marches Publics), the official DILA open-data feed. Filter by keyword, CPV, department, region, buyer, date. Get buyer, deadline, estimated value, procedure and source URL. $5/1K tenders.

TED EU Procurement Scraper - Tenders & Award Notices

jungle_synthesizer/ted-eu-procurement-full-scraper

Scrape EU public procurement from TED: buyer, CPV codes, estimated and awarded value, winner, subcontractors, NUTS region, SME flag. Filter by country, CPV, value band, date.

👁 User avatar

BowTiedRaccoon

4

French Public Procurement — BOAMP Tender Scraper

studio-amba/boamp-scraper

Search and extract French public procurement tenders from BOAMP (Bulletin Officiel des Annonces des Marches Publics). Filter by keyword, department, notice type, or date range. Returns tender details, buyer, deadline, awarded contractor, and full notice data. No cookies, no login.

👁 User avatar

Studio Amba

2

France SIRET Finder — Google Maps

iblead/france-business-data-siret

Extract French businesses with official SIRET/SIREN numbers from INSEE. Includes emails, social profiles, tech stack, INPI legal data. The only SIRET source on Apify.

👁 User avatar

Ibrahim Demol

1

UK Gov Tenders Scraper | Contracts Finder Notices

parseforge/uk-gov-tenders-scraper

Pull UK Contracts Finder tender notices with title, buyer, value, CPV codes, deadlines, and status. Filter by CPV, region, or value range. Built for B2B sales teams, government suppliers, and analysts tracking public procurement opportunities in the UK.

4

Federal Contracts Scraper — USASpending.gov

sleek_waveform/federal-contract-scraper-usaspendinggov

Search $700B+ in awarded U.S. federal contracts from USASpending.gov. Filter by keyword, NAICS code, agency, date range, and contract amount. No API key required.

👁 User avatar

Daniel Dimitrov

5

UK Contracts Finder Scraper

parseforge/uk-contracts-finder-scraper

Scrape UK public sector contract notices from the official Contracts Finder OCDS API. Get awards, tenders, planning notices, buyer/supplier info, value, dates, CPV codes. No API key required.

3