Ireland eTenders Opportunities Scraper avatar

Ireland eTenders Opportunities Scraper

Pricing

Pay per event

Go to Apify Store
Ireland eTenders Opportunities Scraper

Ireland eTenders Opportunities Scraper

Discover current Irish public procurement Calls for Tenders from the official eTenders portal, with qualification fields, pagination, filters, and source links.

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

21 days ago

Last modified

Categories

Share

Discover current Irish public procurement opportunities from the official eTenders portal.

The Actor turns the public Calls for Tenders (CfT) listing into structured records for bid discovery, qualification, alerts, spreadsheets, databases, and procurement-intelligence feeds.

It runs with anonymous HTTP requests and does not require an eTenders account, a browser, or a proxy.

What does Ireland eTenders Opportunities Scraper do?

The Actor scans the official current-opportunities listing and saves one dataset item for every accepted Call for Tenders.

It can:

  • follow the portal's paginated current-CfT results;
  • stop at a user-selected record or page limit;
  • filter by keyword, contracting authority, displayed status, publication date, and submission deadline;
  • process a public eTenders CfT resource URL directly;
  • deduplicate records by the stable eTenders CfT resource ID;
  • return notice-PDF and source links for verification;
  • retry bounded transient website failures without hiding terminal errors.

The Actor does not submit tenders, log into supplier accounts, or download restricted tender documents.

Who is it for?

Suppliers and bid teams can build a daily feed of newly published opportunities and review deadlines prior to deciding which bids to pursue.

Business-development consultants can monitor opportunities for a client sector or a named public authority.

Procurement-intelligence teams can ingest stable structured records instead of repeatedly copying a legacy HTML table.

Data and automation teams can send results to Google Sheets, Airtable, a CRM, a warehouse, Slack, or email through Apify integrations and webhooks.

Why use this Actor?

The source is the official Ireland eTenders portal rather than a general web-search index.

Important qualification fields are returned together, including the authority, description, procedure, deadline, status, public notice link, and estimated value when the portal publishes them.

Only accepted records are charged and saved. Duplicate CfT IDs within one run are not emitted twice.

The implementation is HTTP-first, so it avoids browser overhead while retaining links back to each official record.

What Ireland eTenders data can I extract?

FieldMeaning
cftIdOfficial eTenders CfT resource identifier
titleCall for Tenders title
authorityPublishing contracting authority
descriptionPublic opportunity description when available
publishedAtPublication date/time as displayed in Irish local time
submissionDeadlineSubmission deadline as displayed in Irish local time
procedureProcurement procedure, such as Open
statusCurrent status displayed in the listing
noticePdfUrlPublic contract-notice PDF link when present
awardDateDisplayed award date, usually null for open opportunities
estimatedValueEurPublished estimated value parsed as a number
cycleeTenders cycle number when shown
detailUrlCanonical official CfT detail URL
sourceUrlExact listing or detail page used
pageNumberListing page number, or null for a direct detail URL
scrapedAtNormalized ISO 8601 UTC extraction timestamp

Source dates remain in the portal's DD/MM/YYYY display format so no Irish local-time assumption is lost.

How to scrape current Ireland eTenders opportunities

  1. Open the Actor in Apify Console.
  2. Leave eTenders URLs at its official current-opportunities prefill, or remove it to use the same default automatically.
  3. Set Maximum opportunities to the number of accepted records you need.
  4. Optionally add a keyword, authority, status, or date window.
  5. Set Maximum listing pages high enough for selective filters.
  6. Click Start.
  7. Open the Tender opportunities dataset view.
  8. Export JSON, CSV, Excel, XML, or connect an integration.

A quick broad run:

{
"maxItems": 20,
"maxPages": 5
}

Input parameters

startUrls

Optional official www.etenders.gov.ie current-opportunities listing URLs or public prepareViewCfTWS.do?resourceId=... URLs.

Leave the field empty to scan the current Calls for Tenders listing.

Unsupported domains and paths fail closed instead of being fetched.

keyword

Case-insensitive text matched against the CfT ID, title, and description.

Example: services.

authority

Case-insensitive substring matched against the contracting authority.

Example: University of Galway.

status

Case-insensitive substring matched against the displayed status.

Example: Tender Submission.

Publication and deadline filters

publishedFrom, publishedTo, deadlineFrom, and deadlineTo use inclusive YYYY-MM-DD dates.

Records without the date needed by an active date filter do not match that filter.

Pagination controls

startPage selects the first listing page.

maxPages bounds how many 10-record listing pages are fetched per listing source.

maxItems bounds how many accepted records are saved across all sources.

Output example

The following shape reflects a real current listing record, shortened only in its description:

{
"cftId": "8724059",
"title": "GALW/COSE1847/26 Conducting technical and pre-clinical research and development of a novel cardiovascular medical device.",
"authority": "University of Galway (ID 1400)",
"description": "The University of Galway are developing a novel technology...",
"publishedAt": "28/07/2026 03:12:20",
"submissionDeadline": "25/08/2026 12:00:00",
"procedure": "Open",
"status": "Tender Submission",
"noticePdfUrl": "https://www.etenders.gov.ie/epps/cft/downloadNoticeForAdvSearch.do?resourceId=8724059",
"awardDate": null,
"estimatedValueEur": 350000,
"cycle": 1,
"detailUrl": "https://www.etenders.gov.ie/epps/cft/prepareViewCfTWS.do?resourceId=8724059",
"sourceUrl": "https://www.etenders.gov.ie/epps/quickSearchAction.do?searchType=cftFTS&latest=true&d-3680175-p=1",
"pageNumber": 1,
"scrapedAt": "2026-07-28T07:31:17.099Z"
}

Fields can be null when the portal does not publish them.

A direct detail URL provides only fields available on that detail page. Listing-only values such as publication time, status, award date, and cycle can therefore be null.

How much does it cost to scrape Ireland eTenders opportunities?

This Actor uses pay-per-event pricing:

  • $0.005 once per run;
  • a tiered item event charge for each accepted dataset item produced;
  • rejected, duplicate, failed, and filtered-out records have no item event charge.
Pricing tierPrice per opportunity
FREE$0.000041071
BRONZE$0.000035714
SILVER$0.000027857
GOLD$0.000021429
PLATINUM$0.000014286
DIAMOND$0.000010000

At the FREE tier, 20 records cost about $0.00582 including the run fee.

At the FREE tier, 100 records cost about $0.00911 including the run fee.

At the BRONZE tier, 1,000 records cost about $0.04071 including the run fee.

The final total is shown in Apify Console prior to export. Platform plan and integration costs, if any, are separate.

Monitoring and integration workflows

Daily bid alerts

Schedule the Actor once per day with a sector keyword and a deadline lower bound.

Use a webhook or Zapier/Make integration to notify a bid channel when a new CfT ID appears.

Contracting-authority watchlist

Create separate tasks for authorities important to your sales territory.

Send each dataset to a dedicated Sheet or CRM view.

Procurement data feed

Fetch dataset items through the Apify API after each run.

Use cftId as the external deduplication key in your warehouse.

Qualification queue

Filter for active tender-submission records, then sort downstream by submissionDeadline or estimatedValueEur.

Always verify final requirements and dates on detailUrl prior to acting.

Use the Actor with the Apify API

Replace <APIFY_TOKEN> with your token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~ireland-etenders-opportunities-scraper/runs?token=<APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keyword":"services","status":"Tender Submission","maxItems":50,"maxPages":20}'

To wait for completion and receive dataset items:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~ireland-etenders-opportunities-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"authority":"University of Galway","maxItems":20,"maxPages":20}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/ireland-etenders-opportunities-scraper').call({
keyword: 'services',
status: 'Tender Submission',
maxItems: 50,
maxPages: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("automation-lab/ireland-etenders-opportunities-scraper").call(
run_input={
"keyword": "services",
"status": "Tender Submission",
"maxItems": 50,
"maxPages": 20,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use Ireland eTenders data through MCP

Add the Actor to Claude Code:

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

Claude Desktop, Cursor, and VS Code

Use this JSON configuration in Claude Desktop, Cursor, or VS Code:

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

Example prompts:

  • “Find current Irish public tenders mentioning professional services.”
  • “Collect active University of Galway Calls for Tenders and summarize their deadlines.”
  • “Create a table of Irish tender title, authority, estimated value, deadline, and official source URL.”

MCP calls use the same Actor input, output, and pricing contract as Console runs.

Tips for reliable results

Start with a broad, low maxItems run to inspect current wording used by the portal.

Increase maxPages when a selective filter may match records beyond the first few pages.

Use one simple keyword or authority substring rather than a long sentence.

For incremental monitoring, deduplicate downstream on cftId and retain scrapedAt as observation time.

Keep the official detailUrl and noticePdfUrl in downstream records for auditability.

Limits and source behavior

The Actor reads the portal's public current-CfT surfaces; it does not guarantee that every historical or restricted procurement record is present there.

The listing currently exposes 10 rows per page. Portal pagination or markup can change.

The website can temporarily return network errors, 403, 429, or 5xx responses. The Actor retries those responses a bounded number of times and fails if recovery does not occur.

A successful no-result run is possible when filters are narrower than the current public data.

Direct detail inputs have fewer listing-specific fields.

The Actor deliberately does not offer an automatic residential proxy fallback, so there is no unmeasured proxy mode or proxy transfer charge.

Responsible use and legality

This Actor accesses publicly visible procurement information.

You are responsible for complying with eTenders terms, procurement rules, applicable law, database rights, and your organization's data-retention policy.

Do not use the Actor to overload the portal, bypass authentication, misrepresent tender information, or automate prohibited submissions.

Public procurement records can change after extraction. Confirm dates, eligibility, documents, clarifications, and submission instructions on the official source prior to making a commercial decision.

Troubleshooting

Why did my run return no records?

Remove filters and run with maxItems: 10 and maxPages: 2.

If broad discovery returns records, restore filters one at a time. Remember that date filters are inclusive and use YYYY-MM-DD.

Why are fields null for my direct URL?

The public detail page does not repeat every value from the current-opportunities listing. Use a listing input when you need publication time, status, award date, or cycle.

Why did the run fail after retries?

Inspect the run log for the URL and HTTP status. A continuing 403, 429, 5xx, unexpected content type, or changed table shape is treated as an error rather than a misleading empty result.

Retry later if the official portal was unavailable. Contact Actor support with the run link if a broad official listing still fails.

Can I use arbitrary URLs?

No. The Actor accepts only supported public www.etenders.gov.ie listing and CfT detail paths.

Choose this Actor when Ireland's official eTenders CfT source is the required market.

FAQ

Does it require an eTenders login?

No. Version 0.1 uses anonymous public listing and detail pages.

Does it use a browser or proxy?

No. It uses lightweight HTTP requests and HTML parsing.

Can it paginate beyond the first page?

Yes. Set startPage, maxPages, and maxItems for the desired bounded scan.

Are filtered-out opportunities charged?

No item event is charged for filtered, duplicate, rejected, or failed records. The one-time run-start event still applies.

Are source dates converted to UTC?

No. publishedAt and submissionDeadline preserve the Irish portal display values. Only scrapedAt is normalized to ISO 8601 UTC.

Does it submit or manage bids?

No. It is a discovery and extraction Actor. Tender submission remains on the official procurement workflow.