UK Tenders Scraper
Pricing
from $0.50 / 1,000 tender notices
UK Tenders Scraper
Find a Tender and Contracts Finder, the UK government's two procurement services, in one table of notices with buyer, deadline, value and CPV codes. Their open data APIs do not filter by CPV code or keyword, so the actor reads the newest notices, filters them itself and can return only new ones.
Pricing
from $0.50 / 1,000 tender notices
Rating
0.0
(0)
Developer
deriverge s.r.o.
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
UK Tenders Scraper reads the open data of Find a Tender and Contracts Finder, the UK government's two services for procurement notices, and returns one row per procurement: title, buyer, deadline, value in pounds, CPV codes, stage and a document link. Enter CPV codes for what you sell and click Start; the newest notices come first. Find a Tender notices often list no document, so url is empty on most of their rows. It costs $1.00 per 1,000 tender notices on the Free plan ($0.50 on Business), and the $5 of monthly credit in Apify's Free plan covers about 5,000 tender notices.
What data does it return?
| Field | Description |
|---|---|
source, sourceName | uk-fts for Find a Tender or uk-cf for Contracts Finder, and the full name of the service. |
noticeId | OCDS process ID, which starts with ocds-h6vhtk- on Find a Tender and ocds-b5fd17- on Contracts Finder. A tender, its updates and its award share one ID. |
title, description | Text as the buyer wrote it. HTML in descriptions becomes plain text with line breaks. |
buyer | Contracting authority, for example Ashford Borough Council. |
publishedAt | When this version of the notice was published, as an ISO 8601 UTC timestamp. |
deadline, daysToDeadline | Deadline for tenders and the whole days left at run time. Empty on planning notices, awards and updates that give no deadline. |
status | Tender status from the notice data: active, planning, planned, complete, cancelled or withdrawn, and empty when the notice gives none. |
valueAmount, valueCurrency | Value of the tender as the buyer published it, in GBP. Empty when no value was given. |
cpv | CPV codes of the tender, its items and its lots, such as 45000000 for construction work. |
noticeType | Stage of the notice: tender, tenderUpdate, tenderAmendment, planning, award, awardUpdate, tenderCancellation and a few more. |
procedureType | Procurement method: open, selective, limited, direct, or the service's own wording such as Competitive flexible procedure. |
contractNature | What is bought: goods, services or works. |
url, documentsUrl | Both hold the first document link of the notice: the notice page on Contracts Finder, and on Find a Tender often the buyer's e-sourcing portal. |
key | uk-fts: or uk-cf: followed by the process ID. The new-only mode compares runs by it. |
country, language, languagesAvailable | Always GB, en and an empty list, so the rows have the same shape as rows from TED. |
How to scrape UK tenders
- Keep both services in Sources (
uk-ftsanduk-cf), or remove one of them to read a single service. - Enter CPV codes. A code ending in zeros works as a prefix:
72000000keeps every notice with a code that starts with 72. While this filter is on, notices without any CPV code are left out. - Set Published from and Published to to a range of a few days, or leave both empty for the last seven days. A Deadline on or after date without publication dates starts from the newest notice instead.
- Add Keywords (looked up in the title and description), a Minimum contract value in pounds or a Deadline on or after date, or turn on Only notices you can still bid for.
- Click Start and open the Output tab to view the rows or export them as CSV, Excel or JSON. From the API, send an input like this:
{"sources": ["uk-fts", "uk-cf"],"cpv": ["72000000", "48000000"],"publishedFrom": "2026-09-28","publishedTo": "2026-09-29","onlyOpen": true,"maxItems": 200}
Example output
A Find a Tender notice as returned on 29 September 2026, with nothing left out.
{"key": "uk-fts:ocds-h6vhtk-077bee","source": "uk-fts","sourceName": "Find a Tender, the UK public procurement notice service","country": "GB","noticeId": "ocds-h6vhtk-077bee","title": "Construction of carpark at Conningbrook Country Park","description": "ABC is looking for a contractor to build a new carpark over an existing temporary carpark in line with the specification. Work to only include hardscaping the carparking and associated drainage works. No landscaping or planting is needed in the works.\nFor more information about this opportunity, please visit the eSourcing portal at:\nhttps://www.kentbusinessportal.org.uk/tenders/UK-UK-Ashford:-Construction-work./P6742XH48T\nTo respond to this opportunity, please click here:\nhttps://www.kentbusinessportal.org.uk/respond/P6742XH48T","buyer": "Ashford Borough Council","publishedAt": "2026-09-28T19:36:23.000Z","deadline": "2026-10-23T09:00:00.000Z","daysToDeadline": 24,"status": "active","valueAmount": 400000,"valueCurrency": "GBP","cpv": ["45000000"],"noticeType": "tender","procedureType": "open","contractNature": "works","language": "en","languagesAvailable": [],"url": "https://www.kentbusinessportal.org.uk/","documentsUrl": "https://www.kentbusinessportal.org.uk/"}
How much does it cost to scrape UK tenders?
| Free plan | Starter | Scale | Business | |
|---|---|---|---|---|
| 1,000 tender notices | $1.00 | $0.80 | $0.65 | $0.50 |
You pay only for the events in the table. There is no start fee, and compute time and proxies are included.
If a scheduled run returns 30 new notices a day, a month of runs costs $0.90 on the Free plan and $0.45 on Business. Notices that your filters remove are read, but you do not pay for them.
Limits
- The open data APIs of both services cannot filter by CPV code, keyword or value, so the actor reads the newest notices and filters them itself. With any filter on, it reads up to 20 times Maximum notices from each service, never more than 4,000 (40 pages of 100). Without filters it reads Maximum notices from each.
- Both services answer HTTP 429 (too many requests) when they are read fast. The actor waits 1.5 seconds between pages, and after a 429 it waits as long as the service asks, or 30 seconds, then tries the page again up to three times. A service that still refuses ends early with the notices read so far, and the run's status message names it; the
SUMMARYrecord shows for each service how many notices were read. A range of a few days, or a scheduled daily run, needs far fewer pages. - On Find a Tender the dates select notices by the time they were last updated; on Contracts Finder, by publication time.
- Rows come service by service in the order of Sources, Find a Tender first by default, and Maximum notices counts both together, so a low limit can fill up with Find a Tender rows alone.
- Contracts Finder is read at the tender stage only, so its award notices are not included.
- When a run reads several versions of one procurement, for example a tender and a later update, it keeps the newest.
- With Only notices you can still bid for on, only
tender,tenderUpdateandtenderAmendmentnotices whose deadline has not passed are kept. They are sorted out after the services have returned the notices, so a run can end with fewer rows than Maximum notices. urlis empty on most Find a Tender rows (461 of 653 in one September 2026 run), and some notices carry a placeholder value such as1.
Find a Tender or Contracts Finder?
Find a Tender is where UK public buyers publish their procurement notices, above and below the procurement thresholds. Many of its notices name a below-threshold procedure, and in one September 2026 run, 47 of its 222 tender notices with a value were under £100,000. Contracts Finder lists contract opportunities of any size too, from small contracts to procedures above the thresholds, and the actor asks it for notices at the tender stage. Other portals, such as Public Contracts Scotland, are not read. The source field tells the two services apart.
FAQ
Is it legal to scrape Find a Tender and Contracts Finder?
Both are UK government services, and they publish their notices as open data under the Open Government Licence v3.0, which allows reuse, including commercial reuse, when the source is acknowledged. The actor reads their public APIs without an account. You are responsible for how you use the data, including any contact details a buyer put into a description.
Do I need an API key?
No. Both APIs are open, and the actor sends no credentials.
Why does a notice come back in a new-only run?
The new-only mode returns a notice again when its deadline or status changed since the last run, for example when the buyer extends the deadline or the tender moves from active to complete.
Can I get EU tenders too?
EU Tenders Scraper reads TED, the procurement journal of the European Union. Public Tenders Scraper combines TED with both UK services in one table with the same fields.
Related scrapers
Support
This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the Issues tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the API tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.