Search tenders and grant calls
search_opportunitiesSearch open public tenders and EU grant calls by subject, ranked by relevance, with filters for country, CPV, status, deadline, value and region. Use it to find notices worth a decision, then get_opportunity or read_document. Cards are compact (summary_cut marks a cut summary). Search in the notice's own language; research_guide returns the trade lexicon per country.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cpv | No | Any CPV prefix: '45', '452' or a full code. Results show cpv_labels, not codes. | |
| kind | No | ||
| lang | No | ||
| nuts | No | NUTS2 regions below country level ('DE30', 'LT01'); notices without a NUTS code are excluded. | |
| type | No | 'tender' or 'grant' (use 'grant' when the user asks for grant calls). | |
| limit | No | ||
| query | No | What the user is looking for, as they typed it. | |
| detail | No | 'compact' (default) or 'full'. | |
| fields | No | 'compact' (default) or 'full' for raw codes and a longer summary. Multi-lot procurements collapse to one entry (`lots`, `lot_ids`): report it once. | compact |
| source | No | 'ted', 'cvp', 'ft', 'ee', 'lv', 'hun', … (research_guide lists them). | |
| status | No | 'open' (default), 'forthcoming' for not-yet-open, 'any' adds expired. | open |
| queries | No | The same question in the notices' own languages, one phrasing per country in scope; each is ADDED to `query` and fused as its own ranking. Translate the distinctive trade terms, not the sentence (research_guide: `lexicon`). | |
| session | No | The `session` value the sign-in returned. Pass it on every call in this conversation, so the sign-in survives however this client handles connections; omit it when the user connected with Sign in (OAuth) or a key. | |
| countries | No | ISO3 ('LTU') or ISO2 ('LT'). Scope by country when you can: EU-wide is ~10x slower. | |
| max_chars | No | Hard cap on the answer's size in characters (default 8000). Over it, cards shrink to the essentials, then rows are dropped from the end, and `truncated` says how to get the rest. | |
| max_value | No | In EUR, converted from the buyer's currency; notices we cannot price in euros are excluded from a value filter rather than guessed at. | |
| min_value | No | In EUR, converted from the buyer's currency; notices we cannot price in euros are excluded from a value filter rather than guessed at. | |
| cpv_strict | No | Sources that publish no CPV (Lithuanian CVP notices, EU grant calls) are INCLUDED and ranked by default; true excludes them. | |
| value_band | No | ||
| nuts_strict | No | ||
| no_guarantee | No | true returns only notices that state no bid bond is required. | |
| cpv_divisions | No | ||
| nature_strict | No | ||
| deadline_after | No | ISO date. | |
| contract_nature | No | 'works', 'supplies', 'services'. Sources that publish none are included unless nature_strict=true. | |
| criteria_stated | No | true returns only notices whose SELECTION CRITERIA the buyer published (about half of TED). | |
| deadline_before | No | ISO date. | |
| exclude_results | No | true drops award notices for things already decided. | |
| expand_languages | No |