Tender Monitor APItendermonitor.ge ↗
Access Georgian government procurement data via 4 endpoints. Search tenders by CPV code, registration number, procurer, or supplier. Retrieve tender details and org profiles.
What is the Tender Monitor API?
The Tender Monitor Georgia API exposes 4 endpoints covering government procurement data from tendermonitor.ge. Use search_tenders to filter active and historical tenders by CPV code, procurer, supplier, or registration number, and retrieve paginated summaries including estimated value, status, and announcement date. Separate endpoints cover full tender detail records, supplier search, and organization profile pages with procurement statistics.
curl -X GET 'https://api.parse.bot/scraper/879777c4-aff3-4b85-9638-c7ebdea8d105/search_tenders?page=1&cpv_code=33600000' \ -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 tendermonitor-ge-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.
from parse_apis.tender_monitor_georgia_api import TenderMonitor, TenderSummary, Tender, Supplier, SupplierDetail, Organization
client = TenderMonitor()
# Search for pharmaceutical tenders by CPV code
for tender in client.tendersummaries.search(cpv_code="33600000", limit=5):
print(tender.registration_number, tender.status, tender.estimated_value, tender.cpv_code)
# Navigate to full tender details
detail = tender.details()
print(detail.tender_status, detail.tender_procedure, detail.estimated_value)
print(detail.procuring_entity.name, detail.procuring_entity.id)
for doc in detail.documents:
print(doc.name, doc.url)
# Search suppliers and get their details
for supplier in client.suppliers.search(name="Ltd", limit=3):
print(supplier.name, supplier.identification_code, supplier.address)
profile = supplier.details()
print(profile.name, profile.category, profile.email, profile.phone_number)
Search for tenders on Tender Monitor Georgia using various filters. Returns paginated results with tender summaries including registration number, status, procurer, supplier, estimated value, and CPV code. Paginates via integer page number. Each tender carries an internal ID usable with get_tender_detail.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| status | string | Tender status filter. |
| cpv_code | string | CPV code to filter tenders (e.g. 33600000 for pharmaceutical products). |
| procurer | string | Procurer name or numeric ID. |
| supplier | string | Supplier name or numeric ID. |
| registration_number | string | Tender registration number (e.g. NAT260009731). |
{
"type": "object",
"fields": {
"page": "string representing current page number",
"tenders": "array of tender summary objects with tender_id, registration_number, status, procurer, supplier, announcement_date, estimated_value, cpv_code",
"total_count": "string representing total number of matching tenders"
},
"sample": {
"data": {
"page": "1",
"tenders": [
{
"status": "გამოცხადებულია",
"cpv_code": "Pharmaceutical products (33600000)",
"procurer": {
"id": "17526",
"name": ",,laboratoriuli Kvleviti Tsentri\""
},
"supplier": {
"id": "",
"name": "-"
},
"tender_id": "668194",
"estimated_value": "27,903",
"announcement_date": "04.06.2026",
"registration_number": "NAT260011671"
}
],
"total_count": "8375"
},
"status": "success"
}
}About the Tender Monitor API
Tender Search and Detail
The search_tenders endpoint accepts up to six filter parameters — cpv_code, procurer, supplier, registration_number, status, and page — and returns a paginated list of matching tenders. Each item in the tenders array includes tender_id, registration_number, status, procurer, supplier, announcement_date, and estimated_value. The total_count field tells you how many records match across all pages. CPV codes follow the EU Common Procurement Vocabulary scheme (e.g., 33600000 for pharmaceutical products).
For a single tender, get_tender_detail takes a tender_id (sourced from search results) and returns richer metadata: tender_status, tender_procedure type, estimated_value with currency, a procuring_entity object containing the organization's name and ID, and a documents array with names and direct URLs to associated procurement files.
Supplier and Organization Data
search_suppliers lets you locate organizations by name or id_code (the official Georgian identification code), returning paginated results with organization_id, identification_code, name, and address for each match. Organization IDs from these results — or from procurer/supplier fields in tender summaries — feed directly into get_supplier_detail.
get_supplier_detail returns a full organization profile: name, address, category, identification_code, and a statistics object containing procurement activity metrics. The exact keys within statistics vary by organization type, so treat it as a flexible map when parsing responses.
The Tender Monitor API is a managed, monitored endpoint for tendermonitor.ge — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tendermonitor.ge 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 tendermonitor.ge 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?+
- Track all tenders under a specific CPV code to monitor procurement activity in a given product or service category.
- Look up a supplier's full procurement history and statistics using their organization ID from search results.
- Verify a tender's document set and procedure type before preparing a bid response.
- Build alerts for new tenders from a specific procuring entity by polling
search_tenderswith aprocurerfilter. - Cross-reference a supplier's identification code against tender awards to map vendor concentration across state contracts.
- Aggregate estimated contract values by CPV code to analyze government spending patterns in Georgia.
| 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 tendermonitor.ge have an official developer API?+
What does `get_tender_detail` return beyond what `search_tenders` provides?+
search_tenders returns summary-level fields: registration number, status, procurer, supplier, announcement date, and estimated value. get_tender_detail adds the procedure type description, the full procuring_entity object with name and ID, and a documents array containing names and download URLs for official tender documents.Does the `statistics` object in `get_supplier_detail` have a fixed schema?+
statistics object vary depending on the organization type — a supplier's profile will have different metric keys than a procuring entity's profile. Parse the object dynamically rather than assuming fixed field names.Does the API cover tender lot-level details or line-item breakdowns within a tender?+
get_tender_detail, and organization-level data via the supplier endpoints. Lot-level or line-item breakdowns are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting those details.Can I filter `search_tenders` by date range or announcement date?+
cpv_code, procurer, supplier, registration_number, status, and page. You can fork this API on Parse and revise it to add date-based filtering if that field is queryable on the source.