BOAMP + TED — Marchés Publics & EU Tenders Monitor
Pricing
Pay per event
BOAMP + TED — Marchés Publics & EU Tenders Monitor
Monitor French (BOAMP) and EU-wide (TED) public tenders — marchés publics & appels d'offres in one actor. Filter by keywords, CPV codes, department, deadline. Monitor mode charges only NEW tenders; Slack/webhook alerts built in. Official open data, deduplicated. For bid teams & AI agents.
Pricing
Pay per event
Rating
0.0
(0)
Developer
tagada
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
French & EU Public Tenders Monitor (BOAMP + TED)
Track public procurement opportunities across France and the EU from one call — and let AI tell you which ones are worth bidding on. Query BOAMP (the French official procurement journal, Bulletin officiel des annonces des marchés publics) and TED (Tenders Electronic Daily, the EU-wide procurement journal) with keyword, CPV, department and deadline filters — and get one clean, unified, structured record per tender.
Built for bid/tender monitoring, sales & business development to the public sector, market intelligence, and AI agents (works via API and MCP out of the box).
Why this actor
- ✅ Two official sources, one schema — BOAMP (France) + TED (EU) results normalized to identical fields, deduplicated, deadline-filtered.
- ✅ True monitor mode — remembers what it already reported; scheduled runs return (and charge for) new tenders only.
- ✅ Slack & webhook alerts — new tenders land in your Slack channel or any endpoint the moment a run finds them.
- ✅ AI relevance scoring (bring your own Anthropic API key) — describe your company once; every tender gets a 0–100 relevance score, a one-line reason and a bid / consider / skip recommendation.
- ✅ Official open data — DILA (BOAMP) and the EU Publications Office (TED). No scraping, no stale caches.
- ✅ Real filtering — keywords, French department codes, CPV codes, publication window, and "only tenders still open for bids".
The 5-minute tender radar
- Set your
keywords/cpvCodes/departments. - Turn on
monitorModeand paste a Slack webhook URL. - (Optional) Describe your business in
companyProfile, add youranthropicApiKeyand setalertMinScore: 60. - Create an Apify Schedule (daily).
Every morning, your Slack channel gets only the new tenders relevant to your business, scored and sorted — nothing you've already seen, nothing off-topic.
Use cases
- Never miss a relevant tender — get every new public contract matching your keywords/CPV the day it's published.
- Stop reading irrelevant tenders — the AI score reads them for you and tells you which ones fit.
- Public-sector sales — build a live pipeline of buyers and deadlines in your segment and region.
- Market intelligence — who is buying what, where, and by when.
- AI agents — plug into Claude / Cursor via MCP and ask "any open IT tenders in Île-de-France closing this month?"
Input
{"keywords": ["logiciel", "cybersécurité", "infogérance"],"sources": ["boamp", "ted"],"departments": ["75", "69", "13"],"cpvCodes": ["72000000"],"publishedWithinDays": 7,"onlyOpen": true,"monitorMode": true,"monitorName": "cyber-idf","webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ","companyProfile": "ESN de 15 personnes à Paris : audit cybersécurité, pentest, développement sécurisé, RGPD. Clients secteur public et santé.","alertMinScore": 60}
keywords— matched in the tender object/title (OR). Empty = all tenders in your other filters.sources—boamp,ted, or both.departments— French department codes (BOAMP filter).cpvCodes— Common Procurement Vocabulary codes (TED filter).onlyOpen— drop tenders whose response deadline has passed.monitorMode— only return tenders not seen in previous runs (permonitorName).webhookUrl— Slack incoming webhook (digest message) or any URL (JSON payload).companyProfile— enables AI scoring; a few sentences, French or English.alertMinScore— alerts only include tenders scoring at least this.
Output (one record per tender)
{"source": "TED","id": "378060-2026","title": "France – Services de maintenance des systèmes...","buyer": "GRENOBLE ALPES METROPOLE","publicationDate": "2026-06-03","deadline": "2026-07-20","marketType": "Services","cpvCodes": ["72250000"],"location": "NUTS FRK24","country": "FR","url": "https://ted.europa.eu/fr/notice/-/detail/378060-2026","relevanceScore": 82,"relevanceReason": "Maintenance de systèmes IT pour une métropole : cœur de métier, région couverte.","recommendation": "bid","source_ref": "api.ted.europa.eu (TED / EU Publications Office)","retrievedAt": "2026-07-03T09:12:00.000Z"}
BOAMP records share the exact same shape (source: "BOAMP", location: "FR dept 75", url to boamp.fr). The relevance* fields appear when companyProfile is set; results are then sorted best-first.
Companion actors — French open-data suite
- French Company KYC / KYB — enrich any SIREN/SIRET/company name with INSEE SIRENE + BODACC data; qualify the buyers and bidders behind a tender.
- French Real Estate Sales (DVF) — official recorded property sale prices from the land registry.
Pricing
Pay per event — no subscription:
| Event | When |
|---|---|
| Actor start | Once per run |
| Tender found | Per tender returned (in monitor mode: new tenders only) |
| Tender scored | Per tender AI-scored (only when companyProfile is set) — billable event goes live July 18, 2026; scoring is free until then |
FAQ
Where does the data come from? Official open data only: boamp-datadila.opendatasoft.com (BOAMP / DILA) and api.ted.europa.eu (TED / EU Publications Office). Fetched live at run time.
How does monitor mode work? The actor keeps a per-monitorName memory of every tender id it already returned (kept 120 days). Scheduled runs output only what's new — you're not charged twice for the same tender.
How does AI scoring work? Each tender's key facts (title, buyer, type, CPV, location, deadline) are rated against your companyProfile by a fast Claude model, called with your own Anthropic API key (anthropicApiKey input — get one at console.anthropic.com). You get a 0–100 score, a one-sentence reason, and bid/consider/skip. Token cost on your key is tiny (~$1 per 1,000 tenders); your key is used for the calls only, never stored.
How fresh is it? Both registries publish continuously; the actor returns what's live at run time. Schedule it daily for a monitoring feed.
Can I filter by amount / procedure type? Keywords, department, CPV, deadline and window are supported today. More structured filters are on the roadmap — open an issue with what you need.
Does it deduplicate? Yes — within a run (by source + notice id), and across runs in monitor mode.
Does it work with AI agents? Yes — exposed via REST API and MCP, callable as a tool from Claude, Cursor & co.
Keywords: appels d'offres, marchés publics, BOAMP, TED, public tenders France, EU procurement, tender monitoring, tender alerts, veille marchés publics, CPV, appel d'offre API, government contracts, AI tender scoring, bid/no-bid.