UK Tenders API: Contracts Finder & Find a Tender
Pricing
from $1.75 / 1,000 tender notices
UK Tenders API: Contracts Finder & Find a Tender
UK public sector tenders, planned procurements and contract awards from Contracts Finder and Find a Tender, the official UK government procurement services, in one feed. Filter by keyword, CPV code, value and deadline. Optional tender alerts: only new notices since the last run.
Pricing
from $1.75 / 1,000 tender notices
Rating
0.0
(0)
Developer
Tabulary
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
What does UK Tenders API do?
Every new UK public sector tender, planned procurement and contract award from the two official UK procurement services, Contracts Finder and Find a Tender, in one clean feed. The Actor reads both services' open APIs (published by the UK Cabinet Office in the Open Contracting Data Standard), merges them newest first, applies your filters and returns one tidy record per notice. Turn on only new since the last run and schedule it daily, and you have a tender alert service that costs cents instead of a monthly subscription. Bid teams, procurement consultants, sales teams and AI agents use it to find UK government contracts early without checking two websites every day.
What you get
- Title, description, buyer (organisation and town) and a link to the official notice.
- Stage (open tender, planned procurement or award), notice type (for example
UK4tender notice) and procedure (open, selective, direct award). - Estimated value in GBP excluding VAT, plus the VAT-inclusive figure when the source gives one.
- Tender deadline, days left until the deadline, the deadline to request to participate (for two-stage procedures), and contract start and end dates.
- CPV codes with labels, delivery regions, and whether the buyer says it suits SMEs and VCSEs.
- For awards: the winning suppliers and the awarded value.
- Only-new delivery for scheduled runs: you never pay twice for the same notice.
- Export as JSON, CSV or Excel, send to Google Sheets, Slack or a webhook, or call it as a tool from AI agents through the Apify MCP server.
How much does it cost?
You pay per tender notice saved, with no monthly fee: $2.50 per 1,000 tender notices on Apify's free plan, and 10–40% less on paid Apify plans. Each run also costs $0.001 to start. Apify's free plan includes $5 of credit every month, enough for about 2,000 tender notices. Prices as of October 2026; the price shown on this page is the one that applies.
| Use | Tender notices | Cost on the free plan |
|---|---|---|
| One search | 100 | about $0.25 |
| Daily alert, about 30 new notices a day | about 900 a month | about $2.25 a month |
| 90 days of awards in your sector | 2,000 | about $5.00 |
Set Maximum cost per run to cap any run; the Actor stops cleanly at the cap and keeps everything it saved.
Ready-made searches
Paste one of these into the JSON input tab, or set the same fields in the form.
Open IT and software tenders worth £100,000 or more, last 14 days · open this example
{ "cpvPrefixes": ["72", "48"], "minValue": 100000, "publishedWithinDays": 14, "maxItems": 200 }
Daily construction tender alert (schedule it every morning) · open this example
{ "cpvPrefixes": ["45"], "publishedWithinDays": 2, "onlyNewSinceLastRun": true, "maxItems": 500 }
Who won contracts in your market (competitor and pricing research) · open this example
{ "stages": ["award"], "keywords": "cyber security, penetration testing", "publishedWithinDays": 90, "maxItems": 1000 }
Pipeline: planned procurements and market engagement before the tender opens · open this example
{ "stages": ["planning"], "keywords": "digital, data", "publishedWithinDays": 30, "maxItems": 300 }
Tender alerts: only new since the last run
- Set your filters and turn on Only new since the last run (tender alerts).
- Save it as a task and add an Apify Schedule (for example every weekday at 07:00).
- Connect the output: Apify's built-in Slack and email notifications, a webhook, or Make, Zapier and n8n to push each new tender into Google Sheets, a CRM or a Teams channel.
Each run returns only notices that earlier runs with the same filters have not delivered, newest first, so you pay only for what is new. An updated notice (for example a changed deadline) is delivered again. The first run returns everything that matches. If a run stops at your maximum results or spending limit, the rest is delivered next time. The memory is kept per set of filters, so separate tasks never interfere.
Input
| Field | Type | Default | Description |
|---|---|---|---|
keywords | string | "" (all) | Comma-separated words or phrases. A notice matches when its title or description contains any of them. |
stages | array | ["tender"] | tender (open opportunities), planning (pipeline and market engagement), award. |
sources | array | both | contracts-finder, find-a-tender. |
publishedWithinDays | integer | 3 | Notices published or updated in the last 1 to 90 days. |
onlyOpen | boolean | true | Drop tenders whose deadline has passed or that are cancelled, withdrawn or complete. |
onlyNewSinceLastRun | boolean | false | Return only notices that earlier runs with the same filters have not delivered (see Tender alerts). |
cpvPrefixes | array | [] | Keep notices with a CPV code starting with these digits, e.g. 72 for IT services. |
minValue | integer | 0 | Keep notices with a stated value of at least this many GBP. |
maxItems | integer | 10 | Stop after this many notices. |
Output
One dataset item per notice. A real item from a test run on 13 October 2026 (daysToDeadline
added for illustration):
{"id": "096730-2026","ocid": "ocds-h6vhtk-077bad","source": "find-a-tender","stage": "tender","noticeType": "UK4","title": "Fire Risk Assessments - Domestic","description": "The Council are looking for a suppler to conduct Fire Risk Assessments for our Domestic housing stock.","buyerName": "West Lancashire Borough Council","buyerLocality": "Ormskirk","buyerCountry": "United Kingdom","status": "active","procurementMethod": "open","procurementMethodDetails": "Open procedure","mainCategory": "services","cpvCodes": ["71000000"],"cpvLabels": ["Architectural, construction, engineering and inspection services"],"valueAmount": 340000,"valueAmountGross": 408000,"minValueAmount": null,"valueCurrency": "GBP","awardedValue": null,"awardedValueCurrency": null,"awardedSuppliers": [],"publishedAt": "2026-10-13T16:57:10+01:00","tenderDeadline": "2026-11-13T16:00:00+00:00","participationDeadline": null,"daysToDeadline": 31,"contractStart": "2027-01-04T00:00:00+00:00","contractEnd": "2030-01-03T23:59:59+00:00","deliveryRegions": ["UKD47"],"suitableForSme": true,"suitableForVcse": null,"url": "https://www.find-tender.service.gov.uk/Notice/096730-2026"}
Fields the source leaves empty are null (or an empty list). Text is copied as published, typos
included. Dates are ISO 8601 with the source's time zone. daysToDeadline counts whole days from
the moment of the run.
Use it from AI agents
Add the Actor to Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server
(https://mcp.apify.com?tools=tabulary/uk-public-tenders). Ask in plain language, for example:
"Find open UK tenders for cyber security worth over £50k that close in the next three weeks."
The agent fills in the input and gets structured records back.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/tabulary~uk-public-tenders/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords": "software", "publishedWithinDays": 7, "maxItems": 50}'
The same works with the Apify Python and JavaScript clients. See the API tab for details.
Data source and limits
- Sources: the Contracts Finder API (terms) and the Find a Tender API (terms). Contains public sector information licensed under the Open Government Licence v3.0.
- Contracts Finder mostly carries lower-value contracts from public bodies in England. Find a Tender carries higher-value notices from across the UK, including every notice under the Procurement Act 2023 and above-threshold notices from Scotland, Wales and Northern Ireland.
- Find a Tender's own stage filter misses Procurement Act notices, so the Actor reads every Find a Tender release in your period and keeps the stages you chose. Stages come from each notice's OCDS release tags.
- Keyword, CPV and value filters run inside the Actor on the fields above. Long periods with narrow filters scan more notices and take longer.
- When a procurement has several tender or planning notices in your period (for example an update), you get the newest one. Award notices are returned one per notice, because each lot can have its own contract.
- Regions are ITL/NUTS codes on Find a Tender (for example
UKD47) and region names on Contracts Finder. - The Actor sends at most about one request per second to each site, identifies itself, and backs off when asked. If Contracts Finder reports its rate limit, the Actor stops reading that source for the run, keeps what it saved and says so in the run status.
- No personal contact data: the contact-person fields (names, emails, phone numbers) are left
out, and email addresses or phone numbers that buyers type into a title or description are
replaced with
[email removed]or[phone removed]. Otherwise text is copied as published. - Not affiliated with or endorsed by the UK Government or the Cabinet Office.
Other Tabulary tools
Clean data from official and public sources, priced per result:
- Airport METAR & TAF Weather
- EU Tenders API: TED Public Procurement Notices
- Company Job Postings: Greenhouse, Lever, Ashby & Workable
- Remote Jobs API: RemoteOK & Jobicy Postings
- SAM.gov Federal Contract Opportunities
- UK Gender Pay Gap Reports API: Employer Filings
- UK House Price Index API: Average Prices by Area
- UK Modern Slavery Statement Registry API
FAQ
Is this data official? Yes. It comes from the services' public APIs. Only field names and formatting change, contact-person fields are dropped, and contact details in free text are masked.
How fresh is it? Every run fetches live data. New notices usually appear within minutes of publication.
How do I get new tenders every morning? Turn on only-new delivery, save the input as a task
and schedule it (see Tender alerts). Use publishedWithinDays: 2 so nothing published late in
the day is missed.
Does it cover Scotland, Wales and Northern Ireland? Above-threshold notices from all four nations are on Find a Tender, so yes for those. Lower-value notices published only on Public Contracts Scotland, Sell2Wales or eTendersNI are not included.
Why is the value or deadline empty? The buyer did not state it in the notice. Two-stage procedures often give a participation deadline instead of a tender deadline.
Can I get buyer contact details? No. The Actor deliberately leaves out personal contact data. Each record links to the official notice, which shows how to respond.
Something broke? Open an issue on the Issues tab. The Actor is tested daily.
Changelog
- 2026-10-21: only-new delivery for scheduled tender alerts,
daysToDeadline, ready-made searches. - 2026-10-13: first version: both services merged, keyword, CPV, value and open-deadline filters.
About Tabulary
This tool is part of Tabulary: clean tables from official public sources. Every Tabulary tool uses the source's official API or open data where one exists, collects no personal data, and is tested on Apify every day. Questions or ideas? Open an issue on the Issues tab.