UK Contracts Finder Tenders & Awards Scraper (OCDS) avatar

UK Contracts Finder Tenders & Awards Scraper (OCDS)

Pricing

from $3.00 / 1,000 notice rows

Go to Apify Store
UK Contracts Finder Tenders & Awards Scraper (OCDS)

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

La Fabbrica LLC

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

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

FieldTypeDefaultMeaning
keywordstringnoneWords that must all appear (case-insensitive) in title, description, buyer name or CPV descriptions
stageall / tender / award / planningallLive opportunities, awarded contracts, future opportunities, or all three
publishedFromdate7 days before publishedToStart of the date window (UK time)
publishedTodatenowEnd of the date window; a plain date includes the whole day
minValue, maxValueinteger (GBP)noneValue range; awards are compared on the awarded value, other notices on the estimated value
cpvCodesarray of stringsnoneCPV codes; trailing zeros act as a wildcard (72000000 = all IT services)
maxItemsinteger100Stop after this many rows (max 5000)
pageSize, maxPagesinteger100, 200API 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.

FieldTypeDescription
ocidstringOpen Contracting ID of the procurement process (same across tender, award and planning notices)
noticeIdstringContracts Finder notice GUID
titlestringNotice title
descriptionstringNotice description, contact details removed
stagestringtender, award or planning
publishedDatestringWhen this notice was published or last edited
deadlineDatestring or nullBid deadline (tender period end)
buyerOrganisationstringBuying public body
buyerIdstringBuyer identifier (e.g. GB-CFS-338235)
buyerRegionstring or nullDelivery region(s) declared on the notice
valueMin, valueMaxnumber or nullEstimated contract value range
valueCurrencystring or nullGBP
cpvCodesarray{ code, description } for the main and additional CPV classifications
procurementMethodstring or nulle.g. Open procedure (below threshold)
procurementCategorystring or nullgoods, services or works
suitableForSme, suitableForVcseboolean or nullBuyer's suitability flags
contractStartDate, contractEndDatestring or nullContract period
awardedSupplierNamesarray of stringsAwarded supplier organisations (awards only)
awardedValuenumber or nullTotal awarded value (awards only)
awardedDatestring or nullAward date (awards only)
noticeUrlstringPublic notice page
documentsarray{ url, title, format } for the notice page and attachments
metaobjectsource, 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:

EventPriceWhen
Actor start$0.02Once per run, after your input is validated
Notice row$0.003Once 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. publishedDate in the output is that edit date. Use ocid or noticeId to 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 maxPages for 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; buyerRegion is 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.