Data source: Doffin, TED
https://context.gnist.ai/rest/public-procurement/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (4)
search_tendersSearch for public procurement tenders across Doffin (Norway) and TED (EU/EEA).
Results are deduplicated when the same tender appears on both platforms.
Sorted by publication date (most recent first).
Examples:
search_tenders(query="software development")
search_tenders(query="construction", country="NOR", cpv_code="45000000")
search_tenders(query="IT consulting", published_after="2026-01-01", max_results=10)
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Search query — keywords, buyer name, or topic. |
max_results | integer | optional | Maximum number of results. (default: 20) |
country | any | optional | ISO 3166-1 alpha-3 country code (e.g. NOR, DEU, FRA). Omit for all countries. |
cpv_code | any | optional | CPV code to filter by sector (8 digits, e.g. 72000000 for IT). |
published_after | any | optional | Only tenders published after this date (YYYY-MM-DD). |
published_before | any | optional | Only tenders published before this date (YYYY-MM-DD). |
{
"query": "example"
}get_tenderLook up a specific procurement notice by ID across all sources.
Accepts either a Doffin notice ID (e.g. '2026-105515') or a TED
publication number (e.g. '555-2026'). If the tender exists on both
platforms, the results are merged into a single enriched record.
Examples:
get_tender(notice_id="2026-105515")
get_tender(notice_id="555-2026")
| Parameter | Type | Required | Description |
|---|---|---|---|
notice_id | string | required | Notice ID — Doffin format (YYYY-NNNNNN) or TED format (NNNN-YYYY). |
{
"notice_id": "example"
}list_procurement_sourcesList all registered procurement data sources and their status.
Shows which sources are available and whether they are currently enabled.
Examples:
list_procurement_sources()
{
"query": "example"
}report_feedbackReport a bug, feature request, or general feedback for this data source.
Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.
Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"feedback": "example"
}Quick Start
curl -X POST "https://context.gnist.ai/rest/public-procurement/search_tenders" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"query": "example"}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/rest/public-procurement/search_tenders",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={
"query": "example"
},
)
print(resp.json())