AusTender Current Tender Opportunities Scraper avatar

AusTender Current Tender Opportunities Scraper

Pricing

Pay per event

Go to Apify Store
AusTender Current Tender Opportunities Scraper

AusTender Current Tender Opportunities Scraper

Discover and enrich current Australian Government tender opportunities from the official AusTender feed and public ATM pages.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Find open Australian Government bid opportunities before they close.

This Actor reads the official AusTender current Approaches to Market (ATM) RSS feed and enriches each opportunity from its public detail page. It returns structured tender references, agencies, categories, dates, locations, descriptions, participation conditions, lodgement instructions, public contacts, and source links.

Use it for daily bid discovery, procurement intelligence, supplier alerts, opportunity qualification, and CRM lead feeds.

What this Actor does

  • Discovers current opportunities from the official AusTender RSS feed.
  • Accepts specific public AusTender ATM detail URLs.
  • Enriches feed entries with the complete public detail-page fields.
  • Normalizes ACT local closing times to ISO 8601 UTC.
  • Filters by keyword, agency, location, and closing window.
  • Deduplicates opportunities by their stable AusTender detail URL.
  • Saves typed records to the run's default dataset.
  • Charges only for records actually saved.

The default workflow scans the current feed. No login, API key, browser, or proxy is normally required.

Who is it for?

Government suppliers

Monitor new opportunities relevant to your products and services without repeatedly checking AusTender by hand.

Bid and proposal teams

Build a scheduled shortlist with closing dates, conditions, public contacts, and lodgement instructions.

Procurement intelligence vendors

Feed normalized current Australian Government opportunities into search, enrichment, alerting, or analytics products.

Consultants and business developers

Identify timely public-sector leads by agency, state or territory, category, and keyword.

Data and automation teams

Send records to Google Sheets, Airtable, a warehouse, Slack, email, a CRM, or an internal tender portal.

Why use this Actor

AusTender's RSS feed is excellent for discovery, but it contains only a small subset of each opportunity. This Actor joins feed discovery with public detail-page enrichment.

It is deliberately HTTP-first:

  • lower memory than browser automation;
  • fast startup and predictable output;
  • conservative request concurrency;
  • bounded retries for transient upstream failures;
  • optional Apify Proxy recovery when direct access is temporarily blocked.

This Actor covers current opportunities. For awarded contracts and supplier spend, use our related AusTender Contract Awards Scraper.

Extracted data

FieldMeaning
atmIdOfficial ATM reference
titleOpportunity title
agencyPublishing agency
unspscCodeEight-digit UNSPSC code
categoryHuman-readable UNSPSC category
publishDateISO 8601 publication date
closeDateClosing time normalized from ACT local time to UTC
closeDateRawClosing time exactly as represented by the source
closeTimezoneAustralia/Sydney, used for normalization
locationsListed states, territories, or named locations
atmTypeRequest for Tender, Request for Information, and similar type
multiAgencyAccessMulti-agency access flag
panelArrangementPanel arrangement flag
multiStageMulti-stage process flag
descriptionFull public description
conditionsForParticipationPublished supplier conditions
timeframeForDeliveryPublished delivery timeframe
addressForLodgementResponse lodgement instructions
contactNamePublic contact officer or team
contactEmailPublic contact email
documentsPageUrlAusTender document index URL
addendaUrlLinked addenda index URL, when present
lodgementUrlAusTender response lodgement page
detailUrlCanonical public ATM URL
feedUrlDiscovery feed URL, or null for an explicit detail input
scrapedAtRecord extraction timestamp

Fields unavailable on the source are returned as null or an empty array.

How much does it cost to scrape AusTender opportunities?

The Actor uses pay-per-event pricing:

  • $0.005 per run start fee;
  • $0.000041071 per saved opportunity on the Free tier, with strictly decreasing volume-tier prices down to $0.00001 on Diamond.

Failed, duplicate, rejected, and filtered-out records are not charged as items.

Example Free-tier prices:

Saved opportunitiesEstimated total
1$0.005041071
20$0.00582142
100$0.00910710

Actual current feed size changes over time. Setting maxItems controls both output volume and maximum item charges.

Getting started

  1. Open the Actor in Apify Console.
  2. Leave startUrls empty to use the official current feed.
  3. Set maxItems to the maximum number of matching opportunities you need.
  4. Keep includeDetails enabled for complete records.
  5. Add optional keywords, agencies, locations, or closing bounds.
  6. Click Start.
  7. Open the Tender opportunities dataset view.
  8. Export JSON, CSV, Excel, XML, or RSS, or connect an integration.

A useful first run is:

{
"maxItems": 20,
"includeDetails": true
}

Input parameters

startUrls

Optional array of official AusTender URLs.

Supported URL types:

  • https://www.tenders.gov.au/public_data/rss/rss.xml
  • https://www.tenders.gov.au/Atm/Show/<uuid>

Leave this empty for current-feed discovery. Unsupported hosts and page types fail closed instead of producing misleading output.

maxItems

Maximum number of matching records to save.

  • default: 100
  • minimum: 1
  • maximum: 10000

includeDetails

When true, fetch public detail pages and populate all enrichment fields.

When false, return fast feed-only records containing ATM ID, title, summary, publication date, and source links. Agency, location, and closing-date filters require detail enrichment, so the Actor rejects those filters unless includeDetails is enabled. This fail-closed validation prevents a configuration error from being mistaken for an empty result.

keywords

Optional case-insensitive OR filter across ATM ID, title, description, and category.

{
"keywords": ["cloud", "cyber", "software"]
}

agencies

Optional case-insensitive contains filter. An opportunity is retained when at least one value appears in its agency name.

{
"agencies": ["Defence", "Foreign Affairs"]
}

locations

Optional exact, case-insensitive match against source locations.

{
"locations": ["NSW", "ACT"]
}

closingAfter and closingBefore

Optional ISO 8601 closing-time bounds.

closingAfter is inclusive. closingBefore is exclusive.

{
"closingAfter": "2026-07-01T00:00:00.000Z",
"closingBefore": "2026-08-01T00:00:00.000Z"
}

proxyConfiguration

Optional Apify Proxy configuration for transient access recovery. Direct requests are cheaper and are used by default.

Output example

This shortened record reflects the Actor's current public-detail behavior:

{
"atmId": "LCD-26-0030",
"title": "Army Innovation Day 2026 (AID26)",
"agency": "Department of Defence - DSRG",
"unspscCode": "46000000",
"category": "Defence and Law Enforcement and Security and Safety Equipment and Supplies",
"publishDate": "2026-07-01T00:00:00.000Z",
"closeDate": "2026-07-27T00:00:00.000Z",
"closeDateRaw": "27-Jul-2026 10:00 am (ACT Local Time)",
"closeTimezone": "Australia/Sydney",
"locations": ["ACT", "NSW", "VIC", "SA", "WA", "QLD", "NT", "TAS"],
"atmType": "Request for Information",
"multiAgencyAccess": false,
"panelArrangement": false,
"multiStage": false,
"contactName": "SO1 Trials & Exploration",
"contactEmail": "army.innovation.day@defence.gov.au",
"documentsPageUrl": "https://www.tenders.gov.au/Atm/ViewDocuments/e6ed7412-5777-4aa5-b34f-b790add9146a",
"detailUrl": "https://www.tenders.gov.au/Atm/Show/e6ed7412-5777-4aa5-b34f-b790add9146a",
"feedUrl": "https://www.tenders.gov.au/public_data/rss/rss.xml",
"scrapedAt": "2026-07-25T00:00:00.000Z"
}

Descriptions and conditions are omitted above only to keep the example readable.

Filters and explicit URLs

Explicit ATM URLs do not bypass your filters. They follow the same normalization and qualification path as feed-discovered records.

Examples:

{
"startUrls": [
{ "url": "https://www.tenders.gov.au/Atm/Show/e6ed7412-5777-4aa5-b34f-b790add9146a" }
],
"keywords": ["autonomous"],
"maxItems": 1
}
{
"agencies": ["Defence"],
"locations": ["SA", "WA"],
"maxItems": 100,
"includeDetails": true
}

Scheduling a daily lead feed

  1. Save a task with your qualification filters.
  2. Add a daily schedule in Apify Console.
  3. Connect the dataset to your preferred integration.
  4. Use atmId or detailUrl as the stable downstream deduplication key.
  5. Alert the bid owner when closeDate is inside your review window.

The source feed represents opportunities current at run time. Keep your own historical dataset when you need change tracking or audit history.

Integration patterns

Google Sheets or Excel

Schedule a filtered run and export the default dataset. Use ATM ID as the unique key when merging daily results.

Slack or email alerts

Trigger a workflow after each successful run and format title, agency, closing date, and detail URL into an alert.

CRM opportunity creation

Map atmId to external ID, agency to account, title to opportunity name, and closeDate to the response deadline.

Data warehouse

Load JSON records into a tender fact table. Keep scrapedAt for observation time and publishDate/closeDate for source lifecycle time.

AI qualification

Pass description, conditions, category, and location into a model that scores fit against your capability statement. Keep a human in the loop for bidding decisions.

Run with the Apify API

Replace YOUR_TOKEN with an Apify API token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~austender-current-tender-opportunities-scraper/runs?token=YOUR_TOKEN&waitForFinish=300" \
-H "Content-Type: application/json" \
-d '{"keywords":["cyber"],"maxItems":20,"includeDetails":true}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/austender-current-tender-opportunities-scraper').call({
agencies: ['Defence'],
maxItems: 20,
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/austender-current-tender-opportunities-scraper').call(run_input={
'keywords': ['cloud', 'software'],
'maxItems': 20,
'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/austender-current-tender-opportunities-scraper"

Claude Desktop

Add this server object to the Claude Desktop MCP configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/austender-current-tender-opportunities-scraper"
}
}
}

Cursor

Add the same mcpServers.apify object in Cursor's MCP settings. Use the Actor-specific URL above.

VS Code

Add the server URL to your VS Code MCP configuration and authenticate with Apify when prompted.

Example prompts:

  • "Find current Defence opportunities in NSW and summarize those closing in the next 30 days."
  • "Run the AusTender Actor for cloud, cyber, and software opportunities, then create a qualification table."
  • "Fetch this ATM URL and list its participation conditions, public contact, and closing time."

Limits and source behavior

  • The Actor covers opportunities present in the official current ATM feed or supplied as explicit public detail URLs.
  • It does not scrape historical closed opportunities from search pages.
  • AusTender controls feed volume, fields, markup, and availability.
  • Public detail fields vary by opportunity, so some values are nullable.
  • Document index pages can require an AusTender login; the Actor returns their URLs but does not bypass authentication or download protected files.
  • Lodgement itself may require an account and is not automated.
  • The Actor uses at most five concurrent detail requests.
  • A changed or unrecognizable upstream response fails rather than being reported as a valid empty dataset.

Reliability and troubleshooting

Requests use realistic browser headers, content-type checks, bounded retries, and exponential backoff.

Why did my run return no records?

The current feed may have no opportunities matching all filters. Check spelling, widen the closing window, remove one filter at a time, and keep includeDetails enabled for agency, location, or closing filters.

Why did a run fail with HTTP 403 or 429?

AusTender may temporarily restrict traffic. Retry later or enable an Apify Proxy configuration. The Actor does not loop indefinitely on blocked responses.

Why are document files not included?

AusTender's document index can require a registered-user login. The Actor returns the official document/addenda URL and does not bypass the login boundary.

Why is the normalized closing date different from the displayed hour?

closeDate is UTC. closeDateRaw preserves the displayed ACT local time, and closeTimezone identifies the conversion timezone.

AusTender publishes the source opportunity and public contact information for procurement participation. Use the data for legitimate tender discovery, analysis, and supplier workflows.

You are responsible for:

  • complying with AusTender's current terms and applicable law;
  • respecting privacy and anti-spam obligations;
  • securing exported contact data;
  • verifying critical dates and conditions against the official detail page;
  • submitting responses only through authorized channels;
  • avoiding misleading, discriminatory, or abusive use.

This Actor is an independent automation tool and is not affiliated with or endorsed by the Australian Government or the Department of Finance.

FAQ

Does the Actor need an AusTender account?

No for the official current feed and public ATM details. Viewing or downloading tender documents can require registration on AusTender.

Can I scrape one opportunity?

Yes. Supply its public /Atm/Show/<uuid> URL in startUrls and set maxItems to 1.

Can I monitor only one agency?

Yes. Add one or more partial agency names to agencies and keep detail enrichment enabled.

Are keyword filters AND or OR?

Values inside keywords use OR logic. Different filter groups combine: a record must pass the keyword, agency, location, and date groups you supplied.

Does maxItems count filtered-out opportunities?

No. It limits saved matching opportunities.

Can I access CSV or Excel?

Yes. Use the dataset export controls in Apify Console or the dataset API after the run.

Is the output real-time?

It reflects the official source at run time. Schedule regular runs for monitoring; the Actor does not claim instant push updates.

Use the current-opportunities Actor for open Australian bid discovery and the contract-awards Actor for post-award supplier and spend analysis.

Support

For reproducible issues, include:

  • the Actor run URL;
  • sanitized input;
  • the affected ATM URL or ID;
  • expected versus actual behavior;
  • whether the same public page loaded in your region.

Do not include Apify tokens, passwords, private tender documents, or confidential bid information.