Australian Government agencies publish the contracts they award on AusTender, the government's procurement site, which the Department of Finance runs. Every contract at or above the reporting threshold appears there as a contract notice, and notices can later be amended. The data is open, and AusTender has an API that returns it in the Open Contracting (OCDS) format.
I built an Apify Actor that reads those contract notices and returns one fixed row per notice: AusTender Contract Notices. You can look up notices by id, search by date and filters, or run a daily alert that returns only notices it has not sent before.
It is independent: not affiliated with or endorsed by the Department of Finance or AusTender.
What the data is
AusTender materials are released by the Department of Finance under the Creative Commons Attribution 3.0 Australia licence (CC BY 3.0 AU). Only contracts at or above the reporting threshold are published on AusTender: A$10,000 for most agencies, higher for corporate Commonwealth entities (Commonwealth Procurement Rules, paragraph 7.18). These are contract awards and their amendments. They are not open tenders.
What a row holds
One row per notice or amendment, in a fixed field order. This is the README's sample, shortened to the main fields:
| cnId | agency | value | currency | contractStart | contractEnd | publishedAt | procurementMethod |
|---|---|---|---|---|---|---|---|
| CN4280221 | National Indigenous Australians Agency | 44490.6 | AUD | 2026-09-22T14:00:00Z | 2027-06-29T14:00:00Z | 2026-10-01T23:51:13Z | Limited tender |
The full row also has these fields:
-
parentCnId(the parent notice for an amendment, otherwise null),ocidandreleaseId; -
title, the agency's contract reference as published, andunspscCodes; -
limitedTenderExempt, the notice's exemption flag as published; -
dateSigned,lastModifiedAtandamendments(the number of amendments); -
noticeUrl, which opens the notice on the AusTender API; -
alertFingerprint(alert mode only), plusattributionandlicence, which carry the credit line on every row.
What is left out
Version 1 outputs no supplier's name, legal name, ABN or party id, and has no supplier filter. The notice link (noticeUrl) opens the notice on the AusTender API, which does name the supplier.
A notice's description (its subject line) can name a person, so it is never output and there is no keyword search. The title field is the agency's contract reference, not a subject. It is output only when it is reference-shaped: it contains a digit, contains no whitespace and is at most 40 characters. Otherwise it is null. Contact details and addresses are never read.
If a notice names you, or your business as a sole trader, the README says you can ask for it to be left out by emailing info@yappman.com with the CN id; the Actor acts on a request within one month.
Three modes
-
Lookup (
cnIds): up to 20 CN ids, such asCN4280221, or an amendment id such asCN4271813-A1. Each returns the latest version of its notice, with its amendment count. An id AusTender does not know is reported as not found and costs nothing. -
Search: a date range of up to 92 days (default 31) on one of four dates (
dateType:contractPublished,contractLastModified,contractStartorcontractEnd). Filters areagencies,unspscCodes,valueMinandvalueMax(in AUD),procurementMethods(Open tender,Limited tender,Prequalified tender), and contract start and end dates. -
Alert (
alertId): run it daily. Each run reads the last 14 days of contract last-modified dates, so amendments are caught, and returns only the notices this alert has never sent before. An alert keeps what it has sent in your own key-value store, named after the alert. Do not put a person's name inalertId.
An alert sends at most maxItems new notices a run, newest first, so narrow it with filters and set maxItems for its expected volume. The README says unfiltered daily volume is in the high hundreds.
Example input
A search for one agency's larger contracts published in October 2026:
{
"mode": "search",
"dateType": "contractPublished",
"dateFrom": "2026-10-01",
"dateTo": "2026-10-31",
"agencies": ["National Indigenous Australians Agency"],
"valueMin": 100000,
"procurementMethods": ["Limited tender"],
"maxItems": 50
}
And from Python, with apify-client and an Apify token:
import os
from decimal import Decimal
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yappman/au-contract-notices").call(
run_input={
"mode": "lookup",
"cnIds": ["CN4280221"],
},
max_total_charge_usd=Decimal("0.01"),
)
for row in client.dataset(run.default_dataset_id).iterate_items():
print(row["cnId"], row["agency"], row["value"], row["currency"], row["procurementMethod"])
What it costs
Pay per event: one notice event for each row returned, in every mode. On the Apify Free plan that is $0.002 per notice, which is $2.00 per 1,000. It is $0.0018 on Bronze, $0.0016 on Silver and $0.0012 on Gold and above. There is no start or run fee, so a run that returns no notices costs nothing.
Worked examples on the Free plan, from the README:
- a Console default run (the form starts
maxItemsat 3) costs up to $0.006; - one notice looked up costs $0.002;
- through the API,
maxItemsdefaults to 1,000, so a run with nomaxItemscosts up to $2.00. Set it; - an unfiltered alert with
maxItems1000 costs up to $2.00 a day.
When not to use it
This is not legal or procurement advice, and the Actor does not claim to be complete. Only contracts at or above the reporting threshold are on AusTender at all. AusTender materials are subject to change and should be verified on the AusTender website (www.tenders.gov.au). Because supplier names are left out and there is no keyword search, it will not tell you who won a contract; the notice link on AusTender does.
Source and credit
The output carries this credit on every row:
- AusTender materials are released by the Department of Finance. AusTender materials are subject to change and should be verified on the AusTender website to ensure the information is up to date and correct: www.tenders.gov.au. Derived and modified by Yappman Data from AusTender contract notices: fields selected, renamed and redacted, and supplier names and identifiers left out.
- Licensed under CC BY 3.0 AU: https://creativecommons.org/licenses/by/3.0/au/
The Store page has the full input reference: yappman/au-contract-notices.
Top comments (0)