🇦🇺 AusTender Award Watch — Who Won Which Federal Contract
Pricing
from $13.40 / 1,000 procedure deltas
🇦🇺 AusTender Award Watch — Who Won Which Federal Contract
Watch Australian federal contract awards from the official AusTender OCDS API: who won which contract, for how much, and when an incumbent is replaced. Deduplicated delta-only events, seed-zero watch mode, and a source receipt on every run.
Pricing
from $13.40 / 1,000 procedure deltas
Rating
0.0
(0)
Developer
NexGen Watch
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Share
Australian federal contract awards are published, but not watchable. This turns the official AusTender OCDS API into a deduplicated, delta-only feed of who won what, for how much, and when an incumbent gets replaced.
What you get
award_notice— contract-award records with winner names/ids, incumbent keys, award value, and the linked tendertender_notice— the opportunity records behind those awards, with buyer, UNSPSC, value and deadlineprocedure_delta— watch-mode change events: new opportunity, notice updated, tender-to-award, incumbent change- Selectable date semantics via
dateType, so you can watch by contract-published date rather than one fixed field source_receipton every run — terminal state, counts, and a source-shape canary result, never billed
Use cases by team
- Incumbency & market analysts: See who is actually winning Commonwealth contracts and quantify incumbent turnover.
- Suppliers & bid teams: Learn which agencies buy your category, and at what contract values, before you bid.
- Competitive intelligence: Track a named competitor's federal wins as they publish.
- Procurement-intelligence vendors: License a bounded, deduplicated Australian award feed with an auditable receipt.
Example inputs
Recent contract awards (default window)
{"dateType": "contractPublished","maxItems": 500}
Watch one agency in watch mode
{"buyerNames": ["Department of Defence"],"watchMode": true,"baselineId": "defence-awards"}
UNSPSC targeting over an explicit window
{"dateType": "contractPublished","publishedFrom": "2026-07-01","publishedTo": "2026-07-24","unspscCodes": ["81110000"]}
📊 Sample Output
{"record_type": "award_notice","procedure_id": "austender-cn-4102887","buyer_name": "Department of Defence","title": "ICT support services","unspsc_codes": ["81110000"],"award_value_aud": 2740000,"winner_names": ["Example Systems Pty Ltd"],"incumbent_key": "example-systems-pty-ltd","linked_tender_id": "austender-atm-991204","date_type": "contractPublished","source_url": "https://www.tenders.gov.au/Cn/Show/4102887","observed_at": "2026-07-25T00:00:00Z"}
How it works
Give it a date window, a dateType, and optional buyer / UNSPSC / keyword filters. It reads the AusTender OCDS API (api.tenders.gov.au/ocds/findByDates) as an anonymous public client, normalizes each release into award_notice and tender_notice records, links awards back to their originating tender when linkAwards is on, and — in watch mode — diffs against a private baseline to emit only procedure_delta events. Every run closes with a source_receipt carrying the terminal state and a canary check on the source shape.
Pricing
| Event | Price (FREE tier) |
|---|---|
Actor start (apify-actor-start) | $0.02 flat, once per run |
Procedure delta (procedure_delta) — primary | $0.02 |
Tender notice (tender_notice) | $0.004 |
Award notice (award_notice) | $0.006 |
Source check (source_check) | $0.10, once per run |
Pay-per-event on a four-tier ladder (FREE → GOLD, with Platinum/Diamond floored at the Gold rate). Primary event procedure_delta: $0.02 / $0.018 / $0.016 / $0.0134. Notices: $0.004 / $0.0036 / $0.0032 / $0.00268 (tender) and $0.006 / $0.0054 / $0.0048 / $0.00402 (award). source_check: $0.10 / $0.09 / $0.08 / $0.067. Worked example — a watch run on FREE that finds 12 procedure deltas: $0.02 start + $0.10 source check + 12 × $0.02 = $0.36. A seed run or a genuine-zero run charges the start + source check only; receipts are never billed. New to Apify? Start free.
Run it — API, CLI, MCP
API:
curl -X POST "https://api.apify.com/v2/acts/nexgenwatch~austender-award-watch/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d @input.json
CLI:
$apify call nexgenwatch/austender-award-watch -i @input.json
MCP: expose nexgenwatch/austender-award-watch through Apify's MCP server, select it as a tool, and pass the same input object.
Related actors — App Intelligence cluster
| Actor | What it does |
|---|---|
| EU TED Tender & Award Watch | Watch EU-wide public procurement: tenders, awards, incumbent changes. |
| UK Find a Tender Watch | Watch UK tenders, award results and incumbent changes. |
| CanadaBuys Tender Watch | Watch Government of Canada tender opportunities and awards. |
| GeBIZ Tender & Award Watch | Watch Singapore GeBIZ tenders open, change, close and award. |
| MAS Directory Change Watch | Watch Singapore MAS financial-institution licence changes. |
Compliance & honest limits
- Public, logged-out official source only — no API key, login, cookie, CAPTCHA, or access-control defeating.
- Client-side targeting: filters are applied to the bounded window this actor fetched, not pushed into the upstream query.
- Watch mode's first run seeds a private baseline and emits zero deltas by design — deltas start on the second run.
- A source-confirmed empty window is
SUCCEEDED-0: GENUINE_EMPTY; truncated runs arePARTIAL; exhausted retries areBLOCKED. source_receiptrecords are always emitted and are never billed.
FAQ
Where does the data come from?
The official Australian Government AusTender (tenders.gov.au) OCDS API public, logged-out feed. No API key, login, or cookie is used, and no access control is defeated.
What does watch mode actually do?
The first run stores a private baseline and emits zero deltas. Every later run emits only procedure_delta events keyed on the source-native procedure id — new opportunity, notice updated, tender-to-award, and incumbent change.
Does zero results mean I was blocked?
No, and you never have to guess. Every run emits a source_receipt with an explicit terminal state: NORMAL, GENUINE_EMPTY, PARTIAL, or BLOCKED, plus a source-shape canary result.
What am I charged when nothing changed?
The $0.02 start and the $0.10 source check. Deltas are the primary billable unit, so a quiet window is cheap by design. Receipts are never billed.
How do I bound the window?
Use publishedFrom / publishedTo — it defaults to a recent bounded window rather than attempting the full historical archive.
Can I track a specific buyer or category?
Yes — that is the main targeting path. Pass buyerNames, unspscCodes, or keywords.
Will this reconstruct the full contract history?
No. It is a bounded, deduplicated recurring feed, not a historical archive backfill. That honesty is deliberate.
Troubleshooting
- Watch mode emitted nothing? Expected on the first run — it seeds the baseline. Deltas begin on run two with the same
baselineId. - Zero records? Check the date window first, then read the
source_receipt:GENUINE_EMPTYmeans the source really had nothing in that window. - Run marked PARTIAL? Collection was truncated against
maxItemsor a retry budget. RaisemaxItemsor narrow the window and re-run. - Filters returning too little? Filters apply client-side to the fetched window, so widen the date window before widening the filters.
- Need the untouched upstream payload? Set
includeRaw: trueto carry the raw source object alongside the normalized record. - Wrong dates coming back? Set
dateType— it selects which source date field the window applies to and defaults tocontractPublished.
About
Part of the NexGenData procurement-watch family — one honest, deterministic contract across UK, EU, Canadian, Australian and Singaporean public procurement. Built by NexGenData. Questions or need a custom feed? Open an issue on the Actor page.