AusTender Current Tender Opportunities Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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
| Field | Meaning |
|---|---|
atmId | Official ATM reference |
title | Opportunity title |
agency | Publishing agency |
unspscCode | Eight-digit UNSPSC code |
category | Human-readable UNSPSC category |
publishDate | ISO 8601 publication date |
closeDate | Closing time normalized from ACT local time to UTC |
closeDateRaw | Closing time exactly as represented by the source |
closeTimezone | Australia/Sydney, used for normalization |
locations | Listed states, territories, or named locations |
atmType | Request for Tender, Request for Information, and similar type |
multiAgencyAccess | Multi-agency access flag |
panelArrangement | Panel arrangement flag |
multiStage | Multi-stage process flag |
description | Full public description |
conditionsForParticipation | Published supplier conditions |
timeframeForDelivery | Published delivery timeframe |
addressForLodgement | Response lodgement instructions |
contactName | Public contact officer or team |
contactEmail | Public contact email |
documentsPageUrl | AusTender document index URL |
addendaUrl | Linked addenda index URL, when present |
lodgementUrl | AusTender response lodgement page |
detailUrl | Canonical public ATM URL |
feedUrl | Discovery feed URL, or null for an explicit detail input |
scrapedAt | Record 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 opportunities | Estimated 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
- Open the Actor in Apify Console.
- Leave
startUrlsempty to use the official current feed. - Set
maxItemsto the maximum number of matching opportunities you need. - Keep
includeDetailsenabled for complete records. - Add optional keywords, agencies, locations, or closing bounds.
- Click Start.
- Open the Tender opportunities dataset view.
- 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.xmlhttps://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
- Save a task with your qualification filters.
- Add a daily schedule in Apify Console.
- Connect the dataset to your preferred integration.
- Use
atmIdordetailUrlas the stable downstream deduplication key. - Alert the bid owner when
closeDateis 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 ApifyClientimport osclient = 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().itemsprint(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.
Is it legal? Responsible use
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.
Related Actors
- AusTender Contract Awards Scraper — awarded Australian Government contracts, buyers, suppliers, dates, and amounts.
- Singapore GeBIZ Tender Opportunities Scraper — current Singapore public-sector tender opportunities.
- New Zealand GETS Tender Opportunities Scraper — current New Zealand Government Electronic Tenders Service opportunities.
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.