evergabe-online APIevergabe-online.de ↗
Search and retrieve German public procurement notices from evergabe-online.de. Filter by keywords, CPV codes, contract type, and date. 5 endpoints.
What is the evergabe-online API?
The evergabe-online.de API gives developers structured access to German public procurement data across 5 endpoints, covering tender search, construction-specific listings, CPV code filtering, and full tender details. The get_tender_details endpoint returns structured fields including CPV codes, offer deadlines, reference numbers, contracting authority, and submission requirements for any individual tender identified in search results.
curl -X GET 'https://api.parse.bot/scraper/4a18a3c8-225c-40d9-9899-96e655c59f7c/search_tenders?page=1&keywords=IT&contract_type=WORKS&publish_date_range=ALL' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace evergabe-online-de-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: e-Vergabe Online SDK — search and inspect German public tenders."""
from parse_apis.e_vergabe_online_api import EVergabe, ContractType, PublishDateRange, TenderNotFound
client = EVergabe()
# Search for services tenders published in the last 7 days
for tender in client.tenders.search(
keywords="IT",
contract_type=ContractType.SERVICES,
publish_date_range=PublishDateRange.SEVEN_DAYS,
limit=5,
):
print(tender.title, tender.contracting_authority, tender.deadline)
# Get construction tenders specifically
for tender in client.tenders.search_construction(limit=3):
print(tender.title, tender.location, tender.procedure_type)
# Drill into one tender's full details
tender = client.tenders.latest(limit=1).first()
if tender:
detail = client.tenders.get(id=tender.id)
print(detail.title, detail.reference_number)
# Search by CPV code (45000000 = construction work)
for tender in client.tenders.search_by_cpv(cpv_code="45000000", limit=3):
print(tender.title, tender.published_date)
# Typed error handling for a non-existent tender
try:
client.tenders.get(id="0000000")
except TenderNotFound as exc:
print(f"Tender not found: {exc.id}")
print("exercised: tenders.search / tenders.search_construction / tenders.latest / tenders.get / tenders.search_by_cpv")
Full-text search over public tenders on the e-Vergabe platform. Matches keywords against title, description, and metadata. Filters by contract type and publication date range. Returns up to 10 results per page. Each tender summary includes id, title, reference number, contracting authority, location, procedure type, deadline, and publication date.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| keywords | string | Search keywords to match against tender title, description, and other fields. |
| contract_type | string | Filter by contract type. |
| publish_date_range | string | Relative publication period filter. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"tenders": "array of tender summary objects with id, title, reference_number, contracting_authority, location, procedure_type, deadline, published_date"
},
"sample": {
"data": {
"page": 1,
"tenders": [
{
"id": "867310",
"title": "Versuchsstand Wärmepumpe für Kühl- und Heizbetrieb",
"deadline": "25.06.26, 09:30",
"location": "Ilmenau",
"procedure_type": "National Öffentliche Ausschreibung",
"published_date": "11.06.26",
"reference_number": "TU-036/26-23-MB",
"contracting_authority": "Thüringen: Technische Universität Ilmenau"
}
]
},
"status": "success"
}
}About the evergabe-online API
Tender Search and Filtering
The search_tenders endpoint performs full-text matching against tender titles, descriptions, and metadata on the German e-Vergabe platform. Callers can pass keywords, a contract_type filter, and a publish_date_range to narrow results. The response returns paginated arrays of tender summary objects — each including id, title, reference_number, contracting_authority, location, procedure_type, and deadline. Pagination is controlled via the page integer parameter; each page returns up to 10 results.
Specialized Search Endpoints
search_construction_tenders mirrors search_tenders but pre-applies the WORKS contract type, making it useful when a caller only wants Bauauftrag notices without manually specifying the filter. search_tenders_by_cpv accepts a cpv_code parameter (e.g. 45000000 for general construction, 71000000 for architectural services) and returns matching tender summaries using CPV classification — the EU-standard taxonomy for procurement subjects. get_latest_tenders requires no parameters and returns up to 10 tenders published within the last 7 days, sorted by publication date.
Tender Detail Fields
Once a tender id is obtained from any search endpoint, get_tender_details returns the full procurement record. Structured fields include title, publication_date, last_modified, offer_deadline, reference_number, contracting_authority, and CPV codes. The response also includes both standard fields and additional structured procurement metadata where available in the source record.
Coverage Notes
All data reflects public notices posted on evergabe-online.de, Germany's federal e-procurement platform. Tenders span federal, state, and municipal contracting authorities. CPV codes follow the EU Common Procurement Vocabulary standard, enabling cross-referencing with other European procurement databases.
The evergabe-online API is a managed, monitored endpoint for evergabe-online.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when evergabe-online.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official evergabe-online.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor newly published German public tenders daily using
get_latest_tendersto feed procurement alert systems. - Build a CPV-based tender subscription service using
search_tenders_by_cpvto notify users when relevant codes appear. - Aggregate construction contract opportunities for bidding intelligence tools using
search_construction_tenders. - Extract
contracting_authorityandoffer_deadlinefields fromget_tender_detailsto populate CRM pipelines for public sector sales teams. - Cross-reference
reference_numberand CPV codes from tender details with EU procurement databases for compliance tracking. - Filter tenders by
publish_date_rangeandcontract_typeto produce periodic procurement market reports by sector.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does evergabe-online.de have an official developer API?+
What does `get_tender_details` return beyond what appears in search results?+
get_tender_details returns the full tender record for a given id, including offer_deadline, last_modified, publication_date, reference_number, CPV codes, and extended procurement metadata. Search endpoints return summary objects — title, location, procedure type, and deadline — but do not include the full CPV classification or submission requirement details that get_tender_details provides.Can I search tenders by contracting authority name or location?+
search_tenders endpoint accepts keywords, contract_type, and publish_date_range; authority name or geographic filtering is not a standalone parameter. You can fork this API on Parse and revise it to add an authority or location filter endpoint.How many results does each search endpoint return per page?+
search_tenders, search_construction_tenders, and search_tenders_by_cpv, use the page integer parameter to walk through additional results. get_latest_tenders returns a fixed set of up to 10 recent tenders and does not support pagination.