UK Public Tenders Scraper
Pricing
$8.00 / 1,000 results
UK Public Tenders Scraper
UK government tenders and awards from Find a Tender and Contracts Finder, one row shape, newest first. Filter by keyword, CPV, stage, date. Procurement Act notices included. No contact data. $8 per 1,000 notices.
Pricing
$8.00 / 1,000 results
Rating
0.0
(0)
Developer
Jesse Hawkins
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Categories
Share
UK public-sector tenders, contract awards and pipeline notices from both official government portals, in one clean feed:
- Find a Tender, the UK's service for higher-value public procurement, including every Procurement Act 2023 notice;
- Contracts Finder, lower-value contracts, mainly in England.
Give keywords, CPV codes, a stage or a date range, and get one row per notice, newest first: title, description, buyer, CPV codes, value, deadlines, contract dates, award date, suppliers and the link to the official notice. $8.00 per 1,000 notices. No API key, no browser, no proxy.
Why another UK tenders Actor
Three things the two APIs do, found while building this one and handled here:
- Find a Tender's own
stages=tenderfilter misses Procurement Act notices. On 2026-10-01 it returned 7 of the day's 66 tender notices: only those under the 2015 regulations. This Actor reads every notice and takes the stage from the notice itself, so the other 59 are in your results. - Contracts Finder's paging stops early on longer date ranges. For 9 to 10 September 2026 its "next page" link ended after 100 notices of 237. This Actor pages by date instead, so it reads them all.
- Both portals throttle. They answer
429 Too Many Requestswith a two-minute wait. This Actor paces its requests and waits as asked, so a long run slows down instead of failing.
Input
{"keywords": "software, cloud hosting, cyber","cpvCodes": ["72"],"stage": "tender","portal": "both","dateFrom": "2026-09-01","maxItems": 500}
keywords: comma-separated phrases. A notice matches if any phrase is in its title, description, lot titles or descriptions, or buyer name. Case-insensitive; a phrase matches at the start of a word, socyberfindscybersecurity. A short all-capitals phrase (IT,CCTV) matches capitals only, soITdoes not match every "it".cpvCodes: CPV codes or prefixes.72or72000000selects all IT services,45all construction. With keywords, a notice must match both.stage:all(default),planning,tender(open opportunities and their changes),award, orcontract(contract changes and terminations).portal:both(default),fts(Find a Tender) orcf(Contracts Finder).dateFrom,dateTo:YYYY-MM-DDorYYYY-MM-DDTHH:MM:SS, UK time unless it ends inZor an offset; alsotodayandyesterday. Find a Tender filters by when a notice was last updated, Contracts Finder by when it was published. Default: the last 30 days.publishedWithinDayssets the window as a number of days instead.maxItems: stop after this many notices, newest first. Default 100;0returns every match in the window.dedupeByOcid: on by default: one row per procurement (its newest matching notice). Off: a tender and its award are both returned.includeRawOcds: add the full OCDS release asrawOcds, with personal data removed (see below).
The field names are the ones other UK tender Actors on the Store use
(keywords, cpvCodes, dateFrom, dateTo, stage, portal,
maxItems, dedupeByOcid, includeRawOcds), and keyword, stages,
updatedFrom, updatedTo, publishedFrom, publishedTo,
publishedWithinDays and maxResults are read too, so an existing
input usually runs here unchanged.
Output
One row per notice. A real row from a run on 2026-10-05 (
{"keywords": "soapbox", "dateFrom": "2026-10-01", "dateTo": "2026-10-01"}{"ocid": "ocds-h6vhtk-077f1b","noticeId": "093054-2026","portal": "fts","stage": "tender","releaseTags": ["tender"],"title": "Provision and Delivery of an Annual Town Centre Soapbox Racing Event 2027-2029","description": "Kettering Town Council invites tenders from suitably capable event operators to plan, promote, manage and deliver an annual public soapbox racing event in Kette ...","status": "active","buyerName": "Kettering Town Council","buyerId": "GB-PPON-PCVT-2884-LDPW","buyerStreetAddress": "10 Headlands","buyerLocality": "Kettering","buyerRegion": "UKF25","buyerPostalCode": "NN15 7HP","buyerCountry": "United Kingdom","cpvCodes": ["79952000"],"mainCpvCode": "79952000","mainCpvDescription": "Event services","valueAmount": 160000.0,"valueCurrency": "GBP","valueAmountGross": 192000.0,"valueMinAmount": null,"procurementMethod": "open","procurementMethodDetails": "Below threshold - open competition","mainProcurementCategory": "services","aboveThreshold": false,"suitableForSme": null,"suitableForVcse": null,"deliveryRegions": ["UKC", "UKD", "UKE", "UKF", "UKG", "UKH", "UKI", "UKJ", "UKK"],"publishedDate": "2026-10-01T18:10:45+01:00","deadline": "2026-10-23T12:00:00+01:00","expressionOfInterestDeadline": null,"enquiryDeadline": "2026-10-09T12:00:00+01:00","contractStartDate": "2026-12-14T00:00:00+00:00","contractEndDate": "2029-09-30T23:59:59+01:00","awardDate": null,"awardValueAmount": null,"awardValueCurrency": null,"awardCount": 0,"supplierNames": [],"contractValueAmount": null,"contractValueCurrency": null,"contractSignedDate": null,"noticeUrl": "https://www.find-tender.service.gov.uk/Notice/093054-2026","sourceUrl": "https://www.find-tender.service.gov.uk/api/1.0/ocdsReleasePackages/093054-2026","releaseId": "093054-2026"}
- Dates are UK time with their offset, as the portals publish them.
valueAmountis the notice's own value, or the sum of its lots' values when it has none of its own.valueMinAmountis Contracts Finder's lower bound when it gives a range. A missing value isnull, never estimated.deadlineis the tender submission deadline. Many Procurement Act notices on Find a Tender setexpressionOfInterestDeadlineinstead (the deadline to ask to take part), so check both.awardValueAmountadds up the award values when they are all in one currency;supplierNameslists every supplier awarded.contractValueAmountandcontractSignedDatecome from signed contracts. Find a Tender's contract details notices put the value there, not on the award.contractStartDateandcontractEndDateare the notice's own contract period, else the earliest start and latest end over its awards and lots.noticeUrlis the official notice page;sourceUrlis the OCDS record it was read from.
No personal data
Notices carry the buyer's contact person: name, e-mail and phone. This
Actor never returns them. The OCDS contactPoint is dropped, and in
every text it copies, e-mail addresses become [email removed] and
phone numbers [phone removed]. rawOcds has the same removal, and
also drops suppliers' street addresses and postcodes, since a sole
trader's may be a home. Contact the buyer through the official notice
page in noticeUrl.
Price
Pay per event: $8.00 per 1,000 notices returned, nothing per run. Notices filtered out by your keywords, CPV codes or stage are not billed.
| Run | Notices | Cost |
|---|---|---|
{"keywords": "software", "maxItems": 20} | 20 | $0.16 |
| Default: newest 100 of the last 30 days | 100 | $0.80 |
| Every tender-stage notice of one weekday, both portals (2026-10-01) | 119 | $0.95 |
Set Maximum cost per run to cap a run; it stops there and keeps what it returned.
Speed and limits
- Find a Tender publishes about 450 notices on a weekday and Contracts Finder about 200 (2026-10-01). A keyword search reads every notice in the window, 100 per request, and keeps the matches. Measured on 2026-10-05: 1.5 to 6.5 seconds per 100 notices read, so about 15 seconds for 4 days, 40 seconds to 3 minutes for a week, 3 to 15 minutes for 30 days. A year can pass the default one-hour run timeout: raise it, or split the year.
- A capped run stops as soon as it has
maxItemsnotices. - If a portal is down or keeps refusing, the run returns what the other portal gave and says which one failed in its status message. It fails only if neither answered.
- Coverage is what the two portals publish. Scotland (Public Contracts Scotland), Wales (Sell2Wales) and Northern Ireland have portals of their own; most of their above-threshold notices also appear on Find a Tender.
What it will not do
- No contact names, e-mail addresses or phone numbers, ever.
- No tender documents: they sit on each buyer's own e-tendering system,
often behind a supplier login. Follow
noticeUrl. - No scraping of buyers' portals. The two official APIs only.
Not affiliated with the Cabinet Office or Crown Commercial Service. The data is published under the Open Government Licence v3.0; credit "Find a Tender" and "Contracts Finder" where you publish it.
Changelog
- 0.1 (2026-10-05): first release.