Create Public Tenders signal
Find organizations actively buying — discover procurement opportunities the moment they publish tenders. Monitor French public tenders (BOAMP) and/or European tenders (TED) matching your keywords and filters, and push each matched tender to your webhook as a lead for the buying organization.
Input: signal name (name), webhook URL (webhookUrl), optional keyword filters (keywords, keywordsExclude), tender sources (sources: "boamp" and/or "ted"), notice types (noticeTypes for BOAMP: "APPEL_OFFRE", "MAPA", "AVIS_DE_CONCESSION"), market types (marketTypes: "Services", "Fournitures", "Travaux"), French department codes (departmentCodes), TED country codes (countryCodes), CPV service codes (cpvCodes), response deadline filters (minDaysUntilDeadline), and optional persona targeting (enablePersonaTargeting, targetPersonas) to identify decision-makers. Enrichment options (getEmails, getPhones, detectTechnologies) use credits.
Output: each matching tender is pushed to your webhookUrl as a lead containing the buyer organization's name, location, tender title/URL/deadline, and market type. If persona targeting is enabled, matched decision-makers at the buying organization are included as the contact; otherwise contact is omitted. Each tender is delivered once, subject to your daily limit.
Use cases:
- Bid-opportunity alerts — get notified of relevant public tenders to bid on.
- Partner sourcing — find companies bidding, to partner or subcontract with.
Request
- Base URL: https://api.rodz.io (the document declares no server; this is the origin it was published from)
- URL: https://api.rodz.io/api/v1/signals/public-tenders
- Auth: HTTP bearer
Request body
Example request
{
"config": {
"categoryDescriptors": [],
"departmentCodes": [
"75"
],
"detectTechnologies": false,
"familleFilter": [
"Avis de marché",
"MAPA"
],
"getEmails": true,
"getHomepageContent": false,
"getPhones": false,
"getSireneData": false,
"keywords": [
"informatique",
"logiciel"
],
"keywordsExclude": [],
"marketTypes": [
"Services"
],
"sources": [
"boamp"
]
},
"dailyLeadLimit": 50,
"name": "IT services tenders in Paris",
"status": "active",
"webhookUrl": "https://your-server.com/webhooks/rodz"
}Response
Signal created
Example response
{
"applied": {
"allowUnknownCompanySize": false,
"maxJobAgeDays": 180
},
"config": {
"companySizeFilters": [
"201-500",
"501-1000"
],
"getEmails": true,
"jobTitles": [
"CTO"
],
"locations": [
"France"
],
"maxJobAgeDays": 90
},
"createdAt": "2026-01-15T10:30:00Z",
"dailyLeadLimit": 50,
"duplicateHandling": "refuse",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"lastLeadAt": "2026-03-15T14:22:00Z",
"leadsToday": 3,
"leadsTotal": 127,
"name": "CTOs changing jobs in France",
"signalTypeId": "job_changes",
"status": "active",
"updatedAt": "2026-03-16T08:00:00Z",
"warnings": [
{
"code": "VALUE_BELOW_MINIMUM",
"field": "maxJobAgeDays",
"message": "`maxJobAgeDays` is 90; this signal applies 180. Job changes are delivered up to 180 days after the start date, and a shorter window is raised to that minimum.",
"severity": "info",
"values": [
"90"
]
}
],
"webhookUrl": "https://your-server.com/webhooks/rodz"
}Changes
No recorded changes to this operation across all 1 revision of this API.