Tools / UK Public Contracts — Find a Tender + Contracts Finder
UK Public Contracts — Find a Tender + Contracts Finder
UK public-sector tenders and contract awards from BOTH official portals — Find a Tender (above threshold) and Contracts Finder (sub threshold) — in one deduplicated feed. Filter by CPV, value, keyword and open deadline. Flat JSON with buyer email, phone, address, value and deadlines.
Run it
curl -X POST https://fetchsmith.com/api/v1/run/uk-find-a-tender-scraper \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"maxResults": 15, "stages": ["tender"], "updatedWithinDays": 3}'
Output fields
source sourceName ocid noticeId noticeUrl stage publishedDate language title description status procurementMethod procurementMethodDetails mainProcurementCategory legalBasis cpvCode cpvDescription cpvCodes valueAmount valueCurrency deadlineDate tenderStartDate awardPeriodStart contractStartDate contractEndDate buyerName buyerId buyerEmail buyerPhone buyerUrl buyerStreet buyerLocality buyerPostalCode buyerRegion buyerCountry deliveryRegions deliveryLocations lotCount lotTitles suitableForSme suitableForVcse awardStatus awardValueAmount awardValueCurrency awardValueSource awardedSuppliers contractCount contractDateSigned aboveThreshold documentUrls
Sample output
{
"aboveThreshold": null,
"awardPeriodStart": "2026-10-13T12:00:00+01:00",
"awardStatus": null,
"awardValueAmount": null,
"awardValueCurrency": null,
"awardValueSource": null,
"awardedSuppliers": [],
"buyerCountry": "United Kingdom",
"buyerEmail": "enquiries@maryhill.org.uk",
"buyerId": "GB-FTS-102767",
"buyerLocality": "Glasgow",
"buyerName": "Maryhill Housing Association",
"buyerPhone": "+44 1419462466",
"buyerPostalCode": "G20 8RG",
"buyerRegion": "UKM",
"buyerStreet": "45 Garrioch Road",
"buyerUrl": "https://www.maryhill.org.uk",
"contractCount": 0,
"contractDateSigned": null,
"contractEndDate": null,
"contractStartDate": null,
"cpvCode": "50720000",
"cpvCodes": [
"50720000",
"44621200",
"44620000",
"44621000",
"42160000",
"44621100",
"44621110",
"44621112",
"42511110",
"42533000"
],
"cpvDescription": "Repair and maintenance services of central heating",
"deadlineDate": "2026-10-12T17:00:00+01:00",
"deliveryLocations": [
"Maryhill \u0026 Ruchill areas of Glasgow"
],
"deliveryRegions": [
"UKM82"
],
"description": "Maryhill Housing Association (MHA) seeks to appoint a qualified and experienced contractor to deliver a programme of:\nGas servicing + reactive repairs\nBoiler Replacements\nASHP serv \u2026",
"documentUrls": [],
"language": "en",
"legalBasis": "32014L0024",
"lotCount": 3,
"lotTitles": [
"Gas Servicing \u0026 Reactive Repairs",
"Boiler Replacements",
"ASHP Installations \u0026 Reactive Repairs and HHR Upgrades"
],
"mainProcurementCategory": "services",
"noticeId": "086108-2026",
"noticeUrl": "https://www.find-tender.service.gov.uk/Notice/086108-2026",
"ocid": "ocds-h6vhtk-06f762",
"procurementMethod": "open",
"procurementMethodDetails": "Open procedure",
"publishedDate": "2026-09-10T16:39:42+01:00",
"source": "fts",
"sourceName": "Find a Tender",
"stage": [
"tender"
],
"status": "active",
"suitableForSme": null,
"suitableForVcse": null,
"tenderStartDate": null,
"title": "Maryhill Housing Association - Heating Maintenance 2026 - 2031",
"valueAmount": 710000,
"valueCurrency": "GBP"
}
Guides
- The UK publishes every public contract as OCDS JSON — and the money isn't where you'd look — Find a Tender and Contracts Finder, the UK's two official procurement portals, both have free key-free OCDS APIs. The award value is rarely on the award, one rate-limit error is plain text (not JSON), and the other silently caps every page at 100 rows unless you ask it exactly the right way.
Only publicly accessible pages are read. Respect the source site's terms when using the data.