UK tenders and government contracts from Find a Tender: UK public procurement notices (Procurement Act 2023, above and below threshold) scored to your CPV codes, keywords, regions and value, with deadlines, SME/VCSE flags and match reasons. Daily tender alerts, 31-day backfill, award tracking.
README: cross-links and examples, no code or price change (2026-10-08, build 0.1.5)
Product name in the README now matches the Store title ("UK Tenders Monitor: Government Contracts & Find a Tender Alerts").
New Examples section linking the published example task "IT and software tenders in the UK - last 7 days".
"Other Lindenwerk Data Actors" lists all six sibling Actors by their current Store titles and Store URLs.
No change to code, input schema, pricing, events, defaults or output.
All notable changes to the UK Public Tenders Monitor (Find a Tender, Bid Alerts) by Lindenwerk Data.
Reliability update: long backfills keep finished days (2026-10-06, before the first public release)
Fixed: the source time budget was a fixed 210 s and a timeout threw away every day that had already finished
(the whole run failed). Long backfills with Find a Tender rate-limit pauses (120 s each) could hit this.
A source that runs out of time or breaks now keeps what it delivered (finished Find a Tender days). The run
says so: status message starting with PARTIAL DATA, a PARTIAL SOURCE log line with the missing days, and new
RUN_SUMMARY fields sourceStatus, partialSources, missingDays, sourceTimeBudgetSeconds. Only delivered rows
are charged.
Time budget: 210 s for short monitor windows (unchanged), 60 s + 25 s per day for backfills (31 days: 835 s), always
leaving at least 300 s before the run timeout.
No change to prices, events, input fields, defaults or output fields.
Listing quality update (2026-10-06, before the first public release)
README: starts with an H2 "What is ...?" (Apify Store shows the Actor name as the page H1), new step-by-step
"How to ..." section (first run, own profile, schedule, integrations, API) and a list of the other Lindenwerk Data Actors.
Input form: fields grouped into sections (Competitor tracking, Date range and notice types, Output, Advanced) and a "Quickest try" hint in the form description.
No change to the code, prices, events, output fields or defaults.
0.1 (2026-10-05)
First public release.
Source: the Find a Tender OCDS release package API (UK central digital platform, Open Government Licence v3.0),
one publication day at a time with cursor pagination, at most two days in parallel.
Polite by design: on HTTP 429/503 the Actor waits the full Retry-After time before any further request (all
parallel requests pause), retries the same page and never skips ahead. Identifying User-Agent, no proxies, no login.
Procurement Act 2023 aware: above- and below-threshold notices, legalBasis (Procurement Act 2023 or PCR 2015 …),
UK notice codes (UK4 …), aboveThreshold, suitableForSme and suitableForVcse per lot, as output fields and
filters (thresholdLevels, smeSuitableOnly, vcseSuitableOnly).
One row per procurement: tender and planning updates in the same window are merged into the newest version, older
ids in relatedNoticeIds. In monitor mode a later update of an already delivered procurement is not re-sent or
re-charged.
Matching: CPV prefixes (main CPV weighs more), keywords in title (full weight) and description (half weight) with
rare-word weighting, excludeKeywords, UK regions by name or ITL/NUTS code (delivery location first, else buyer
address), contract type, value range, onlyOpen, competitorNames (awards). relevanceScore 0–100 with
plain-English matchReasons.
Modes: monitor (only new since last run, per stateKey, named store uk-tender-matcher-state), backfill (up
to 31 days) and awards (winning suppliers and awarded values).
Store-test-proof defaults: the input form prefill is a stateless 7-day backfill with maxResults 25, so Apify's
daily Store test gets rows on any day. API, task and schedule defaults stay monitor, lookbackDays 1,
maxResults 200. firstRunBackfillDays (default 7, 0 = off): a first monitor run with an empty window looks back
7 days once.
Robust against outages: failed days give warnings, a hang is given up after 210 s, and a total outage ends the run
Failed with a clear message, no charge and no state change. RUN_SUMMARY reports fetch, merge, filter and charge
statistics.
GDPR: contact-person names, personal e-mail addresses and phone numbers are removed from contact fields and free
text; only functional buyer contacts and organisation names are output.
Pay-per-event charging (scored-match USD 0.008, notice USD 0.003) with maxResults and maximum-total-charge stop.
89 offline pytest tests (synthetic Find a Tender fixture), including pre-publish checks of the Actor definition,
pricing, brand rules, Store-test prefill and the Retry-After pause.