tenders.gov.uk APItenders.gov.uk ↗
Search and retrieve UK government tender notices from Find a Tender in OCDS format. Filter by status, CPV code, value, and date across 5 endpoints.
curl -X GET 'https://api.parse.bot/scraper/8cba9203-9364-4487-950d-0a8c2e3c9fd3/search_notices?query=construction' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for tender notices on Find a Tender. Returns a paginated list of notices with summary details parsed from the search results page. Supports keyword search and filtering by status, notice type, and contract value range.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| query | string | Search keywords (e.g. 'construction'). |
| sort_by | string | Sort order for results. |
| statuses | string | Comma-separated statuses to filter by: planning, tender, contract, pipeline, award, termination. If omitted, all statuses are included. |
| max_value | string | Maximum contract value filter. |
| min_value | string | Minimum contract value filter. |
| notice_types | string | Comma-separated notice type filter values. |
{
"type": "object",
"fields": {
"items": "array of notice summary objects, each with id, title, url, organisation, notice_type, contract_value, location, published_date, description_summary",
"total_results": "integer total number of matching notices"
},
"sample": {
"data": {
"items": [
{
"id": "040762-2026",
"url": "https://www.find-tender.service.gov.uk/Notice/040762-2026",
"title": "The provision of a support service for families affected by substance misuse",
"location": "UKI51 - Bexley and Greenwich",
"notice_type": "UK7: Contract details notice",
"organisation": "Royal Borough of Greenwich",
"contract_value": null,
"published_date": "2 May 2026, 7:31pm",
"description_summary": "A remote support service offering support directly to adults affected by a loved one's drug or alcohol use."
}
],
"total_results": 266820
},
"status": "success"
}
}About the tenders.gov.uk API
The tenders.gov.uk API provides access to UK public procurement notices from the Find a Tender service across 5 endpoints. Use search_notices to query live tender opportunities by keyword, status, notice type, and contract value, or call get_notice_detail to retrieve a full OCDS release package for any specific notice. Response fields include OCDS-structured parties, tender details, awards, contracts, and publisher metadata.
Searching and Filtering Notices
The search_notices endpoint accepts keyword queries alongside filters for statuses (planning, tender, contract, pipeline, award, termination), notice_types, and a contract value range via min_value and max_value. Results are paginated using the page parameter and return an array of summary objects — each carrying id, title, url, organisation, notice_type, contract_value, location, and published_date — plus a total_results count for determining page depth.
Notice Detail and OCDS Records
get_notice_detail accepts a notice_id in NNNNNN-YYYY format and returns a full OCDS release package: a releases array with parties, tender, awards, and contracts sub-objects; a publisher object carrying name, scheme, uid, and uri; and the publishedDate ISO datetime. For tracking the complete procurement lifecycle across multiple releases, get_notice_ocds_record returns an OCDS record package with compiledRelease and versionedRelease fields alongside all related release objects.
Bulk Extraction and CPV Codes
get_ocds_release_packages supports bulk retrieval of notices with cursor-based pagination — pass the cursor value from links.next to walk through large result sets — and accepts updated_from / updated_to ISO datetime filters to scope results to a time window. The browse_cpv_codes endpoint returns top-level Common Procurement Vocabulary codes, each with a code string, a description, and a has_children boolean indicating whether subcategories exist under that classification.
- Monitor new tender opportunities matching specific CPV categories or keyword terms
- Track the full procurement lifecycle of a contract using OCDS versioned release data
- Bulk-export recent notices by date range for competitive intelligence or compliance reporting
- Filter active tenders by contract value range to surface opportunities within budget thresholds
- Map procurement spend by organisation using
organisationandcontract_valuefields from search results - Integrate tender award data into CRM pipelines to identify awarded contracts and winning suppliers
- Build CPV-code taxonomies for categorising procurement data in analytics dashboards
| 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 | 250 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 Find a Tender have an official developer API?+
What does `get_ocds_release_packages` return and how does pagination work?+
links object containing a next cursor URL. Pass that cursor value as the cursor parameter in your next call to retrieve the following page. The updated_from and updated_to parameters accept ISO-format datetimes so you can scope bulk pulls to a specific window.Does the API return sub-level CPV codes, not just top-level entries?+
browse_cpv_codes returns only top-level CPV codes. Each entry includes a has_children boolean flagging whether subcategories exist, but drilling into child codes is not exposed as a separate endpoint. You can fork this API on Parse and revise it to add a child-code lookup endpoint for any parent CPV code.Can I filter search results by a specific buying organisation or region?+
search_notices endpoint currently supports filtering by status, notice type, and contract value range. Organisation-level or region-level filtering parameters are not directly exposed. You can fork the API on Parse and revise it to add those filter parameters if your use case requires narrowing by buyer or geography.How fresh is the notice data returned by the search and detail endpoints?+
get_ocds_release_packages endpoint includes updated_from and updated_to filters, which lets you pull only notices updated within a specific time window. Individual notice freshness depends on when the contracting authority publishes or amends a record on Find a Tender.