UK Tenders — Find a Tender + Contracts Finder OCDS avatar

UK Tenders — Find a Tender + Contracts Finder OCDS

Pricing

from $3.00 / 1,000 tender notice cards

Go to Apify Store
UK Tenders — Find a Tender + Contracts Finder OCDS

UK Tenders — Find a Tender + Contracts Finder OCDS

UK public tenders from the official Find a Tender + Contracts Finder OCDS APIs (no HTML scraping, no API key). Filter by keywords, buyer, CPV, dates. One Markdown tender card + JSON per notice. 256 MB. Failed rows free. No email/phone harvesting.

Pricing

from $3.00 / 1,000 tender notice cards

Rating

0.0

(0)

Developer

新世紀書僮

新世紀書僮

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

Get UK public-sector tender and contract notices from the two official government OCDS APIs, Find a Tender (FTS) and Contracts Finder (CF). Each notice becomes a clean JSON row and a Markdown tender card you can read, paste into a CRM, or feed to an LLM / RAG pipeline.

  • Official APIs only. Open Contracting Data Standard (OCDS) JSON endpoints published by the Cabinet Office. No HTML scraping of the find-tender or Contracts Finder websites.
  • No API key, no login. Both feeds are open data under the Open Government Licence v3.0.
  • Light: 256 MB default memory, newest-first paging, stops when it has enough matches.
  • Failures are free. Not-found IDs, empty searches, rate limits, timeouts and server errors are logged as free rows.
  • No contact harvesting. Buyer contact emails and phone numbers are never copied. Emails and phone numbers inside free text are replaced with [contact removed].

What you get

Dataset: one row per notice:

FieldExample
ocid, noticeIdocds-h6vhtk-06dab4, 093588-2026
sourcefind_a_tender | contracts_finder
title, buyer, buyerId"(CIH) Training and Qualification Provision", "VICO HOMES LIMITED"
value, valueGross, currency160000, 192000, GBP
publishedDate, deadline, contractStart, contractEndISO 8601
stage, status, procedure, procedureDetails, mainCategorytender, active, open, "Below threshold - open competition", services
cpvCodes[], regions[], lots, suitableForSme, suitableForVcse[{"id":"80500000","description":"Training services"}]
awards[]status, date, value, supplier names
descriptionredacted excerpt (default 800 chars)
documents[]title, type, url, format, datePublished
noticeUrl, apiUrlofficial notice page link + the OCDS API endpoint used
markdownthe tender card
result, errorClass, hintok / failed / empty

Key-value store

  • REPORT.md: summary table plus one Markdown card per notice, followed by a "Not charged" section
  • SUMMARY / OUTPUT: counts, filters, scanned releases, requests, charged events, duration, peak memory

Example card

### (CIH) Training and Qualification Provision
- **Buyer:** VICO HOMES LIMITED
- **Source:** Find a Tender · notice `093588-2026` · [view notice](https://www.find-tender.service.gov.uk/Notice/093588-2026)
- **OCID:** `ocds-h6vhtk-06dab4`
- **Stage / status:** tender / active
- **Procedure:** open — Below threshold - open competition
- **Value:** £160,000 GBP (gross £192,000 GBP)
- **Dates:** published 2026-10-05 · **deadline 2026-10-23 12:00 (+0100)**
- **CPV:** `80500000` Training services
- **Delivery:** UKE, UKF
- **Suitable for:** SME
> This agreement will be for the provision of providing CIH commercial qualifications …
**Documents / links**
- [Tender notice on Find a Tender](https://www.find-tender.service.gov.uk/Notice/093588-2026) — tenderNotice, 2026-10-05

How search works

The official OCDS search endpoints filter only by date window and paging. They have no keyword, buyer or CPV search. This Actor therefore:

  1. pages each selected source newest first within your date window (dateFrom / dateTo, or the last daysBack days),
  2. applies your filters to every release (stages, query, keywords, buyer, CPV, open-only, minimum value),
  3. stops when it has maxNotices matches or has scanned maxPagesPerSource pages (100 releases per page),
  4. keeps the newest release per procurement (OCID), merges both sources newest-first, and writes the cards.

For narrow filters over long windows, raise maxPagesPerSource. If a source has no matches, you get one free no_matches row with the number of releases scanned.

Client-side filtering. The OCDS search APIs have no reliable server-side keyword, buyer or CPV search (Contracts Finder silently ignores keyword; Find a Tender returns 400 for unknown params). Stages, query, keywords, buyer, CPV, open-only and minimum value are therefore applied client-side as each page of releases is scanned. Stage filtering also runs client-side on OCDS tags (FTS stages= under-returns).

Contracts Finder + default stages. Since the Procurement Act 2023 went live, most new opportunities are published on Find a Tender. Contracts Finder currently carries mostly award notices. The default stages: ["tender"] therefore often yields a free CF no_matches row even when FTS returns tenders. To include Contracts Finder results, set stages to include "award" (for example ["tender", "award"], or ["award"] with sources: "contracts_finder").

Input

FieldDefaultNotes
query—All words must match (title / description / buyer / CPV text). Use "quotes" for phrases
keywords—Any-of list, combined with query as AND
buyerName—Case-insensitive substring of the buyer name
cpvCodes—Prefix match. Trailing zeros widen: 72000000 = all IT services
sourcesbothboth | find_a_tender | contracts_finder
stages["tender"]planning, tender, award. Empty = all
dateFrom / dateTolast 7 daysYYYY-MM-DD or YYYY-MM-DDTHH:MM:SS (CF: published, FTS: updated)
daysBack7Used when dateFrom is empty
openOnlyfalseKeep only notices whose deadline is in the future
minValue—Keep notices with value ≥ this amount
noticeIds / releaseUrls—Direct fetch (see below). Skips search unless searchAlsoWithIds
maxNotices50Max cards (and charges) per run
maxPagesPerSource10Up to 100 releases per page
latestPerOcidtrueOne card per procurement
descriptionMaxChars800Excerpt length
maxConcurrency2Max 4, kept low to respect the services
maxRetries3429, CF 403 rate-limit page, 5xx, timeouts. Retry-After is honoured
requestTimeoutSecs60

Direct fetch

noticeIds accepts:

  • Find a Tender notice IDs 093588-2026 or OCIDs ocds-h6vhtk-06dab4 (the newest release is used)
  • Contracts Finder notice GUIDs (from contractsfinder.service.gov.uk/Notice/<guid>) or release IDs <guid>-NNNNNN
  • Official notice URLs or OCDS API URLs on those two services, converted to API calls. HTML is never fetched

Contracts Finder OCIDs (ocds-b5fd17-…) have no reliable keyless lookup. Pass the notice GUID instead; otherwise you get a free cf_ocid_unsupported row.

Example inputs

{ "query": "software", "stages": ["tender"], "openOnly": true, "daysBack": 14, "maxNotices": 25 }
{ "sources": "find_a_tender", "cpvCodes": ["45000000"], "buyerName": "council", "minValue": 1000000 }
{ "sources": "contracts_finder", "stages": ["award"], "keywords": ["cyber", "security"], "daysBack": 30 }
{ "noticeIds": ["093588-2026", "https://www.contractsfinder.service.gov.uk/Notice/91ac2c18-297c-4746-a349-4c78d487a796"] }

Pricing (pay-per-event)

EventPriceWhen
apify-actor-start$0.001Once per run
tender-notice$0.003Each successful notice card saved to the dataset

Free: not-found / invalid IDs, no_matches rows, rate-limited / timeout / server-error rows after retries. Your maximum charge per run is respected: the Actor stops writing billable cards when the limit is reached.

Rate limits and etiquette

Requests send a User-Agent that identifies this Actor. Requests to each host are spaced out, and 429 responses (and Contracts Finder's 403 "rate limit" page) back off with Retry-After or exponential delays. Contracts Finder asks clients to pause about 5 minutes after a rate-limit response. If retries run out, the source is reported as a free rate_limited row.

Data licence

Notice data © Crown copyright, available under the Open Government Licence v3.0. Source APIs: Find a Tender OCDS, Contracts Finder OCDS Search.

Not included

  • HTML scraping of tender websites or attached documents
  • Contact emails, phone numbers or named contact lists. This is not a lead-generation tool
  • EU TED notices (the UK left TED after 2020; FTS replaces it for UK notices)