Government Tenders & Public Procurement Tracker
Pricing
from $1.60 / 1,000 notices
Government Tenders & Public Procurement Tracker
Government tenders, procurement opportunities and contract awards from UK Find a Tender, Contracts Finder, EU TED, AusTender and SAM.gov in one schema: keywords, CPV, NAICS and UNSPSC codes, deadlines, values in one currency and new-only alerts. Official feeds only.
Pricing
from $1.60 / 1,000 notices
Rating
0.0
(0)
Developer
CleanPull
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
Share
This government tenders tracker finds government tenders, public procurement opportunities and contract awards from five official sources in one schema: UK Find a Tender, UK Contracts Finder, EU TED (every EU and EEA country), AusTender (Australia) and US SAM.gov. Search by keyword, by topic across CPV, NAICS, PSC and UNSPSC codes, by country, buyer, deadline and value (converted to one currency at the ECB rate), and get only what changed since your last run: new notices, updated deadlines or values, cancellations, and awards of the tenders you were watching. A daily digest lists what is closing soon, the largest notices and recent winners. Official feeds only, no scraping of logins. It runs once, on a schedule or through the API.
Also known as a government tenders scraper, public tenders API, procurement opportunities finder, bid tracker and contract award tracker.
How to track government tenders
- Open Government Tenders & Public Procurement Tracker on Apify and go to its input form.
- Pick Sources, then enter Keywords or pick Topics (each topic matches CPV, NAICS, PSC and UNSPSC codes, so it finds the same kind of work in every country). Narrow by Countries and Buyer contains.
- Choose Stages (Open for bids by default; add Awarded to see who won) and the window with Published in the last (days). Keep bids you can still make with Open tenders only and At least days to bid, and set Minimum value in your Currency.
- Start the run. Open the Notices view to read each notice's Title, Buyer, Deadline, Days left and Value, the Awards view for the Winners, and the Digest view for what is Closing soon and the Largest notices.
- To watch your market, turn on Changes only (monitor), give the watch a Monitor name, save it as a task and schedule it daily. The Changes (monitoring) view then lists each Change (new, updated, cancelled or awarded) and What changed.
What the government tenders tracker gives you
- Find bids to win: "IT services tenders in the UK, EU, US and Australia, open for at least 10 more days, worth over $100,000."
- Watch your market daily: schedule a run with Changes only and get new tenders, changed deadlines and values, and cancellations, without the ones you already saw.
- See who wins: add the Awarded stage and get winners, award values and dates; with monitoring, the tenders you were watching come back as
awardedwith the winner. - Build a pipeline: the Planned stage adds prior information notices, UK pipeline notices and US sources-sought and presolicitations, months before the tender.
- Feed a CRM, sheet or Slack: flat rows for spreadsheets, one digest record per run for a message.
Public procurement sources and monitoring
- Five official sources, one record. The same fields for every notice: title, buyer, country, stage, deadline (with its time zone), value, codes, documents and submission links, award and winners. Nothing to stitch together.
- Topics that cross code lists. "Construction", "Cyber security", "Cleaning" and 33 more topics map to CPV (UK, EU), NAICS and PSC (US) and UNSPSC (Australia), so one search finds the same kind of work everywhere. Each notice lists its topics. Codes can be given directly too, as prefixes (
72,5415,8111), in CPV codes, NAICS codes, UNSPSC codes and PSC codes. - Reliable by design. Official APIs and data files: UK OCDS APIs, the TED search API, AusTender's OCDS API and its official open-tender feed, and SAM.gov's public daily extract. Both UK services share a rate limit; the actor paces them and waits when asked, so runs finish instead of failing.
- Monitoring that follows a procurement. Notices are tracked by procurement (OCDS ocid, TED procedure id, SAM solicitation number), so an award or a cancellation of a watched tender is reported as a change to it, with what changed.
- Values you can compare. Every value is also given in your currency at the European Central Bank's rate of the day; value filters work across sources.
- Compliant with each source's terms. SAM.gov comes from its public extract, not its website search; AusTender's tender text (which belongs to the issuing agency) is given as an excerpt with the link; each record carries its source's licence.
Government tenders tracker input
| Field | Key | What it does |
|---|---|---|
| Sources | sources | uk-fts, uk-cf, eu-ted, au-austender, us-sam (default all) |
| Keywords | keywords | Words in the title or description (TED searches its full text) |
| Topics | topics | Topics across code lists (see the input form for all 36) |
| CPV codes | cpvCodes | CPV codes or prefixes: UK and EU notices |
| NAICS codes | naicsCodes | NAICS codes or prefixes: US notices |
| UNSPSC codes | unspscCodes | UNSPSC codes or prefixes: Australian notices |
| PSC codes | pscCodes | US Product and Service Codes or prefixes |
| Countries | countries | Buyer countries as two-letter codes |
| Buyer contains | buyerKeywords | Words in the buyer's name |
| Exclude keywords | excludeKeywords | Leave out notices whose title or description contains any of these |
| Stages | stages | planning, tender (default), award, contract, cancelled |
| Published in the last (days) | publishedWithinDays | The publication window (default 7 days, today included) |
| Published from | publishedFrom | A start date (YYYY-MM-DD) instead of the number of days |
| Open tenders only | openOnly | Leave out tenders whose deadline has passed (default on) |
| Closing within (days) | deadlineWithinDays | Only tenders closing within N days |
| At least days to bid | minDaysToDeadline | Leave out tenders closing sooner than N days |
| Minimum value | minValue | In the chosen currency, converted at the ECB rate of the day |
| Maximum value | maxValue | In the chosen currency |
| Currency | valueCurrency | Values are converted to this currency (default USD); value filters use it |
| Keep notices without a value | includeNoValue | With a value filter, keep notices without a value (default on) or leave them out |
| Suitable for SMEs only | smeOnly | Small-business suitable only (UK SME flag, US small-business set-asides) |
| US set-asides | setAsides | US set-aside types to keep |
| Changes only (monitor) | monitorMode | Return only what changed since the last run under the same name |
| Monitor name | monitorName | Runs with the same name share one memory (default default) |
| Changes to report | changeTypes | new, updated, cancelled, awarded (default all) |
| Output format | outputFormat | notices (full records) or flat (rows for spreadsheets) |
| Digest | includeDigest | One summary record per run (default on) |
| Description length | descriptionMaxLength | Characters of description to keep (default 2,000; 0 for none) |
| Include the source record | includeRaw | Also return the source's original record |
| Max notices | maxItems | Stop after this many notices in the run |
| Max notices read per source | maxNoticesPerSource | A safety limit on notices read from each source before filtering (default 5,000) |
| Only these fields | fields | Return only these fields |
| History store | stateStoreName | Optional key-value store for the monitor's memory (default "cleanpull-tenders-monitor"); pick one when running with a scoped API token in Restricted access mode |
Example inputs
Open IT tenders worth $100,000 or more, at least 10 days to bid:
{"topics": ["IT services", "Software"],"minValue": 100000,"valueCurrency": "USD","minDaysToDeadline": 10}
A daily watch of construction tenders in Ireland and the UK, with awards:
{"sources": ["uk-fts", "uk-cf", "eu-ted"],"topics": ["Construction"],"countries": ["IE", "GB"],"monitorMode": true,"monitorName": "construction-ie-uk","publishedWithinDays": 2}
Who won IT contracts in Australia and the US this month:
{"sources": ["au-austender", "us-sam"],"topics": ["IT services"],"stages": ["award", "contract"],"publishedWithinDays": 30}
Government tenders tracker output
Every notice has source, sourceName, id, ocid, url, title, description, stage, noticeType, procedure, contractNature, buyer (name, id, country), buyerEmail, country, placeOfPerformance, publishedAt, deadline, daysToDeadline, value and valueConverted, codes (cpv, naics, psc, unspsc), topics, sme, setAside, documentsUrl, submissionUrl, award (date, value, suppliers) and awardValueConverted, licence and scrapedAt. In monitoring, change says new, updated (with each changed field, from and to), cancelled or awarded, and the stage before.
The digest record (recordType: "digest") has counts by source, stage and change, the tenders closing within 7 days, the 10 largest notices, recent awards with winners, top buyers and top topics.
Every run writes RUN_SUMMARY to the key-value store: the outcome (COMPLETE, PARTIAL, NO_CHANGES, EMPTY or FAILED), notices read and requests per source, any source that could not be read, the ECB rate date, charges and warnings.
Example rows
Illustrative rows (made up to show the shape, shortened; real notices carry every field above). An open UK tender from the first example input:
{"recordType": "notice","source": "uk-fts","sourceName": "UK Find a Tender","id": "000000-2026","url": "https://www.find-tender.service.gov.uk/Notice/000000-2026","title": "Cloud hosting and managed IT services","stage": "tender","procedure": "open","contractNature": "services","buyer": { "name": "Example Borough Council", "id": null, "country": "GB" },"country": "GB","publishedAt": "2026-11-10T09:00:00Z","deadline": "2026-12-08T12:00:00+00:00","daysToDeadline": 26,"value": { "amount": 450000, "currency": "GBP" },"valueConverted": { "amount": 585000, "currency": "USD" },"codes": { "cpv": ["72415000"], "naics": [], "unspsc": [], "psc": [] },"topics": ["IT services", "Cloud and hosting"],"sme": true,"award": null,"awardValueConverted": null,"licence": "Open Government Licence v3.0","scrapedAt": "2026-11-12T06:00:00.000Z"}
A watched Irish tender reported as awarded by the daily construction watch:
{"recordType": "notice","source": "eu-ted","sourceName": "EU TED","id": "000000-2026","title": "Construction of a primary school extension","stage": "award","buyer": { "name": "Example County Council", "id": null, "country": "IE" },"country": "IE","publishedAt": "2026-11-11T00:00:00Z","deadline": null,"codes": { "cpv": ["45214200"], "naics": [], "unspsc": [], "psc": [] },"topics": ["Construction"],"award": {"date": "2026-11-04","value": { "amount": 2400000, "currency": "EUR" },"suppliers": [{ "name": "Example Builders Ltd" }]},"awardValueConverted": { "amount": 2770000, "currency": "USD" },"change": {"type": "awarded","fields": [],"previousStage": "tender","firstSeen": "2026-09-02T06:00:00.000Z"},"licence": "EU reuse of Commission documents (Decision 2011/833/EU)","scrapedAt": "2026-11-12T06:00:00.000Z"}
Pricing
Pay for notices delivered and, in Changes only mode, for notices checked.
| Event | Free and Bronze | Silver | Gold |
|---|---|---|---|
| Notice | $2.00 | $1.80 | $1.60 |
| Change (changes only: a new, updated, cancelled or awarded notice) | $2.00 | $1.80 | $1.60 |
| Unchanged notice checked (changes only) | $0.10 | $0.09 | $0.08 |
| Digest (one per run) | $5.00 | $4.50 | $4.00 |
Prices are per 1,000. The Digest (on by default) is $0.005 a run on the Free and Bronze plans, charged only for a run that delivers notices. Each run also has a $0.00005 start fee.
Sources and licences
| Source | Feed | Licence |
|---|---|---|
| UK Find a Tender | OCDS API | Open Government Licence v3.0 |
| UK Contracts Finder | OCDS API | Open Government Licence v3.0 |
| EU TED | Search API v3 | Reuse of Commission documents (Decision 2011/833/EU) |
| AusTender | OCDS API (contract notices); current ATM list feed and ATM pages (open tenders) | CC BY 3.0 AU, Commonwealth of Australia; ATM material remains with the issuing agency (excerpt and link only) |
| US SAM.gov | Contract Opportunities public daily extract | US government work |
Contains public sector information licensed under the Open Government Licence v3.0. AusTender data © Commonwealth of Australia, CC BY 3.0 AU.
Limits
- Notices as the sources publish them: not every notice has a value, a deadline time or codes; such fields are null. Value filters keep notices without a value unless
includeNoValueis off. - Topics are an approximate bridge: the code lists do not map one to one.
- UK runs are paced (both UK services share a rate limit of 12 requests a minute), so a long UK window takes a while: about 6 minutes for a week, 25 for a month. A run never times out with nothing: a few minutes before its time limit it stops reading, delivers what it has, says which source stopped early, and ends PARTIAL. Raise the run timeout (or narrow the period or keywords) to read everything in one run. TED's notice titles and descriptions are in the buyer's language when no English version exists.
- SAM.gov's extract is refreshed once a day (early morning US time), so the newest SAM notices can be up to a day old. AusTender's open-tender feed lists the latest approaches to market; very old open tenders are not included.
- AusTender ATM descriptions are an excerpt (the agencies' text); the full text and documents are on the linked page.
- AusTender publishes its open tenders (ATMs) and its contract notices without a link between them, so for Australia monitoring reports new and changed notices, but cannot mark a watched ATM as awarded.
- The dataset views (Notices, Awards, Changes, Digest) are for the full notice format; flat rows are for spreadsheet export.
- Nothing found: no notice matching the search is a successful, empty run, never charged; input that cannot be searched (an unknown topic, a bad country code) ends the run with one free
recordType: "unreadable"row saying why, also successful. Only a run where every source failed fails.
FAQ
How much do government tenders cost per notice?
A notice costs $0.002 on the Free and Bronze plans, and the Digest adds $0.005 to a run that delivers notices: a week of 150 matching notices costs $0.305. A run where nothing matches delivers nothing and charges nothing, digest included. Notices read from a source but left out by your filters are never charged, and higher Apify plans pay less (see Pricing above).
How often should I check for new tenders, and what does monitoring cost?
Daily suits most bid teams: schedule a run with Changes only (monitor) and a short Published in the last (days), such as 2. Each new, updated, cancelled or awarded notice then costs $0.002 on Free and Bronze, instead of a notice, and each matching notice that did not change $0.0001. The digest ($0.005) is charged only on days something is delivered, so a quiet day with 400 matching notices unchanged costs $0.04. A change left out of Changes to report is billed as an unchanged notice checked. The first run under a new Monitor name reports every matching notice as new, at $0.002 each.
What is the difference between value, converted value and award value?
value is the notice's value as its source published it, in the source's currency. valueConverted is the same in your Currency, at the European Central Bank's rate of the day, and is what Minimum value and Maximum value check. award.value is the value of the awarded contract, with awardValueConverted in your currency; a value filter uses it when the notice has no value of its own. When the ECB rates cannot be read, values are not converted and value filters keep only notices in your currency.
Why is a tender missing, or a value or deadline empty?
- Not published: not every notice has a value, a deadline time or codes; those fields are null, as the source published them.
- Default filters: Stages is Open for bids only, Open tenders only leaves out passed deadlines, and Published in the last (days) is 7. With Closing within (days) or At least days to bid, an open tender without a deadline is left out.
- No value: with a value filter, notices without a value are kept unless Keep notices without a value is off.
- Source limits: Max notices read per source (5,000) stops a source with a warning in
RUN_SUMMARY; SAM.gov notices can be up to a day old; AusTender's open-tender feed leaves out very old open tenders. - A source could not be read, or ran out of time: it is named in
RUN_SUMMARYand the run ends PARTIAL with what the other sources gave (EMPTY when they matched nothing). A run fails only when every source failed. - Nothing matching: a successful, empty run, never charged. Input that cannot be searched (an unknown topic, a bad country code) ends the run with one free
recordType: "unreadable"row saying why.
Which countries and sources does it support?
Five official sources: UK Find a Tender and UK Contracts Finder, EU TED (every EU and EEA country), AusTender (Australia) and US SAM.gov (federal). Countries narrows them by buyer country, and Topics or the code fields (CPV codes for the UK and EU, NAICS codes and PSC codes for the US, UNSPSC codes for Australia) find the same kind of work in each.
Can I use the government tenders tracker through the API?
Yes. Start runs through the Apify API or an API client, and read the dataset through its Notices, Awards, Changes (monitoring) and Digest views (made for the full notice format), or the RUN_SUMMARY record with the outcome, notices read and requests per source, and any source that could not be read. Output format gives full records or flat rows, and Only these fields (fields) trims them to the keys you need.
Does it work with Google Sheets, Make, Zapier or Claude?
Yes. Apify's integrations send each run's results to Google Sheets, Make, Zapier, webhooks and other tools, and a schedule keeps them updated; Alerts Sender sends the digest or new tenders to email, Slack, Discord or Teams. Claude and other AI agents can run it through Apify's MCP server.
Is it allowed to use government tender data?
The actor reads official public procurement APIs and data files as any visitor can: no login and no account. Each record carries its source's licence (see Sources and licences above), and notices keep the buyer contact the source publishes (buyerEmail). How you use the data, and following the laws and terms that apply to you, is your responsibility. This is not legal advice.
Related actors
Other CleanPull actors for monitoring:
- Alerts Sender: send results to email, Slack, Discord, Teams or a webhook.
- Google Sheets Sync: send any dataset to Google Sheets, or read a sheet into one.
- Tech Stack Detector: the technologies any website runs, with versions and evidence.
Use it from Claude
The MarketMage plugin runs these actors from a Claude chat.
Found it useful? A rating on the Store helps others find it.
Changelog
- 0.1.x, reliability (2026-10-24): input that cannot be searched ends SUCCEEDED with a free
unreadablerow saying why, instead of FAILED; empty sources, stages and change lists, country codes and the start date are checked in the input form; fetching stops at the shared run deadline (or 4 minutes before the limit, whichever is earlier). Prices and events unchanged. - 0.1.4 (October 2026): a run near its time limit delivers what it has read instead of timing out; progress per source in the status.
- 0.1 (October 2026): UK Find a Tender, UK Contracts Finder, EU TED, AusTender and SAM.gov in one schema; keywords, topics across code lists, countries, buyers, deadlines, values in one currency, SME and set-aside filters; awards; changes-only monitoring by procurement; digest; flat rows.