# AusTender Government Tenders (Australia) (`resourceful_playbook/austender-opportunities`) Actor

Current Australian Government tenders (ATMs) from AusTender: ATM ID, title, agency, UNSPSC category, close date, publish date, location, ATM type and link. Filter by keyword, agency, category or close date. Optional contract notices from the official OCDS API.

- **URL**: https://apify.com/resourceful_playbook/austender-opportunities.md
- **Developed by:** [AU Data Tools](https://apify.com/resourceful_playbook) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## AusTender Government Tenders (Australia)

Current Australian Government tenders, or approaches to market (ATMs), from [AusTender](https://www.tenders.gov.au), returned as clean JSON. Filter by keyword, agency, category or closing date. You can also pull recently awarded contract notices from AusTender's official OCDS API.

### What you get

```json
{
  "recordType": "atm",
  "atmId": "S-EST11265",
  "title": "Lavarack Barracks Building works, QLD",
  "agency": "Department of Defence - DSRG",
  "categoryName": "Building construction and support and maintenance and repair services",
  "unspscCode": "72100000",
  "closeDate": "2026-10-26T12:00:00+11:00",
  "closeDateText": "26-Oct-2026 12:00 pm",
  "publishDate": "2026-09-10",
  "lastUpdated": "2026-10-19T14:48:00+11:00",
  "location": ["QLD"],
  "atmType": "Request for Tender",
  "description": "This project involves the establishment of a new interim (semi-permanent) modular facility...",
  "appReference": "SEG-EWP-FY2025/26-102",
  "multiAgencyAccess": false,
  "panelArrangement": false,
  "multiStage": false,
  "contactEmail": "tenders@example.com.au",
  "documentsUrl": "https://www.tenders.gov.au/Atm/ViewDocuments/284574a4-fb3c-459c-a7af-b9a0e9b6722a",
  "url": "https://www.tenders.gov.au/Atm/Show/284574a4-fb3c-459c-a7af-b9a0e9b6722a",
  "source": "tenders.gov.au"
}
```

Close dates are in ACT local time (AEST/AEDT), given both as ISO 8601 with the UTC offset and as the original text. With **Also return contract notices** turned on, records with `recordType: "contractNotice"` are added. They include the CN ID, agency, supplier names and ABNs, contract value, period, UNSPSC code and procurement method.

### Use cases

- Daily tender alerts for your industry (schedule it with a `keyword` or `category`)
- Lead generation for consultancies, IT providers, builders and suppliers who sell to government
- Pipeline tracking: which agencies are going to market, and when bids close
- Market research on who wins government contracts, and for how much (contract notices)
- Giving an AI agent a tool to answer "what federal tenders are open for X right now?"

### Input

| Field | Notes |
|---|---|
| `keyword` | Matches ATM ID, title, short description, agency or category (case-insensitive) |
| `agency` | Partial match, e.g. `defence`, `home affairs` |
| `category` | Partial UNSPSC category name match, e.g. `software`, `building` |
| `closingAfter` | Only ATMs closing on or after this date, e.g. `2026-11-01` |
| `maxResults` | Cap on ATMs returned (default 30; 0 = all current ATMs, usually 100-200) |
| `includeDetails` | Open each ATM page for UNSPSC code, publish date, location, type and generic agency contact (default on) |
| `includeContractNotices` | Also return recently published contract notices (default off) |
| `contractNoticeDays` | Contract notice look-back window, 1-31 days |

### Pricing

Pay only for what you use: **US$0.005 per run + US$0.001 per result** (about US$1 per 1,000 results). The free Apify plan's monthly credits cover thousands of results, so you can try it at no cost.

### Feedback

Found a bug or want a field added? Open an issue on the **Issues** tab and it will be looked at quickly.

### Notes

ATMs are listed soonest-closing first. Only public ATM information is returned; tender documents and lodgement still require an AusTender account on the official site. For privacy, individual officer names are never returned: `contactEmail` and `contactPhone` are only filled when they are generic agency mailboxes or general enquiry numbers (1300/1800/13), otherwise they are `null`.

**Licence and reuse:** AusTender's general website material is licensed under Creative Commons Attribution 3.0 Australia (CC BY 3.0 AU), but Approach to Market (ATM) material is expressly excluded from that licence. Before reusing or republishing ATM content, check AusTender's terms of use and the conditions of each ATM. Contract notice data comes from AusTender's public OCDS API.

This Actor is not affiliated with AusTender or the Australian Government.

# Actor input Schema

## `keyword` (type: `string`):

Only keep ATMs whose ID, title, short description, agency or category contains this text (case-insensitive). Leave empty for all current ATMs.

## `agency` (type: `string`):

Partial, case-insensitive agency match, e.g. Defence, Bureau of Meteorology, Home Affairs.

## `category` (type: `string`):

Partial, case-insensitive UNSPSC category name match, e.g. software, building construction, medical. For contract notices, an 8-digit UNSPSC code prefix (e.g. 43) is used instead.

## `closingAfter` (type: `string`):

Only keep ATMs closing on or after this date/time, e.g. 2026-11-01 or 2026-11-01T12:00:00+11:00.

## `maxResults` (type: `integer`):

Maximum number of ATMs to return (and, separately, contract notices). 0 = no limit.

## `includeDetails` (type: `boolean`):

Open each ATM's page for the UNSPSC code, publish date, location, ATM type, full description and contact details. Turn off for a faster, lighter run.

## `includeContractNotices` (type: `boolean`):

Also return recently published contract notices (awarded contracts) from AusTender's official OCDS API.

## `contractNoticeDays` (type: `integer`):

How many days back to read contract notices (1-31).

## Actor input object example

```json
{
  "keyword": "",
  "agency": "",
  "category": "",
  "closingAfter": "",
  "maxResults": 30,
  "includeDetails": true,
  "includeContractNotices": false,
  "contractNoticeDays": 1
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("resourceful_playbook/austender-opportunities").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("resourceful_playbook/austender-opportunities").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call resourceful_playbook/austender-opportunities --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,resourceful_playbook/austender-opportunities"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/HChWPqU28txqSr312/builds/YGfXM5dEgQ86BV27N/openapi.json
