UK Tender Finder: Contracts Finder & Find a Tender
Pricing
$5.00 / 1,000 matching procurement notices
UK Tender Finder: Contracts Finder & Find a Tender
Find UK procurement notices from two official OCDS feeds. Filter keywords, CPV, value and SME suitability; export buyers, deadlines and source links.
Pricing
$5.00 / 1,000 matching procurement notices
Rating
0.0
(0)
Developer
Kiro Zhang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Build a repeatable shortlist of UK public-sector procurement notices using Contracts Finder and Find a Tender. Filter official records into a dataset your bid team can review or send to a spreadsheet.
Who this is for
For bid teams and suppliers building a repeatable UK procurement shortlist. Search Contracts Finder and Find a Tender in one run, then review the original notices before deciding to bid.
Start with at most 10 result rows: the Actor event charges for that batch are at most $0.05 at the listed rate. Set both maxResults and the run's maximum charge before starting.
Quick start
Open the Input tab, paste your input and run. A small example:
{"daysBack": 2,"maxNotices": 10,"maxPagesPerSource": 2,"onlyOpen": true,"stages": ["tender"],"maxResults": 10}
Two official feeds, one output
Rows include notice ID, OCID, buyer, title, description, stage, status, value and currency, CPV codes, deadlines, SME suitability when supplied, source documents and a notice link. Missing values stay null; no budget, deadline or SME status is invented. Public-sector information is attributed under the Open Government Licence v3.0.
Build a useful daily shortlist
Use keywords such as ["cyber security", "software"] or CPV prefixes such as ["72"]. Keywords use OR matching. Set onlySmeSuitable only if you want to exclude notices without explicit suitability data. minValueGbp filters on stated GBP tender values; it does not convert currencies or substitute award values.
For a first exploratory run, leave keywords empty. A narrow query can legitimately return no matching rows. When repeating searches, use (source, noticeId) to deduplicate in your downstream workflow; overlapping dates and repeated runs can return the same notice.
Coverage is bounded and visible
The date window selects publication time on Contracts Finder and update time on Find a Tender. It is a notice-window search, not an inventory of all currently open contracts. Each source is paged in turn; matching rows from fetched pages are sorted by notice date. Small page/result caps can omit matches, including newer notices on unread pages. Always inspect RUN_SUMMARY.sources for scanned counts, page counts, errors and completeness before drawing conclusions.
Separate source notices are not heuristically merged. Planning and award stages are coarse classifications from OCDS release tags. Deadlines labelled enquiry_only are not bid deadlines. Confirm the current conditions on the official notice before acting.
Source documentation: Contracts Finder OCDS, Find a Tender OCDS.
Pricing and limits
$5 per 1,000 delivered matching procurement notice results ($0.005 each). There is no Actor startup fee. Standard platform usage is included in this Actor's event price. A successfully delivered dataset row triggers one charge; error diagnostics live in RUN_SUMMARY and are not chargeable rows. Repeated runs are new checks and may return the same item again. The Pricing tab is authoritative.
Use the run's maximum charge setting and maxResults to control spending. No proxy subscription or external API key is required. Runs use 256 MB by default. For large batches, raise the run timeout or split the input; a hard timeout may leave an incomplete dataset. The presence of a finished RUN_SUMMARY helps distinguish completed processing from interrupted runs.
Export and integrations
Use the Output tab to inspect results and the summary. Download JSON, CSV or Excel from the dataset, or use Apify's API, Make, Zapier or n8n to pass the output into your existing workflow. Nested evidence is most faithfully preserved in JSON. The default dataset belongs to the run; no external destination receives results automatically.
An API client can start kirozhang/uk-tender-opportunity-finder with the JSON above, wait for completion and read its default dataset. Set your Apify token in the client's credential store, never inside the input URLs.
Troubleshooting
Read RUN_SUMMARY.errors and limitReasons first. A partial run may contain useful rows; it must not be treated as exhaustive. All-target failure marks the run failed. A valid search with no matches can succeed with zero rows. For support, open an Issue on this Actor with the run ID, expected behavior and a public example target. Remove credentials and private data from your report.
Example output
Illustrative excerpt from a real verification run; values change over time.
{"title": "Marple Memorial Park Active Environments Project","buyerName": "Stockport Metropolitan Borough Council","stage": "award","deadline": "2025-10-31T12:00:00Z","valueAmount": 118108.58,"currency": "GBP","source": "contractsFinder","url": "https://www.contractsfinder.service.gov.uk/Published/Notices/OCDS/Search?limit=100&publishedFrom=2026-11-04T12%3A35%3A43.807Z&publishedTo=2026-11-06T12%3A35%3A43.807Z"}
Workflows and questions
A daily shortlist for a bid team
- Run the broad two-day example first to inspect the available fields. Then add the team's keywords or CPV prefixes.
- Save the input as an Apify task and choose a daily schedule in your timezone. A two-day lookback intentionally overlaps successive runs.
- In your spreadsheet or database, upsert on
(source, noticeId)to avoid sending the same notice to your team repeatedly. - Retain the source URL and collection time. Inspect
RUN_SUMMARY.sources: unread pages or result limits mean the shortlist is partial.
Common questions
Does it list every currently open UK contract? No. It searches notices in a bounded publication/update window and respects source/page/result caps.
Why did a narrow search return zero? No matching notice may have been found in the pages scanned. Remove one filter at a time and inspect coverage before extending the date window.
Are missing values estimated? No. Unknown budgets, deadlines and SME suitability stay explicit. Enabling the SME or value filter can exclude notices with missing data.
API quick start
Save the Quick start JSON as input.json. Put your Apify token in the APIFY_TOKEN environment variable through your usual secret store, then run:
curl --fail-with-body --max-time 200 \--request POST \--header "Authorization: Bearer $APIFY_TOKEN" \--header "Content-Type: application/json" \--data-binary @input.json \"https://api.apify.com/v2/acts/kirozhang~uk-tender-opportunity-finder/run-sync-get-dataset-items?timeout=180&memory=256&maxTotalChargeUsd=0.10&format=json&clean=true" \--output results.json
This example starts a real run and applies a $0.10 charge ceiling. The smaller maxResults cap still applies. An empty array can be a valid no-match result; inspect the run and RUN_SUMMARY in Console. If the connection times out, check Console before retrying, since the run may already exist. For larger exports, use the asynchronous API shown on this Actor's API tab and read the dataset after the run finishes.
Scheduling and workflow tools
After a successful small run, save a task with your production input. Apify schedules can run that task regularly. In Make, Zapier or n8n, store the token in the connection credentials, run this Actor, wait for completion, and read its dataset. Configure your own destination explicitly; this Actor does not send emails or post messages automatically. Each scheduled run may incur charges, including repeated results.