Government Tenders Scraper: Global Notices & Awards avatar

Government Tenders Scraper: Global Notices & Awards

Pricing

from $2.40 / 1,000 notices

Go to Apify Store
Government Tenders Scraper: Global Notices & Awards

Government Tenders Scraper: Global Notices & Awards

Search official public procurement notices across countries. Get buyers, deadlines, values, classification codes, lots, document links and awards in one schema, with deduplication and new-notice alerts.

Pricing

from $2.40 / 1,000 notices

Rating

0.0

(0)

Developer

Zaiq

Zaiq

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Share

Government Tenders Scraper: official notices and awards in one schema

Government Tenders Scraper: Global Notices & Awards

Get government procurement notices with a plain verdict, buyer, deadline, classification codes, available values, lots, document links and award information. Search official public feeds across Europe, the UK, US federal procurement, Australia, Canada, France and New Zealand.

$0.003 per notice on every source and every connection route, the same price on every Apify plan. Failures and status notes are free. The smallest input is {}: it returns up to 10 recent TED tenders with a future deadline. No source account or API key is needed.

Coverage is specific to each source. TED supplies notices published on the European portal. Find a Tender and Contracts Finder supply UK OCDS releases. SAM.gov supplies federal search records and notice links. AusTender supplies awarded contracts. CanadaBuys supplies the federal open-tender file and award files. BOAMP supplies French notices. GETS supplies New Zealand’s current-tenders RSS feed.

What you get

FieldWhat it holds
verdictA one-line status, such as a tender deadline, an award amount, or an explanation of a free note row.
source, noticeId, procurementIdThe originating feed and identifiers. A procurement process can have several distinct tender, award and amendment notices.
title, description, buyer, buyerIdSource text and the named procuring organisation where published. Text remains in its original language.
country, countries, regionBuyer country on TED and the national procurement jurisdiction on national feeds, plus published region codes or names.
cpvCodes, unspscCodes, naicsCodesSeparate classification systems, kept as strings so leading zeros survive.
estimatedValue, currency, valueMin, valueMaxPublished estimates and ranges. A missing value stays null.
published, updated, deadline, deadlines, deadlinePrecisionPublished dates and the source’s closing dates. Date-only deadlines and times without a timezone are labelled.
procedure, lots, lotTitlesThe procedure and available lot information. TED’s independent lot-ID and title lists are kept separate.
documentsPublic document links supplied by a feed, plus the official notice XML link on TED. Documents are not downloaded.
awardWinner, awardValue, awardCurrency, awardsPublished winners and values. Multiple award values are combined only when all values are available in the same currency.
sourceUrl, dataUrl, crossPortalIdsA public notice or official data link, its source feed and exact identities used for deduplication.
note, notes, kind, resultIdMissing-data explanations, free source notes and a stable delivery ID. Filter kind=notice to keep only procurement records.
SUMMARYPer-source rows, scans, requests, traffic, duplicates, skipped malformed records, limits, route changes and alert state.

What people use it for

  • Supplier bid discovery: Search the places where buyers publish tenders, then filter by a relevant sector code, buyer jurisdiction, deadline and disclosed budget.
  • Bid consultancy: Collect several public feeds into the same columns for review, qualification and bid tracking.
  • Award research: See named suppliers and disclosed contract values, without confusing an estimated opportunity value with a completed award.
  • Notice alerts: Schedule new-notice mode with a consistent named state store to deliver previously unseen notices within a rolling publication window.
  • Procurement data pipelines: Export JSON, CSV or spreadsheet data with source IDs and links, and retain free status rows so an unavailable source is visible.

How to use it

  1. Run with the default input for up to 10 recent TED tenders.
  2. Select your sources and notice types. For Australia, select award. Add optional keywords, codes, buyer countries, values or closing dates.
  3. Set Maximum notices per source and Maximum cost per run. These are separate limits.
  4. Open Notices or Award details in the dataset. Read SUMMARY for coverage and any skipped sources.
  5. For repeated alerts, choose New notices since previous runs, keep the same state store and filters, and schedule runs without overlap.

Input

FieldExampleNotes
sources["ted", "uk_find_tender"]Eight official feeds; see the source descriptions above.
keywords["software", "maintenance"]Any literal phrase may match title, description or buyer. Keywords are not translated. Empty means all.
noticeTypes["tender", "award"]Also prior_information and other; coverage varies by source.
maxResults10Per source, after filtering, deduplication and alert suppression. Maximum 10,000 per source.
countries["IE", "GB"]ISO country codes. TED matches buyer country; national feeds use their procurement jurisdiction.
cpvCodes / unspscCodes["72"] / ["43"]Codes or numeric prefixes. A match in either selected code system is enough. Sources without either scheme are skipped.
currency, minValue, maxValueEUR, 100000, 5000000Currency is required for a value range. Estimates for tenders; award values for awards. No exchange-rate conversion.
publishedWithinDays30Rolling window. Use publishedFrom and publishedTo for an inclusive YYYY-MM-DD range, up to 365 days.
deadlineFrom / deadlineToYYYY-MM-DDInclusive closing-date window; records without a deadline are excluded.
openOnlytrueOnly tenders with a known, non-expired deadline. Does not exclude awards or prior-information notices.
deduplicatetrueExact notice identities across selected sources, not similar titles. Different publication versions stay distinct.
mode / stateStorenew / procurement-alertsNamed persistent state; first run delivers the current matches, later runs suppress identities already delivered.
maxScannedPerSource5000Before filters. Increase for a sparse search; maximum 50,000.
maxRequestsPerSource120Includes retries. Maximum 150; 429 and 503 stop that source.

Output

Each result is one row in the run's dataset (download it as JSON, CSV, Excel, XML or HTML, or read it through the API). An example row (values shortened):

{
"kind": "notice",
"verdict": "Award notice — GBP 120,000.00",
"source": "uk_find_tender",
"noticeId": "100001-2026",
"title": "Building roof replacement",
"buyer": "Example Public Buyer",
"country": "GB",
"noticeType": "award",
"cpvCodes": [
"45261900",
"45260000",
"45261210",
"45261910",
"45261920"
],
"estimatedValue": null,
"currency": null,
"published": "2026-10-23T19:46:24+01:00",
"deadline": null,
"procedure": "Restricted procedure",
"awardWinner": "Example Services Ltd",
"awardValue": 120000.0,
"awardCurrency": "GBP",
"sourceUrl": "https://procurement.example/notices/100001-2026"
}

This example comes from the real UK award test on 25 October 2026. Organisation and supplier names, the notice identifier and site address have been replaced; the title has been paraphrased. Dates, classifications and amounts are from that delivered row. SUMMARY records source coverage, any free failures and the charged events.

Pricing

  • $0.003 per delivered notice ($3 per 1,000), whatever the source or connection route.
  • These are the same prices on every Apify plan. There is no AI step or separate AI bill.
  • Failures, no-match notes, skipped duplicate notices and previously delivered alert notices have no notice charge.
  • Apify’s $0.00005 start charge counts towards the buyer’s Maximum cost per run.

What typical jobs cost at the list price:

JobCost
10 notices$0.03005 including the start charge
100 notices$0.30005 including the start charge
2,000 notices$6.00005 including the start charge
No delivered notices$0.00005 start charge; no notice charges

Set Maximum cost per run to control the total. At least $0.00305 covers one notice and Apify’s $0.00005 start charge. Free notes still appear after the limit.

Tips

  • Prefer CPV or UNSPSC codes when terminology varies between countries. Do not use one classification system as a substitute for the other.
  • Use award mode when researching suppliers and contract values. An award can retain an old tender closing date; that does not make it an open opportunity.
  • For alerts, allow a publication window long enough to overlap feed updates. Only delivered identities are remembered, so an incomplete run does not mark unseen notices as processed.
  • Increase the scan limit when a local filter is very selective. SUMMARY distinguishes a complete no-match search from an incomplete portion of a feed.
  • Use the source link to check the current notice and submission instructions. The Actor does not submit bids or download restricted documents.

Use it through the API

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("zaiq/government-tenders-scraper").call(run_input={"sources": ["ted"], "keywords": ["software"], "maxResults": 10})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('zaiq/government-tenders-scraper').call({"sources": ["ted"], "keywords": ["software"], "maxResults": 10});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

HTTP (one call, results back)

curl -X POST 'https://api.apify.com/v2/acts/zaiq~government-tenders-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{"sources": ["ted"], "keywords": ["software"], "maxResults": 10}'

Integrations and schedules

  • Schedules: run it every hour, day or week from the Apify Console (Schedules) and keep a history of results.
  • Make, Zapier, n8n, Google Sheets, Slack, Airtable: connect it through Apify's integrations, or send each finished run to a webhook.
  • Datasets: results stay in the run's dataset; export them or read them by API whenever you need them.

Use it with AI agents (MCP)

Add Apify's MCP server (https://mcp.apify.com) to Claude, ChatGPT, Cursor, VS Code or any MCP client. The agent can find this Actor and run it for you: ask it for "recent software tenders with deadlines and disclosed values from the selected official sources". AI agents can also pay for runs directly through Apify's agentic payments.

Limits

  • Coverage is limited to notices the named feeds publish. This is not a complete worldwide database of every government contract.
  • Australia’s open API supplies awarded contract notices, not live approaches to market. Canada’s tender coverage is the current open federal file, not its full historical archive. GETS is the current-tender RSS feed and does not provide structured awards or contract values.
  • US federal rows are public search records and notice links. Use the separate SAM.gov Actor when you need full notice details and attachment lists.
  • Some sources do not support keyword, code or value search server-side. Those filters are applied to the records read within the scan, request and time limits. A limited scan is reported as incomplete.
  • A source stops after 150 requests, ten minutes of source time, or a response above 64 MiB. Limits and malformed records are listed in SUMMARY. A rate-limit response stops that source without rotating addresses to evade its cooldown.
  • Canada uses direct then datacenter routes only. Its bulk files are too large for an economical residential fallback at these notice prices. If both routes are refused, it returns a free note.
  • Other feeds try direct, datacenter, then fresh residential sessions when an address is refused or expected data is missing. A failed final route remains a visible source issue. No CAPTCHA is solved and no login is attempted.
  • Exact shared notice IDs support cross-portal deduplication. Notices lacking shared identifiers can remain separate even if their titles look similar. Tender and award stages are not merged merely because they concern the same procurement.
  • A value filter excludes undisclosed amounts. Canada’s zero placeholders remain in the raw amount fields and are not advertised as free contracts. Currencies are never combined across currencies.
  • TED’s search API returns lot fields as independent lists. The headline deadline is the earliest available lot deadline; use the linked official XML for complete lot-level relationships.
  • New-notice mode remembers up to 100,000 identities per filter profile. It detects unseen notices within the configured window, not arbitrary historical changes outside it. Store retention, concurrent runs or an evicted identity can cause a notice to appear again. Use sequential schedules.
  • The default input was verified with 10 notices in about five seconds locally. A 2,200-notice pull was also checked. Source response times and availability vary.

FAQ

Do I need accounts on the procurement websites?

No. The Actor reads public signed-out feeds. A linked procurement portal may require registration to obtain bidding documents or submit a bid; the Actor does not do that.

Does it cover all of Europe?

It covers notices published on TED, including buyers in EU and EEA countries and other jurisdictions represented there. National contracts below publication thresholds may appear only in their own portals. France additionally has a separate BOAMP adapter.

Can I search several countries together?

Yes. Select the sources and countries, then apply the same notice, code, value and deadline filters. The result limit is per source.

Why is a field empty?

A source may not publish that field, or it may be absent in an individual notice. The Actor preserves nulls rather than estimating a budget, winner, currency or closing time.

How do updates differ from new notices?

The state tracks published notice identities. A new release or publication version can be new; an in-place edit retaining the same identity is suppressed. This is a new-notice alert feed, not a full change-history service.

Is a completed run always exhaustive?

No. The run can finish successfully after delivering the requested number of rows. SUMMARY.complete and each source’s stopReason distinguish exhausted source windows, reached limits and source failures.

What happens after a restart?

Stable delivery IDs are read from the existing dataset. Already delivered rows are neither written nor charged again. Pending alert identities are recovered from those delivered rows.

Are there extra charges for documents or AI?

No documents are downloaded and no AI model is used. Only the notice events and Apify’s start charge apply.

  • sam-gov-scraper: US federal notices with full details and attachment links

Support

Questions, a site that changed, or a field you need? Open an issue on this Actor's Issues tab: we answer there, usually within a day.


Also found as: government tenders scraper, public procurement API, tender notices, contract awards, TED tenders, UK procurement notices, CPV search, UNSPSC search, new tender alerts.