UK Tenders Scraper: Contract Winners and Open Tenders avatar

UK Tenders Scraper: Contract Winners and Open Tenders

Pricing

from $1.50 / 1,000 contract awards

Go to Apify Store
UK Tenders Scraper: Contract Winners and Open Tenders

UK Tenders Scraper: Contract Winners and Open Tenders

Returns UK public contract awards with the winning supplier (Companies House number, location, SME flag), buyer, value, CPV codes and notice link, plus open tenders, from Find a Tender (Procurement Act 2023) and Contracts Finder.

Pricing

from $1.50 / 1,000 contract awards

Rating

0.0

(0)

Developer

Mike Ross

Mike Ross

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

UK Government Contracts Scraper: Award Winners

Get a clean feed of which companies just won UK public sector contracts, plus the open tenders they can bid for next. Every award record names the winning supplier with its Companies House number, town, postcode, region and SME status, alongside the buyer, contract title, value, CPV codes, award date and a link to the official notice.

Data comes from the two official UK government procurement services, through their open APIs:

  • Find a Tender, which carries every notice published under the Procurement Act 2023 (in force since 24 February 2025) and above-threshold notices under the old regulations.
  • Contracts Finder, which still carries lower-value notices for procurements run under the old regulations.

Records are company-level only. Buyer and supplier contact names, email addresses and phone numbers are never returned.

What you get

Contract award records (recordType: "award"), one per winning supplier per notice:

FieldExample
supplierNameEDILTEX LTD
supplierCompaniesHouseNumber, supplierCompaniesHouseUrl08020912, link to the Companies House page
supplierPpon, supplierCharityNumberCentral Digital Platform supplier number, charity number where given
supplierLocality, supplierPostcode, supplierRegion, supplierCountryNewport, NP20 2AQ, Wales, United Kingdom
supplierSize, supplierIsSme, supplierIsVcsesme, true, false
supplierWebsiteThe company website when the notice gives one
buyerName, buyerType, buyerRegionDevon County Council, Public authority - sub-central government, South West
title, description, lotTitles, lotsWonContract title, first 300 characters of the description, lots won on this notice
value, valueIncludingVat, currency, valueSource250000, 300000, GBP, contract
valueShared, suppliersOnAwardtrue when a framework or shared award names several suppliers
mainCpvCode, mainCpvDescription, cpvCodes, cpvDescriptions19620000, Textile waste
awardDate, contractSignedDate, contractStartDate, contractEndDateCalendar dates as published
awardStatuspending (standstill period, not yet signed) or active
noticeType, noticeTypeName, legalFrameworkUK7, Contract details notice, Procurement Act 2023
publishedAt, noticeUrl, sourceWhen the notice was published (UTC), the official notice page, findATender or contractsFinder
isNewWhether the record is new since the previous run with the same filters

Tender records (recordType: "tender"), one per open opportunity, with the buyer, title, description, estimated value, CPV codes, tenderDeadline, contract dates, suitableForSme, procedure and notice link.

The Output tab has three views: Contract awards, Open tenders and Winning companies.

Who it is for

  • Sales and business development teams. A company that has just won a public contract is about to hire, buy equipment, subcontract and spend. Get a daily list of winners in your sector and region, with the Companies House number ready to match against your CRM.
  • Bid teams and suppliers to government. See who wins in your category, at what value, and which buyers are spending, then pick up the open tenders in the same feed.
  • Lenders, insurers and analysts. Track contract wins by company, sector and region for credit, risk and market research.
  • Recruiters and staffing firms. Contract winners often need to scale teams quickly.

Quick start

  1. Click Start with the default input. You get up to 500 of the newest contract award records published in the last 7 days.
  2. Narrow it down: add CPV codes (for example 72000000 for IT services), keywords like cleaning or cyber, a minimum value, or regions.
  3. For a daily feed, schedule the Actor every morning with Only records not seen in previous runs switched on, daysBack set to 2 and maxItems set to 0. Connect the dataset to Google Sheets, Slack, email or your CRM with an Apify integration or webhook.

Input

FieldWhat it doesDefault
modeawards (who won), tenders (open opportunities) or bothawards
daysBackNotices published or updated in the last N days7
dateFrom, dateToExact publication window instead of daysBack, for example 2026-10-01not set
cpvCodesCPV codes. Trailing zeros mean "everything below": 72000000 matches all IT services, 4521 matches 45210000 to 45219999all
keywordsTitle, description, lot titles, CPV description or supplier name contains any of thesenone
buyerKeywordsBuyer name contains any of these, for example NHS, Councilnone
minValueMinimum value in GBP. Notices without a value are dropped when this is above 00
regionsUK regions, or England for all nine English regionsall
regionAppliesToMatch regions against the buyer or place of delivery, or against the winning supplierbuyer or delivery
supplierSizeany, sme or large (awards only)any
onlyOpenTendersDrop tenders whose deadline has passedtrue
includeUpdatesInclude corrected or updated noticestrue
sourcesfindATender, contractsFinder or bothboth
onlyNewOnly records not returned by an earlier run with the same filtersfalse
maxItemsStop after this many records, newest first. 0 means no limit500
timeBudgetSecsStop reading after this many seconds and return what was found. 0 means no limit100

Example input for a daily sales feed of IT contract winners in London and the South East:

{
"mode": "awards",
"daysBack": 2,
"cpvCodes": ["72000000", "48000000", "30200000"],
"regions": ["London", "South East"],
"minValue": 50000,
"onlyNew": true,
"maxItems": 0
}

Output example

{
"recordType": "award",
"source": "findATender",
"noticeId": "100218-2026",
"noticeUrl": "https://www.find-tender.service.gov.uk/Notice/100218-2026",
"noticeType": "UK7",
"noticeTypeName": "Contract details notice",
"legalFramework": "Procurement Act 2023",
"title": "Demolition Works at Pennethorne House, SW11",
"description": "The contract entails demolition works at Pennethorne House, Winstanley and York Road, SW11. Please refer to tender documents for full information.",
"awardStatus": "active",
"supplierName": "J F Hunt Limited",
"supplierPpon": "PVTT-8493-CPYM",
"supplierLocality": "Essex",
"supplierPostcode": "RM20 4DB",
"supplierRegion": "East of England",
"supplierSize": "large",
"supplierIsSme": false,
"supplierWebsite": "http://www.johnfhunt.co.uk",
"suppliersOnAward": 1,
"valueShared": false,
"lotsWon": 1,
"buyerName": "London Borough of Wandsworth",
"buyerType": "Public authority - sub-central government",
"buyerRegion": "London",
"mainCpvCode": "45111000",
"mainCpvDescription": "Demolition, site preparation and clearance work",
"category": "works",
"value": 951194.0,
"valueIncludingVat": 1141432.8,
"currency": "GBP",
"valueSource": "contract",
"awardDate": "2025-10-24",
"contractStartDate": "2025-10-24",
"contractEndDate": "2026-10-24",
"publishedAt": "2026-10-22T21:34:26Z",
"procedureDetails": "Below threshold - limited competition",
"aboveThreshold": false,
"isNew": true
}

A run report is saved in the key-value store as RUN_SUMMARY: records returned per type, notices read per source, suppliers removed as private individuals, and any source that could not be read.

Pricing

This Actor uses pay per event pricing. Platform usage is included.

  • $2.50 per 1,000 contract award records (contract-award event, $0.0025 each)
  • $2.00 per 1,000 tender records (tender-notice event, $0.002 each)

You only pay for records saved to your dataset, so filters, onlyNew and maxItems keep costs down. A typical week has about 3,000 award records and 500 open tenders across the UK; a daily feed filtered to one sector and region is usually a few dozen records a day. Set a maximum cost per run in the run options and the Actor stops cleanly when it is reached.

How "only new records" works

With onlyNew on, the Actor remembers which records it has already returned for your filters, in a key-value store in your account called agents001-uk-public-contracts-feed-state. Later runs skip those records. The date window and maxItems are not part of the memory, so a rolling daysBack window on a schedule keeps one history. Changing any filter starts a fresh history.

With onlyNew off, the Actor does not open or update this store, so every record has isNew set to true. If a run stops with a message that it cannot open the store (for example because another Actor in your account already uses that name), enter a different name in State store name and run again.

An award record is identified by the notice's Open Contracting id and the supplier, so the same win reported first in a contract award notice (UK6) and later in a contract details notice (UK7) is returned once. A tender is identified by its Open Contracting id.

Records are returned newest first and maxItems caps each run. If a run hits maxItems, the next onlyNew run continues with older records it has not returned yet. For a complete daily feed, use a short daysBack (1 or 2) with maxItems set to 0.

Good to know

  • One record per winner. A notice with several lots or several winning suppliers gives one record per supplier. When a supplier wins several lots on one notice, they are combined into one record (lotsWon, lotTitles) and value is the sum of those lots.
  • Frameworks. When an award names several suppliers, valueShared is true and value is the whole award (often a ceiling for the framework), not that supplier's share.
  • Companies House numbers are given when the notice includes them: most suppliers registered on the Central Digital Platform do, and many older notices do too. When they are missing, supplierPpon or supplierId identifies the supplier on the notice.
  • Regions come from the region code on the notice where there is one, otherwise from the postcode area. Postcode areas that cross a regional border are given the region that holds most of the area.
  • Private individuals are removed. Some suppliers are sole traders listed under their own name (for example individual tutors). Those records are dropped, along with placeholder names such as "Various". The check is automatic and errs on the side of removal, so a small number of businesses named after a person may also be left out.
  • Time budget. The government APIs allow a limited number of requests per minute and ask callers to wait two minutes when that is exceeded. A run stops reading after timeBudgetSecs (100 seconds by default) and returns what it has, with stoppedAtTimeBudget in RUN_SUMMARY. A normal 7 day window reads in well under a minute. For backfills of 30 days or more with no maximum, set timeBudgetSecs to 0 or several minutes.
  • Updated notices appear again with isUpdate: true when a buyer corrects them. Turn off includeUpdates to skip them.

Data source, licence and attribution

All data comes from the official open APIs of Find a Tender (find-tender.service.gov.uk) and Contracts Finder (contractsfinder.service.gov.uk), both run by the UK Cabinet Office and Crown Commercial Service. The notice data is published in the Open Contracting Data Standard (OCDS) format under the Open Government Licence.

Contains public sector information licensed under the Open Government Licence v3.0. Source: Find a Tender and Contracts Finder, © Crown copyright.

The Actor reads the APIs politely (at most one request per second per service, with backoff on rate limits), uses no login, and keeps only company-level information.

FAQ

Why do some awards have an award date months before the publication date? Buyers publish some notices after the contract is signed, and contract details notices (UK7) are often published later than the award. publishedAt is when the notice appeared; awardDate is the date the buyer gives for the award.

Why is the value empty or very large on some records? Some buyers leave the value out. Frameworks and dynamic markets often state the maximum spend across all suppliers over several years, which can run into hundreds of millions.

Does it cover Scotland, Wales and Northern Ireland? It covers every notice published on Find a Tender and Contracts Finder, which includes many Scottish, Welsh and Northern Irish buyers. Public Contracts Scotland, Sell2Wales and eTendersNI also carry notices that are not on these two services.

Something looks wrong. What should I do? Open an issue on the Actor's Issues tab with the run link and the notice URL.

Disclaimer

This Actor is independent and is not affiliated with, endorsed by or sponsored by the Cabinet Office, Crown Commercial Service, Find a Tender, Contracts Finder, Companies House or any buyer or supplier named in the data. Check the original notice before acting on it.