UK Tender Monitor (Find a Tender + Contracts Finder)
Pricing
from $2.50 / 1,000 notices
UK Tender Monitor (Find a Tender + Contracts Finder)
Monitor new UK public tenders from Find a Tender and Contracts Finder via official OCDS APIs. Clean, deduplicated notices with buyer, CPV, value, deadline and links. Optional AI English summaries. Pay only per notice.
Pricing
from $2.50 / 1,000 notices
Rating
0.0
(0)
Developer
yanpengluo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Security
Limited permissionsShare
UK Tender Monitor: Find a Tender + Contracts Finder (OCDS)
Monitors UK public procurement notices from two official Cabinet Office OCDS APIs. No API key is needed.
- Find a Tender (FTS):
GET /api/1.0/ocdsReleasePackages, usingupdatedFrom/updatedToand a cursor (links.next). - Contracts Finder (CF):
GET /Published/Notices/OCDS/Search, usingpublishedFrom/publishedToand a cursor.
The output uses the same normalized schema as the TED and SAM actors. It adds ocid and releaseDate.
How it fetches
- Each source runs on a single thread, with at most 1 request per second (≥1.1 s apart).
- On 429 or 5xx it backs off and retries at most 3 times, and honours Retry-After.
- It sends an honest User-Agent and uses no proxies. On 403 or a captcha it stops.
Deduplication
- One record per OCDS
ocidper run, across both sources. The newest release wins, because APIs return newest first. - Across runs, an
ocidalready output in the samededupeScopeis skipped. - RUN_SUMMARY reports
crossSourceDuplicatesandolderReleasesOfSameOcid.
Field rules
estimatedValuecomes fromtender.value. If that is missing, it is the sum of lot values, but only when every lot has a value and all lots share one currency. It is null for award/contract releases, because theretender.valuemay be the awarded value. No currency conversion is done.- Money fields are always
{amount, currency}ornull. awardValueis the sum ofawards[].value(netamount) in a single currency. If there are none, it is the sum ofcontracts[].value. Mixed currencies give null.deadlineAt=tender.tenderPeriod.endDate, but only if it has a time and a UTC offset. Otherwise it is null.cpvcomes from tender, items and additional classifications (CPV scheme only).titleEnis the original title (titleEnSource: "original"). Notices are published in English, but some may be in Welsh.parties/ contact points are not output, and contact blocks are stripped from the optional raw records. Emails and phones are scrubbed.cpvPrefixesandkeywordsfilter on the client side: every release in the time window is still fetched.
Licence and attribution
Contains public sector information licensed under the Open Government Licence v3.0 — https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/
- FTS and CF data are published under the OGL v3.0. Every output record's
licenseAttributioncontains the statement above, the licence link, and the source service (Find a Tender or Contracts Finder). - If you republish, keep this attribution and do not suggest official endorsement.
- AI summaries are optional (DeepSeek, budget-capped). They are derived content, not official text.
Sources and quota split
sourcestakes["fts","cf"](default),["fts"]or["cf"].uk-fts/uk-cfare also accepted.- With both sources,
maxItemsis split half/half; the first listed source gets the odd item. Any share a source doesn't use rolls over to the other one, in either direction. The cursor resumes, so nothing is fetched twice. - RUN_SUMMARY reports
quotaSharesandoutputBySource.
Pricing (pay-per-event)
| Event | Price (USD) | When |
|---|---|---|
actor-start | $0.005 | once per run |
notice | $0.0025 ($2.5 / 1,000) | per record written to the dataset |
notice-summary | $0.01 | per newly generated AI summary (optional) |
No charge for failed records, duplicates, or for cached, skipped or failed summaries. Config: .actor/pay_per_event.json; local simulation: scripts/ppe-local.sh.