UK Contracts Finder Tenders & Awards Scraper
Pricing
from $9.23 / 1,000 results
UK Contracts Finder Tenders & Awards Scraper
Extract UK public sector tenders and awarded contracts from Contracts Finder. Get title, buyer and contact, contract value, CPV codes, procurement stage, deadline and the awarded supplier with company number. Export to JSON, CSV or Excel.
Pricing
from $9.23 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
UK Contracts Finder Tenders & Awards Scraper
Here is one real result, with every field the actor returns (the long description is trimmed to its first two lines; the full text is included in every record):
{"title": "CRM hosted software","description": "Purpose and Scope. This specification sets out Taunton Town Council's requirements for a hosted CRM, asset management, and mobile working system for Council services.","noticeUrl": "https://www.contractsfinder.service.gov.uk/Notice/93db7b6a-672d-467f-818f-24f44ba0d9f9","ocid": "ocds-b5fd17-99019dae-8d2e-498d-80e6-8c3b8829a214","stage": "award","status": "complete","buyerName": "Taunton Town Council","buyerContactName": "Louise Rowe","buyerEmail": "procurement@taunton-tc.gov.uk","buyerPhone": "+44 1823793781","buyerPostcode": "TA1 9QQ","buyerLocality": "Somerset","buyerStreetAddress": "Belevedere Road, Taunton","buyerCountry": "England","value": 38000,"minValue": null,"currency": "GBP","cpvCode": "48000000","cpvDescription": "Software package and information systems","additionalCpvCodes": [],"procurementCategory": "services","procedure": "Open procedure","suitableForSme": true,"suitableForVcse": false,"deliveryLocations": ["United Kingdom"],"publishDate": "2026-07-28T17:45:05","deadlineDate": "2026-06-17T12:00:00","contractStartDate": "2026-09-01T00:00:00","contractEndDate": "2030-08-31T23:59:59","awardedSupplier": "Abavus Ltd","awardedSupplierCompanyNumber": "06082412","awardedSupplierAddress": "7-8 The Shrubberies, South Woodford, London","awardedSupplierEmail": null,"awardedSupplierPhone": null,"awardedSuppliers": [{ "name": "Abavus Ltd", "companyNumber": "06082412", "address": "7-8 The Shrubberies, South Woodford, London", "postcode": null, "email": null, "phone": null }],"awardValue": 38000,"awardCurrency": "GBP","awardDate": "2026-07-28T00:00:00","documents": [{ "url": "https://www.contractsfinder.service.gov.uk/Notice/93db7b6a-672d-467f-818f-24f44ba0d9f9", "documentType": "awardNotice", "description": "Awarded contract notice on Contracts Finder" }],"observedAt": "2026-07-28T17:22:25.144Z","error": null}
The most complete UK Contracts Finder scraper available. It returns every field a notice exposes across all stages, from buyer name, contact, email, phone and address to contract value, CPV sector, SME and VCSE suitability, delivery locations and full document links, plus the awarded supplier with its company number and address on award notices, and gives you eight filters to target exactly the notices you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor searches UK Contracts Finder (the government service for public-sector contract notices), applies the filters you pass, and writes one normalized record per notice to the run's dataset. It covers all three procurement stages: tender opportunities (open and closed), awarded contracts (with the winning supplier), and planning pipeline notices. Each record carries the notice title and description, buyer name and full contact details, contract value and currency, CPV sector codes, procurement category and procedure, SME and VCSE suitability, delivery locations, key dates and document links. On award notices, it also carries the awarded supplier with its Companies House number and address. Missing values are returned as null, and each record carries an observedAt timestamp.
Quickstart
Open the actor, paste this into the input, and press Run. It returns up to 10 software-related notices across all stages.
{"query": "software","maxContracts": 10}
Narrow with stages, region, cpvCodes, a published-date range and a value range to target a specific market.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | no | software | Keyword searched across notice title, description, buyer and supplier, for example cloud hosting, school catering, road resurfacing. Leave empty to return all notices in the selected stage and date range. |
stages | array | no | (all) | Procurement stage. tender returns live and closed opportunities, award returns awarded contracts with the winning supplier, planning returns early pipeline notices. Leave empty for all stages. |
region | string | no | (all) | UK region as an ONS/NUTS code, for example UKI (London), UKD (North West England), UKM (Scotland), UKL (Wales). |
cpvCodes | string | no | (all) | Comma-separated CPV sector codes, for example 72000000, 48000000. 45000000 is construction, 72000000 IT services, 33000000 medical equipment, 79000000 business services. |
publishedFrom | string | no | (none) | Include notices published on or after this date (YYYY-MM-DD). |
publishedTo | string | no | (today) | Include notices published on or before this date (YYYY-MM-DD). |
valueFrom | integer | no | (none) | Minimum contract value in GBP. |
valueTo | integer | no | (none) | Maximum contract value in GBP. |
maxContracts | integer | no | 10 | Maximum notices to collect across all matching filters. Free Apify plans are capped at 10 per run. |
Filters combine with logical AND. With no filters the actor returns the most recent notices across all stages.
Output reference
One dataset item per notice. Types: string, integer, boolean, string[], object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
title | string | Notice title. |
description | string | Full notice description. |
noticeUrl | string | Notice URL on Contracts Finder. |
ocid | string | Open Contracting ID for the notice. |
stage | string | Procurement stage: tender, award, or planning. |
status | string | Notice status, for example complete, active. |
buyerName | string | Contracting authority (buyer). |
buyerContactName | string | Buyer contact person. |
buyerEmail | string | Buyer contact email. |
buyerPhone | string | Buyer contact phone. |
buyerPostcode | string | Buyer postcode. |
buyerLocality | string | Buyer locality or county. |
buyerStreetAddress | string | Buyer street address. |
buyerCountry | string | Buyer country. |
value | integer | Contract value. |
minValue | integer | Minimum contract value when a range is given, else null. |
currency | string | Currency code (GBP). |
cpvCode | string | Primary CPV sector code. |
cpvDescription | string | Primary CPV description. |
additionalCpvCodes | string[] | Additional CPV codes. |
procurementCategory | string | Category, for example services, works, goods. |
procedure | string | Procurement procedure, for example Open procedure. |
suitableForSme | boolean | Whether the notice is suitable for SMEs. |
suitableForVcse | boolean | Whether the notice is suitable for voluntary, community and social enterprises. |
deliveryLocations | string[] | Delivery or performance locations. |
publishDate | string | Publication date and time. |
deadlineDate | string | Submission deadline, or null. |
contractStartDate | string | Contract start date, or null. |
contractEndDate | string | Contract end date, or null. |
awardedSupplier | string | Winning supplier name (award notices), or null. |
awardedSupplierCompanyNumber | string | Winning supplier Companies House number, or null. |
awardedSupplierAddress | string | Winning supplier address, or null. |
awardedSupplierEmail | string | Winning supplier email, or null. |
awardedSupplierPhone | string | Winning supplier phone, or null. |
awardedSuppliers | object[] | All awarded suppliers with name, companyNumber, address, postcode, email, phone. |
awardValue | integer | Awarded value, or null. |
awardCurrency | string | Awarded value currency, or null. |
awardDate | string | Award date, or null. |
documents | object[] | Linked documents with url, documentType, description. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Award-specific fields (awardedSupplier*, awardValue, awardDate) are populated only on award stage notices.
Example output record
Real record from a live run (input {"query": "CRM", "stages": ["award"]}), with the long description trimmed:
{"title": "CRM hosted software","stage": "award","status": "complete","buyerName": "Taunton Town Council","buyerContactName": "Louise Rowe","buyerEmail": "procurement@taunton-tc.gov.uk","buyerPhone": "+44 1823793781","buyerPostcode": "TA1 9QQ","value": 38000,"currency": "GBP","cpvCode": "48000000","cpvDescription": "Software package and information systems","procurementCategory": "services","procedure": "Open procedure","suitableForSme": true,"suitableForVcse": false,"publishDate": "2026-07-28T17:45:05","awardedSupplier": "Abavus Ltd","awardedSupplierCompanyNumber": "06082412","awardedSupplierAddress": "7-8 The Shrubberies, South Woodford, London","awardValue": 38000,"awardCurrency": "GBP","awardDate": "2026-07-28T00:00:00","noticeUrl": "https://www.contractsfinder.service.gov.uk/Notice/93db7b6a-672d-467f-818f-24f44ba0d9f9","observedAt": "2026-07-28T17:22:25.144Z","error": null}
All values are real and unmodified; the description is shortened here for length.
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~uk-contracts-finder-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"query":"cloud hosting","stages":["tender"],"valueFrom":100000,"maxContracts":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~uk-contracts-finder-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"stages":["award"],"cpvCodes":"72000000","publishedFrom":"2026-06-01","maxContracts":200}'
Apify CLI:
apify call scrapers_lat/uk-contracts-finder-scraper \--input '{"query":"software","maxContracts":10}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per notice returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxContracts.
FAQ and troubleshooting
A run returned 0 records. Why?
The filter combination matched nothing. Loosen filters (widen the date or value range, drop region or cpvCodes) or broaden the keyword. Zero-result runs are not charged.
How do I see who won a contract?
Set stages to ["award"]. Award notices carry awardedSupplier, its awardedSupplierCompanyNumber, address and the awardValue.
How do I filter by sector?
Pass CPV codes in cpvCodes, comma-separated. For example 72000000 for IT services or 45000000 for construction.
Why are some award fields null?
The notice is a tender or planning notice, not an award, so there is no supplier yet. Missing values are returned as null, never invented.
Is this an official Contracts Finder tool? No. This actor is independent and has no affiliation with Contracts Finder or the UK government. It reads only data that is publicly available on Contracts Finder. Use the results in accordance with the source's terms.
Related scrapers
- UK Companies House Scraper: match awarded suppliers to company records.
- UK FCA Register Scraper: FCA-authorised firms and individuals.
- EU TED Tenders Scraper: EU public procurement notices.
- Australia Tenders Scraper: Australian government tenders.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Contracts Finder or the UK government. Accesses only publicly available notice data. Use in accordance with the source's terms.
