UK Contracts Finder Tenders Scraper icon

Lead generation

UK Contracts Finder Tenders Scraper

Turn UK Contracts Finder's raw OCDS feed into flat, buyer-ready leads: buyer, value, CPV code, deadline, and award/supplier info — no API key needed.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

UK Contracts Finder is the central portal where every UK public body — councils, NHS trusts, central government departments — posts contract notices. The raw feed is Open Contracting Data Standard (OCDS) JSON: deeply nested tender/award/parties objects that are a pain to parse by hand. This Actor queries Contracts Finder's public OCDS search API and flattens every release into one buyer-ready row — buyer name, title, value, CPV classification, publish/closing dates, status, and award/supplier info when a contract has already been won. No API key, no login, no OCDS-schema puzzle.

What we handle for you

  • 🔁 Retries with exponential backoff on 429/503/network errors — up to 5 attempts, Retry-After honoured.
  • 🧱 Per-release fault isolation — one malformed OCDS release is skipped and logged, never crashes the whole run.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, never the raw 300+ KB OCDS blob.
  • 💰 Pay-Per-Event pricing — you only pay for rows that land in your dataset. No data, no charge.

Use cases

  • Bid-team pipeline — pull new tenders matching a keyword or CPV area every day.
  • Market intelligence — track which UK public bodies are buying what, and at what value.
  • Award tracking — monitor closed notices for supplier names and award values on contracts you bid on.
  • Lead generation — build a prospect list of buyers issuing contracts in your sector.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
keyword string no Free-text keyword sent to Contracts Finder's search (e.g. grounds maintenance). Leave blank to match all notices of the selected type(s).
noticeTypes array no Notice types to search for, e.g. Contract, Tender, Award. Only Contract is confirmed-working; other values are sent through as-is.
publishedFrom string no Only include notices published on or after this date, e.g. 2026-01-01.
publishedTo string no Only include notices published on or before this date, e.g. 2026-08-01. Must be on/after publishedFrom when both are set.
minValue number no Discard notices whose contract value is below this amount. Applied client-side after fetching (never sent to the API).
maxValue number no Discard notices whose contract value is above this amount. Applied client-side after fetching (never sent to the API). Must be on/above minValue when both are set.
maxResults integer no Hard cap on the number of contract notice rows returned by this run.
useProxy boolean no Route requests through Apify Proxy. Contracts Finder is UK government infrastructure with no observed anti-bot, so this defaults off — enable only if you see rate-limiting.
{
  "noticeTypes": [
    "Contract"
  ],
  "maxResults": 5,
  "useProxy": true
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

buyer_nametitlevalue_amountvalue_currencycpv_codesclosing_datenotice_typestatusaward_statussupplier_names

{}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result row emitted$0.0040Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

Limitations

  • Contracts Finder only — Sell2Wales, Public Contracts Scotland, and eTendersNI are out of scope.
  • No tender-document (PDF) downloads, only the structured notice metadata.
  • Real-time per-query only — no historical bulk CSV/XML export and no cross-run deduplication.

FAQ

Do I need a Contracts Finder account or API key?
No. Contracts Finder's OCDS search API is public and keyless — this Actor calls it directly.
Which notice types are supported?
notice_types defaults to ["Contract"], the confirmed-working value. Other OCDS notice types (e.g. Tender, Award) are passed through as-is; an unsupported value surfaces the API's own rejection rather than failing silently.
Why is `maxResults` capped at 300?
Each OCDS release is unusually large (~310 KB) because it carries full tender/award/parties objects. The cap keeps a single run's bandwidth (and cost) predictable; raise it only if you need a bigger sample.
Can I filter by contract value?
Yes — minValue/maxValue filter on the parsed value_amount client-side (Contracts Finder's API doesn't expose a value filter server-side).

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run