UK Tender Notices from Find a Tender avatar

UK Tender Notices from Find a Tender

Pricing

from $1.40 / 1,000 tender notices

Go to Apify Store
UK Tender Notices from Find a Tender

UK Tender Notices from Find a Tender

UK public procurement notices from the official Find a Tender API, one row per notice. Pick a last-update window and stage. You pay only for notice rows.

Pricing

from $1.40 / 1,000 tender notices

Rating

0.0

(0)

Developer

Gabor Molnar

Gabor Molnar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 days ago

Last modified

Share

Get UK public procurement notices from Find a Tender, the UK government's official notice service, with one dataset row per notice. You choose a date window and a stage, and the Actor pages through the official API for you. You don't need an API key.

Input

{
"updatedFrom": "2026-09-28T00:00:00",
"updatedTo": "2026-09-28T23:59:59",
"stage": "tender",
"maxNotices": 100
}
  • updatedFrom and updatedTo take times as YYYY-MM-DDTHH:MM:SS, with no timezone. Find a Tender matches them against when a notice was last updated, not when it was first published. The window can be at most 31 days long.
  • stage is planning, tender (the default) or award. One notice can belong to more than one stage.
  • maxNotices is between 1 and 1000, and defaults to 100.
  • cursor continues an earlier run. See "Continuing a run" below.

Output

Each notice is one row with these fields:

  • ocid and id. The ocid names the procurement process and the id names this notice within it. Several notices can share an ocid, so use the pair as the key.
  • date, tags, title, status, buyer (the buying organisation's name), cpv (the main CPV code), value (amount and currency) and deadline. If a notice gives its deadline as a bare date, you get the bare date. A field the notice leaves out is null.
  • sourceUrl, the API request that returned the notice, plus licence and attribution.

The Actor returns only these fields. It leaves out contact details, addresses, suppliers, descriptions, documents and the raw OCDS record. It doesn't filter by sector or region.

The live API can move a notice from one page to the next while the Actor reads them. You still get that notice once.

A run adds one status row, with every notice field set to null, in three cases:

  • no_notices means nothing matched the window and stage.
  • more_available means the run reached maxNotices and Find a Tender has more.
  • A failure code from the table below means a request failed. Notices read before the failure stay in the dataset.

Continuing a run

A more_available or failure row carries a nextCursor. To pick up where the run stopped, run again with the same updatedFrom, updatedTo and stage, and put that value in cursor. After rate_limited, wait for the time in the row's retryAfter first. In our tests Find a Tender accepted about ten requests in quick succession and then asked for a two-minute wait. A run of 1000 notices makes ten requests, so a second large run, or a continuation, started straight after it is likely to be rate_limited. Notices updated between the two runs can move, because the API serves live data.

Pricing

You pay for each notice row. Status rows are free.

reasonCodeMeaningCharged
noticeOne noticeyes
no_noticesNothing matched the window and stageno
more_availableThe run reached maxNotices and more notices existno
invalid_windowA time in the wrong format, a date that doesn't exist, a window that ends before it starts, or one longer than 31 daysno
rate_limitedFind a Tender answered HTTP 429no
upstream_errorAnother HTTP error, a refused redirect, a network failure or a timeoutno
invalid_responseInvalid JSON, an unexpected shape or licence, or a next-page link for a different queryno
too_largeA response larger than 4 MiBno

Each request has a 15-second deadline. If the connection drops, the Actor tries once more. An HTTP error, including 429 or 503, ends the run, because Find a Tender asks clients to send nothing until its Retry-After time has passed. Running the same window twice fetches and bills its notices twice.

Notices read before a failed request are charged, because they are in your dataset. If a run reaches your spending limit, it stops with the notices already saved and adds no status row, so there is no nextCursor to continue from. Use maxNotices to bound what a run costs.

Coverage

The Actor reads Find a Tender only. Other UK services, such as Contracts Finder, publish notices that may not appear here. An empty result means Find a Tender returned nothing for that query. It doesn't mean no UK contract opportunity exists.

Source and licence

The data comes from the Find a Tender OCDS release API. Find a Tender's data documentation licenses notice data under the Open Government Licence v3.0.

Every row carries the attribution "Contains public sector information licensed under the Open Government Licence v3.0." and a link to the licence. Keep both when you share the data. The licence doesn't cover personal data or third-party rights. Neither the Cabinet Office nor any contracting authority endorses this Actor. Check the original notice before you act on it.