Gov APIesupply.dubai.gov.ae ↗
Access current government tender opportunities from Dubai's official eSupply portal. Get titles, authorities, dates, categories, and direct detail URLs via one API.
What is the Gov API?
The Dubai eSupply API provides access to active government procurement opportunities published on esupply.dubai.gov.ae through a single endpoint, list_tenders, returning up to 10 fields per record including tender title in English and Arabic, issuing authority, publication and closing dates, category, and a direct link to the full tender on the portal. Results are ordered by closing date ascending and support pagination and date filtering.
curl -X GET 'https://api.parse.bot/scraper/1fea4001-db7d-472c-9f67-640820343bf4/list_tenders?page=1&page_size=25&published_since=2026-07-28T00%3A00%3A00' \ -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 esupply-dubai-gov-ae-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: Dubai eSupply Tenders SDK — bounded, re-runnable; every call capped."""
from parse_apis.Dubai_eSupply_Tenders_API import DubaiESupply, ParseError
client = DubaiESupply()
# List current tenders, capped to 3 results
for tender in client.tenders.list(limit=3):
print(tender.title_en, tender.authority_en, tender.closing_date)
# Filter by publication date
recent = client.tenders.list(published_since="2026-07-28T00:00:00", limit=2).first()
if recent:
print(recent.source_record_id, recent.official_reference, recent.official_tender_url)
# Typed error handling
try:
for t in client.tenders.list(published_since="2026-07-01T00:00:00", limit=1):
print(t.title_en, t.description_en)
except ParseError as e:
print(f"error: {e}")
print("exercised: tenders.list")
Lists current government tender opportunities from Dubai's official eSupply portal. For each tender on the listing page, the detail page is fetched to extract richer fields: the actual item description (title_en), scope of work (description_en), and category. Results are ordered by closing date (ascending). Client-side filtering by publication date is supported via published_since. Results are auto-iterated across the portal's internal pages.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for paginated results. |
| page_size | integer | Number of tender records per page. |
| published_since | string | ISO-8601 date-time string. When provided, only tenders published on or after this date-time are returned (e.g. 2026-07-01T00:00:00). |
{
"type": "object",
"fields": {
"items": "array of tender records with source_record_id, official_reference, title_en, title_ar, authority_en, authority_ar, description_en, description_ar, activity, category, publication_date, closing_date, official_tender_url",
"next_cursor": "next page number as string, or null if no more pages"
},
"sample": {
"data": {
"items": [
{
"activity": null,
"category": "Other",
"title_ar": null,
"title_en": "12618591 - osp",
"authority_ar": null,
"authority_en": "Dubai Municipality",
"closing_date": "2026-07-31T00:00:00",
"description_ar": null,
"description_en": null,
"publication_date": "2026-07-30T09:05:00",
"source_record_id": "243459",
"official_reference": "12618591 - osp",
"official_tender_url": "https://esupply.dubai.gov.ae/esop/toolkit/opportunity/current/243459/detail.si"
}
],
"next_cursor": "2"
},
"status": "success"
}
}About the Gov API
What the API Returns
The list_tenders endpoint returns an array of tender records currently published on Dubai's official eSupply procurement portal. Each record includes source_record_id, official_reference, bilingual title fields (title_en, title_ar), bilingual authority fields (authority_en, authority_ar), description_en, category, publication date, closing date, and a direct detail URL. Results are ordered by closing date in ascending order, so the most urgently closing tenders appear first.
Filtering and Pagination
The endpoint accepts three optional input parameters. page and page_size control pagination across the full result set; the response includes a next_cursor field containing the next page number as a string, or null when no further pages exist. The published_since parameter accepts an ISO-8601 date-time string and limits results to tenders published on or after that timestamp — useful for incremental polling to detect newly listed opportunities without re-processing the full catalogue.
Coverage and Scope
Data covers current, publicly visible tender opportunities from the Dubai Government's central procurement platform. Each record carries both English and Arabic content where available, reflecting the bilingual nature of the source portal. The authority_en and authority_ar fields identify which Dubai government entity issued the tender, allowing filtering by department or agency on the client side.
The Gov API is a managed, monitored endpoint for esupply.dubai.gov.ae — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when esupply.dubai.gov.ae 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 esupply.dubai.gov.ae 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 Dubai government tenders daily using
published_sinceto catch only fresh listings - Build a tender alert system that notifies suppliers when tenders from a specific authority (
authority_en) appear - Aggregate closing-date timelines across Dubai government departments for procurement planning dashboards
- Index tender titles and descriptions in both English and Arabic for multilingual search interfaces
- Track which Dubai government authorities are most active in procurement using
authority_enfrequency analysis - Feed tender detail URLs into downstream scrapers or CRM workflows for bid management pipelines
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Dubai eSupply have an official developer API?+
What does the `list_tenders` endpoint actually return per record?+
source_record_id, official_reference, title_en, title_ar, authority_en, authority_ar, description_en, tender category, publication date, closing date, and a direct URL to the full tender detail page on esupply.dubai.gov.ae. Results are ordered by closing date ascending.How fresh is the tender data, and how should I poll for new listings?+
published_since parameter with an ISO-8601 timestamp set to your last successful poll time. This returns only tenders published on or after that point.Does the API cover closed, awarded, or historical tenders?+
Can I filter tenders by issuing authority or category directly in the request?+
authority_en or category. The list_tenders endpoint supports page, page_size, and published_since filters; authority and category filtering must be applied client-side against the returned records. You can fork this API on Parse and revise it to add authority or category filter parameters.