UK Contracts Finder Tenders & Awards Scraper (OCDS)
Pricing
from $3.00 / 1,000 notice rows
UK Contracts Finder Tenders & Awards Scraper (OCDS)
Scrape UK public-sector tenders, contract awards and pipelines from gov.uk Contracts Finder (OCDS API). Filter by keyword, stage, date, value or CPV. Bid tracking and lead generation.
Pricing
from $3.00 / 1,000 notice rows
Rating
0.0
(0)
Developer
La Fabbrica LLC
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
What does UK Contracts Finder Tenders & Awards Scraper do?
It turns the UK government's Contracts Finder OCDS feed into flat, spreadsheet-ready rows: one row per tender, contract award or planned procurement, with the buyer organisation, estimated and awarded values, bid deadline, CPV codes, winning suppliers and links to the notice and its attachments.
Contracts Finder publishes every public-sector contract opportunity in England (and many from the rest of the UK) worth over £12,000 (central government) or £30,000 (wider public sector). The official API returns nested Open Contracting Data Standard (OCDS) release packages that are awkward to filter, join or paste into a CRM. This actor does the flattening and filtering for you and delivers JSON, CSV or Excel, on a schedule if you want.
It reads only the public, unauthenticated OCDS search endpoint. It does not log in and does not collect personal data: procurement officers' names, email addresses and phone numbers are dropped from every notice, and any contact details a buyer pasted into the free-text description are removed too.
Why use it?
- Bid and tender teams: a daily feed of new opportunities matching your keywords or CPV codes, with deadline and value, delivered to Slack, Google Sheets or your bid tracker.
- Sales and business development: see which public bodies are buying what, at what value, and who they awarded to last month; build target lists of buyers and competitors.
- Market research and analysts: pull every award above £100,000 in a CPV division over a date range and analyse spend, procurement methods and supplier concentration.
- AI agents and RAG pipelines: clean, deduplicated rows with stable OCIDs and notice URLs, instead of raw OCDS JSON.
On Apify you also get scheduling, webhooks, run monitoring and integrations (Google Sheets, Make, Zapier, LangChain, MCP).
Input
| Field | Type | Default | Meaning |
|---|---|---|---|
keyword | string | none | Words that must all appear (case-insensitive) in title, description, buyer name or CPV descriptions |
stage | all / tender / award / planning | all | Live opportunities, awarded contracts, future opportunities, or all three |
publishedFrom | date | 7 days before publishedTo | Start of the date window (UK time) |
publishedTo | date | now | End of the date window; a plain date includes the whole day |
minValue, maxValue | integer (GBP) | none | Value range; awards are compared on the awarded value, other notices on the estimated value |
cpvCodes | array of strings | none | CPV codes; trailing zeros act as a wildcard (72000000 = all IT services) |
maxItems | integer | 100 | Stop after this many rows (max 5000) |
pageSize, maxPages | integer | 100, 200 | API paging controls; only change for testing or very long windows |
Example input
{"keyword": "software","stage": "tender","publishedFrom": "2026-09-11","publishedTo": "2026-09-18","minValue": 50000,"cpvCodes": ["72000000", "48000000"],"maxItems": 200}
Output
One row per notice. Download as JSON, CSV or Excel, or read it through the API.
| Field | Type | Description |
|---|---|---|
ocid | string | Open Contracting ID of the procurement process (same across tender, award and planning notices) |
noticeId | string | Contracts Finder notice GUID |
title | string | Notice title |
description | string | Notice description, contact details removed |
stage | string | tender, award or planning |
publishedDate | string | When this notice was published or last edited |
deadlineDate | string or null | Bid deadline (tender period end) |
buyerOrganisation | string | Buying public body |
buyerId | string | Buyer identifier (e.g. GB-CFS-338235) |
buyerRegion | string or null | Delivery region(s) declared on the notice |
valueMin, valueMax | number or null | Estimated contract value range |
valueCurrency | string or null | GBP |
cpvCodes | array | { code, description } for the main and additional CPV classifications |
procurementMethod | string or null | e.g. Open procedure (below threshold) |
procurementCategory | string or null | goods, services or works |
suitableForSme, suitableForVcse | boolean or null | Buyer's suitability flags |
contractStartDate, contractEndDate | string or null | Contract period |
awardedSupplierNames | array of strings | Awarded supplier organisations (awards only) |
awardedValue | number or null | Total awarded value (awards only) |
awardedDate | string or null | Award date (awards only) |
noticeUrl | string | Public notice page |
documents | array | { url, title, format } for the notice page and attachments |
meta | object | source, licence (OGL v3), licenceUrl, retrievedAt |
Example output
{"ocid": "ocds-b5fd17-2b56fb66-9966-467d-a792-2cf835ce49e0","noticeId": "efa962fe-40cc-404e-bd00-56e59c7e0f70","title": "GB-Maidstone: Preliminary Market Engagement - Project Portfolio Management Solution","description": "Kent Fire and Rescue Service (KFRS) is exploring options for a Project Portfolio Management (PPM) solution ...","stage": "tender","publishedDate": "2026-09-18T10:30:04+01:00","deadlineDate": "2026-10-01T00:00:00+01:00","buyerOrganisation": "Kent & Medway Town Fire Authority","buyerId": "GB-CFS-338235","buyerRegion": "South East","valueMin": 50000,"valueMax": 100000,"valueCurrency": "GBP","cpvCodes": [{ "code": "48000000", "description": "Software package and information systems" }],"procurementMethod": "Restricted procedure","procurementCategory": "services","suitableForSme": true,"suitableForVcse": false,"contractStartDate": "2026-11-01T00:00:00Z","contractEndDate": "2027-10-31T23:59:59Z","awardedSupplierNames": [],"awardedValue": null,"awardedDate": null,"noticeUrl": "https://www.contractsfinder.service.gov.uk/Notice/efa962fe-40cc-404e-bd00-56e59c7e0f70","documents": [{ "url": "https://www.contractsfinder.service.gov.uk/Notice/efa962fe-40cc-404e-bd00-56e59c7e0f70", "title": "Opportunity notice on Contracts Finder", "format": "text/html" }],"meta": {"source": "UK Contracts Finder (OCDS API)","licence": "OGL v3","licenceUrl": "http://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/","retrievedAt": "2026-09-18T10:09:30.076Z"}}
How much does it cost?
Pay-per-event pricing. You pay two things and nothing else:
| Event | Price | When |
|---|---|---|
| Actor start | $0.02 | Once per run, after your input is validated |
| Notice row | $0.003 | Once per row saved to the dataset |
A typical run of 100 notices costs $0.32; 1,000 notices cost $3.02. Rows filtered out by keyword, value or CPV are not charged. Set Maximum cost per run in the run options to cap spending; the actor stops cleanly at the cap and you keep everything saved up to that point.
Limits and things to know
- Date window semantics. The API filters on the date a notice was last published or edited in its current stage, so a tender edited yesterday appears in yesterday's window even if it was first published months ago.
publishedDatein the output is that edit date. UseocidornoticeIdto deduplicate across runs. - Keyword, value and CPV filters run after download. The public endpoint only filters by date and stage, so a narrow filter over a long window reads many pages to find a few rows. Keep windows short for daily feeds; raise
maxPagesfor long back-fills. You are charged only for saved rows. - Rate limit. Contracts Finder returns HTTP 403 when a client sends too many requests and asks for a 5-minute pause. The actor waits and retries a few times, then stops with a clear message. Do not run several copies at the same time.
- Volume. Roughly 100-300 releases are published per working day across all stages. A 7-day, all-stage window is around 1,000-2,000 rows.
- Value fields. Many awards publish no estimated value, only the awarded value; some tenders publish neither. With a value filter set, rows with no comparable value are dropped.
- Region. Contracts Finder does not publish a buyer region;
buyerRegionis the delivery region declared on the notice and may be empty. - Maximum 5,000 rows per run. For larger back-fills, split the date range across runs.
Data licence and attribution
Contains public sector information licensed under the Open Government Licence v3.0. Source: Contracts Finder, Cabinet Office. Every output row carries the licence in meta.licence; keep that attribution when you republish the data.
Personal data
None is collected. The OCDS feed includes a named contact point (name, email, telephone) for every buyer; this actor never reads that object, and it strips email addresses and phone numbers that buyers occasionally paste into notice descriptions. Supplier and buyer names are organisation names. If you spot a personal detail in the output, report it in the Issues tab and it will be fixed within one working day.
FAQ and support
Is this legal? Yes: the data is published by the UK government specifically for reuse under the Open Government Licence, through a documented public API, and this actor collects no personal data. You are responsible for how you use the output.
Why fewer rows than expected? Check the run log: it reports how many releases were read, how many matched your filters, and whether maxPages or the cost cap stopped the run early.
Something broken? Open a report in the Issues tab with your input and the run ID.