UK Public Tenders Feed: Find a Tender + Contracts Finder avatar

UK Public Tenders Feed: Find a Tender + Contracts Finder

Pricing

from $3.00 / 1,000 tender results

Go to Apify Store
UK Public Tenders Feed: Find a Tender + Contracts Finder

UK Public Tenders Feed: Find a Tender + Contracts Finder

UK public-sector tenders, pipeline notices and contract awards from the official Find a Tender and Contracts Finder OCDS APIs, flattened and de-duplicated. Filter by keyword, CPV prefix, GBP value, postcode, NUTS/ITL region, deadline and SME flag. No API key.

Pricing

from $3.00 / 1,000 tender results

Rating

0.0

(0)

Developer

Open Data Tools

Open Data Tools

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Share

UK Public Tenders Feed

This tool finds UK public sector contract opportunities and contract awards and gives them to you as one filterable list. It reads the two official UK notice sites, Find a Tender (higher-value notices, all UK) and Contracts Finder (lower-value notices, England), and removes duplicates between them. You get upcoming (pipeline) notices, open tenders and awards, each with a link to the official notice, and no API key or login is needed.

Who it's for

  • Suppliers and small businesses looking for public contracts they can bid for.
  • Bid writers and consultancies that run a daily tender search for their clients.
  • Sales teams that want early notice of planned purchases through pipeline notices.
  • Analysts who track who won which contracts, the award values and the suppliers.

Why use it

  • Two official sources in one list: notices from Find a Tender and Contracts Finder are combined and de-duplicated.
  • Every stage: planned (pipeline) notices, open tenders and contract awards, or just the stages you choose.
  • Only open opportunities if you want: one setting keeps only tenders whose deadline is still in the future.
  • Filter the way you search: by keywords, contract value in GBP, buyer or delivery postcode, region, and CPV codes (Common Procurement Vocabulary, the standard codes that describe what is being bought, such as 72 for IT services).
  • Small business friendly: show only notices the buyer marked as suitable for SMEs (small and medium-sized enterprises).
  • Official data, no account needed: it uses the sites' public OCDS feeds (Open Contracting Data Standard, a common format for publishing contract data). No API key or login is needed.
  • Built for daily alerts: runs are short and can be scheduled daily, and notices removed by filters or de-duplication are not charged.

How to use it

  1. Open the Actor in Apify Console and enter Keywords that describe the work you do, such as software, IT or digital. Add Exclude keywords to drop notices you never want.
  2. Choose the Notice stages you want, and tick Only tenders still open if you only want opportunities you can still bid for.
  3. Optionally narrow the results with Minimum value (GBP), Postcode prefixes (for example M or LS1), NUTS/ITL region codes (standard UK region codes, for example UKD or UKI), CPV code prefixes or SME-suitable only. Days back sets how far back to look (7 days by default, up to 90).
  4. Click Start. Open the Output tab to see the notices, newest first, each with a noticeUrl link to the official notice. Export them as JSON, CSV or Excel.
  5. To get a daily tender alert, create a schedule under Schedules that runs once a day. Notices are de-duplicated within a run but not remembered between runs, so a short Days back (such as 1) keeps repeats down.
  6. To send results somewhere, add an integration such as Google Sheets, Slack, Zapier or Make, or a webhook that fires when the run finishes.

Pricing

You pay for each notice saved to your results: $0.004 on the Apify Free plan, $0.0035 on Bronze and $0.003 on Silver and above. Each run also has a tiny Apify start fee of $0.00005. Notices removed by your filters or by de-duplication are not charged.

Example: a daily run that returns 50 notices costs about $0.20 on the Free plan, or $0.15 on Silver. Over 30 days that is about $6.00 on Free, or $4.50 on Silver.

API and reference

This section is for developers and AI agents. It lists every input and output field, a sample record and code examples.

Summary

Queries the official OCDS APIs of Find a Tender (higher-value notices, all UK) and Contracts Finder (lower-value notices, England), flattens each release into one record, applies your filters, and de-duplicates across both sources. Output covers pipeline (planning) notices, open tenders and contract awards. No API key or login is needed. Runs are short and can be scheduled daily as a tender alert feed.

Input

All fields are optional.

FieldTypeDefaultDescription
keywordsstring[][]Whole-word match in title, description or cpvDescription. Case-insensitive, except all-caps terms of up to 5 characters (IT, NHS, HR), which match case-sensitively.
keywordModeany, allanyWhether any or all keywords must match.
excludeKeywordsstring[][]Drop notices whose title or description contains any of these (same matching rules).
daysBackinteger71 to 90. Window queried: by update date on Find a Tender, by publication date on Contracts Finder.
sourcesstring[]bothfind_a_tender, contracts_finder.
stagesstring[]allpipeline, tender, award, other.
openOnlybooleanfalseKeep only tender-stage notices with a deadline in the future.
cpvPrefixesstring[][]CPV code prefix match, e.g. 72 (IT services), 4521 (building works).
minValue / maxValueintegernoneGBP. Uses valueGBP, falling back to awardValueGBP. Notices with no value are excluded when either is set.
postcodePrefixesstring[][]Prefix match on buyer or delivery postcodes, e.g. M, LS1, SW1A.
nutsRegionsstring[][]Prefix match on NUTS/ITL codes, e.g. UKD, UKI.
smeSuitableOnlybooleanfalseOnly notices the buyer marked as suitable for SMEs.
maxItemsinteger500Max records returned.
failIfEmptybooleanfalseFail the run if nothing is returned. Useful for health checks.

De-duplication key: stage + buyer name + title, within a run. Results are sorted by publishedAt, newest first.

Output

FieldTypeDescription
sourcestringFind a Tender or Contracts Finder
noticeIdstringNotice ID on the source site
ocidstringOCDS contracting process ID
noticeUrlstringLink to the official notice
stagestringpipeline, tender, award or other
tagsstring[]Raw OCDS release tags
publishedAtstringRelease date (ISO 8601)
title, descriptionstringNotice title and description
statusstring or nullOCDS tender status
categorystring or nullMain procurement category (goods, services, works)
procurementMethodstring or nullProcurement method details
cpvCodesstring[]CPV codes from the tender and its items
cpvDescriptionstring or nullDescription of the main CPV code
valueGBP, minValueGBPnumber or nullTender value (sum of lots if no total), minimum value
awardValueGBPnumber or nullSum of award values
currencystring or nullCurrency of the values
deadlinestring or nullTender period end date
contractStart, contractEndstring or nullContract period
buyerName, buyerLocality, buyerPostcodestring or nullBuyer organisation and address
regions, postcodesstring[]Buyer and delivery regions/postcodes
suitableForSME, suitableForVCSEboolean or nullBuyer's suitability flags
suppliersstring[]Supplier names (award notices)
licencestringOGL v3.0 attribution

Buyer contact emails and phone numbers are not included. A SUMMARY record in the run's key-value store has scanned, delivered, from and sources.

Sample record (from a test run; description shortened):

{
"source": "Find a Tender",
"noticeId": "099003-2026",
"ocid": "ocds-h6vhtk-06ea83",
"noticeUrl": "https://www.find-tender.service.gov.uk/Notice/099003-2026",
"stage": "award",
"tags": [
"award",
"contract"
],
"publishedAt": "2026-10-20T13:19:01+01:00",
"title": "NHP Health Care Planning Tool SaaS Licence",
"description": "NHS England (NHSE) has entered into a 12-month Software-as-a-Service (SaaS) contract for an enterprise Healthcare Planning Tool to support Wave 1 schemes ...",
"status": "complete",
"category": null,
"procurementMethod": "Direct award",
"cpvCodes": [],
"cpvDescription": null,
"valueGBP": null,
"minValueGBP": null,
"awardValueGBP": null,
"currency": null,
"deadline": null,
"contractStart": null,
"contractEnd": null,
"buyerName": "NHS England",
"buyerLocality": "London",
"buyerPostcode": "SE1 8UG",
"regions": [
"UKI45"
],
"postcodes": [
"SE1 8UG"
],
"suitableForSME": null,
"suitableForVCSE": null,
"suppliers": [
"dRofus AS"
],
"licence": "Contains public sector information licensed under the Open Government Licence v3.0."
}

Pricing details

Pay per event, charged per record written to the dataset (apify-default-dataset-item): $0.004 on the Free plan, $0.0035 on Bronze, $0.003 on Silver and above. Plus the Apify Actor start event ($0.00005). Notices removed by filters or de-duplication are not charged.

Usage

Apify API (synchronous run, returns dataset items):

curl -X POST "https://api.apify.com/v2/acts/opendata-tools~uk-tenders-feed/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": ["software", "IT", "digital"],
"stages": ["tender"],
"openOnly": true,
"minValue": 25000,
"daysBack": 7,
"maxItems": 200
}'

Python (pip install apify-client):

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("opendata-tools/uk-tenders-feed").call(run_input={
"cpvPrefixes": ["72"],
"nutsRegions": ["UKD"],
"stages": ["tender", "pipeline"],
"daysBack": 14,
"maxItems": 500,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["publishedAt"], item["buyerName"], item["title"], item["noticeUrl"])

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('opendata-tools/uk-tenders-feed').call({
keywords: ['cyber security'],
stages: ['award'],
daysBack: 30,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) console.log(item.buyerName, item.awardValueGBP, item.suppliers);

Data source and licence

Data comes from the public OCDS endpoints of Find a Tender and Contracts Finder and contains public sector information licensed under the Open Government Licence v3.0. Not affiliated with or endorsed by the UK Government. Values and dates are as published; some notices omit them. Check noticeUrl before bidding.

FAQ

Do I need an API key or an account on the tender sites?

No. The Actor uses the public endpoints of Find a Tender and Contracts Finder, so no API key or login is needed.

Does it include buyer contact details?

No. Buyer contact emails and phone numbers are not included. You get the buyer's name, locality and postcode, and a link to the official notice.

Why are some values or deadlines empty?

Values and dates are passed on as published, and some notices omit them. Note that when you set a minimum or maximum value, notices with no value are left out. Always check noticeUrl before bidding.

Is this an official government service?

No. It is not affiliated with or endorsed by the UK Government. The data is public sector information published under the Open Government Licence v3.0.

Issues and feature requests: use the Issues tab.