(ANAC) Italian Public Contracts & Tenders Scraper avatar

(ANAC) Italian Public Contracts & Tenders Scraper

Pricing

from $20.00 / 1,000 search starteds

Go to Apify Store
(ANAC) Italian Public Contracts & Tenders Scraper

(ANAC) Italian Public Contracts & Tenders Scraper

Search Italian public procurement by supplier VAT, contracting authority, CIG, CPV, province, date and value. Export available tenders, awards and winning suppliers from official ANAC data, with provenance and freshness information.

Pricing

from $20.00 / 1,000 search starteds

Rating

0.0

(0)

Developer

Monkey D. Scraping

Monkey D. Scraping

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

14 days ago

Last modified

Share

Italian Public Contracts Scraper — Tenders, Awards & Winning Suppliers

Find out who wins public money in Italy — and who spends it.

This Actor extracts Italian public procurement data: tenders (bandi di gara), contract awards (aggiudicazioni), winning suppliers with their VAT numbers, contract values, CPV categories and contracting authorities (stazioni appaltanti). Historical records are available from 2007 onwards, alongside recent official notices. Availability and update delays depend on the source publication; this Actor does not guarantee same-day coverage or awards within a fixed number of hours.

No account, no login, no manual downloads. You describe what you are looking for; you get a clean dataset back.


What you can do with it

Research recently published awards

Find available award records with the winning company, its VAT number and the amount when published. Check each record’s provenance and the run’s freshness information before using it as a recent business signal. An award does not establish a supplier’s current buying intent.

Track a company's public sector business

Enter one or more VAT numbers and search available contracts those companies were awarded — value, subject, buyer, procedure, award date. Works for competitors, prospects, partners or suppliers you are evaluating.

See everything a public body buys

Enter the tax code of a municipality, hospital, university or agency and search its available tender activity: what it puts out to tender, for how much, under which procedure, and who ends up winning.

Monitor a market segment

Filter by CPV category and province to follow a sector — construction, medical devices, IT services, catering, transport — across the whole country or in a single area.

Look up a specific contract

Paste one or more CIG codes and get the full record for each, including outcome and winners where published.

Build account research lists from award records

Filter published awards by value, date and category to identify companies for further research. An award documents a procurement outcome; it does not establish available budget, project execution, payment received or current buying intent. Verify the original record and qualify the account before outreach.


Who it's for

Sales & business developmentFind public bodies that buy what you sell, and companies that just won funded projects
Competitive intelligenceTrack competitors' public sector wins, values and buyers over time
Market research & consultingSize a segment, map suppliers, study procedure and pricing patterns
Credit & risk analysisReview published awards and tender activity; contract values do not establish revenue received or payment status
Journalism & civic researchInvestigate spending by any Italian public authority
NRRP / PNRR trackingIsolate contracts funded by Italy's National Recovery and Resilience Plan

Key terms, briefly

Italian procurement has its own vocabulary. Here is what you need to read the output.

  • CIG (Codice Identificativo Gara) — a unique 10-character code identifying a tender lot. Every public contract in Italy has one. It is the key that links a tender to its award and its winner.
  • CUP (Codice Unico di Progetto) — identifies the wider public investment project a contract belongs to.
  • Stazione appaltante — the contracting authority: the public body running the tender. Identified by its tax code (codice fiscale).
  • Aggiudicazione — the award: the decision assigning a contract to a supplier, with the final value and any discount against the base price.
  • Aggiudicatario — the winning supplier. A single contract can have several, when a consortium or a temporary grouping (RTI) wins together.
  • CPV — the European Common Procurement Vocabulary, the standard category code for what is being bought. Hierarchical: 45 is all construction works, 45112000-5 is excavation.
  • Bando di gara — the tender notice itself.
  • PNRR / NRRP — Italy's National Recovery and Resilience Plan. Contracts funded by it carry a flag.

Example input

Search available awards to a company in 2025:

{
"supplierTaxIds": ["00803890151"],
"dateFrom": "2025-01-01",
"dateTo": "2025-12-31"
}

All construction tenders over €500,000 published by a municipality:

{
"contractingAuthorityTaxIds": ["81000160465"],
"cpvCodes": ["45"],
"minAmount": 500000
}

NRRP-funded medical device contracts in Milan:

{
"cpvCodes": ["331"],
"provinces": ["MILANO"],
"onlyPnrr": true
}

Real output excerpt

Reduced record from the official ANAC publication observed in an owner verification run on 20 October 2026. Values are preserved from that observation; omitted fields remain available in the full JSON export. This is not a statement that the award details have remained unchanged.

{
"cig": "BD6C17DD6E",
"lot_subject": "Affidamento diretto del servizio di studio, analisi dei dati degli iscritti, rilevazione dei fabbisogni formativi degli iscritti",
"lot_amount": 10650,
"cpv_code": null,
"cpv_description": null,
"publication_date": "2026-10-20",
"contracting_authority_name": "COLLEGIO GEOMETRI E GEOMETRI LAUREATI DELLA PROV.DI MILANO",
"province": "MILANO",
"award_status": "awarded",
"provenance": {
"source_id": "anac-bdncp",
"source_dataset": "pvl-avvisi",
"source_resource": "AFFIDAMENTI_DIRETTI_SOTTO_SOGLIA",
"source_url": "https://pubblicitalegale.anticorruzione.it/api/v0/avvisi/3c1cc073-84ca-4cae-a628-8474668499f2",
"source_published_at": "2026-10-20T06:00:00.991+00:00",
"observed_at": "2026-10-20T14:48:59.246Z",
"raw_hash": "",
"schema_version": 1,
"transform_version": 1
}
}

lot_amount is in EUR. In this record, CPV code and description are null because the official response did not provide a usable value; a null CPV is not a category or an inferred code. The provenance block links the source and separates its publication time from the Actor observation time. raw_hash is empty in this source mode and is not a verified content fingerprint.

Every record carries the identifiers you need to join it with your own systems — CIG, CUP, CPV, ISTAT and NUTS territory codes, and the tax codes of both the buyer and the winners — plus a provenance block showing exactly which official publication it came from and when it was read.

A note on dates. When you search by supplier, the period refers to when contracts were awarded to that company. Everywhere else it refers to when the tender was published. A tender published years ago can be awarded today, and this keeps the results matching what you actually asked for.


Search fields

FieldWhat it does
supplierTaxIdsContracts won by these companies (VAT / tax code)
contractingAuthorityTaxIdsContracts published by these public bodies
cigCodesLook up specific contracts by CIG
searchTermsKeyword match on subject, category and authority name
cpvCodesCPV category; a short code selects the whole family
provincesRestrict to one or more provinces
lookbackMonthsHow far back to search — 3 to 36 months, 6 by default
dateFrom / dateToExact date range; overrides the preset above
minAmount / maxAmountContract value range in EUR
onlyPnrrOnly NRRP-funded contracts
includeAwardDetailsAdd outcome and winning suppliers
maxResultsCap the number of contracts returned

Combine any of them. At least one search criterion is required.


Integrations

The dataset is available as JSON, CSV, Excel and XML through the Apify API, so it drops straight into the tools you already use:

  • n8n / Make / Zapier — trigger a run, push new contracts into a CRM, a spreadsheet or a Slack channel
  • Google Sheets / Excel — pull results directly from the dataset URL
  • Your own backend — call the REST API and consume JSON
  • Scheduling — run it daily or weekly and use webhooks to get notified when new contracts appear for a company or an authority you follow

A common setup: schedule a daily run filtered to your sector and province, and route new awards straight into your CRM as leads.


FAQ

What data source does this use? Italian public contract data published as open data by ANAC, the national anti-corruption authority that maintains the national public contracts database. It is official government data, not a third-party aggregation.

Do I need an account with any Italian portal? No. There is nothing to log into and nothing to configure.

How far back does it go? Records are available from 2007 onwards. The Time period setting controls how far back a search reaches — it defaults to the last 6 months, and you can widen it to 36. For anything older, set exact dateFrom and dateTo values, which override the preset.

How current is the data? Recent and historical records depend on the timing and completeness of official ANAC publications. The Actor cannot guarantee that a newly published contract, award or winning supplier appears within hours. Inspect the run’s freshness status, latest observed record date and each record’s provenance; a recent timestamp does not establish complete coverage of all recent awards.

Can I find out who won a specific tender? Yes. Enter the CIG code, or search by contracting authority, and the output includes the winning supplier with its VAT number and the awarded amount, where the award has been published.

Can I find all contracts won by one company? Yes — that is what supplierTaxIds does. Enter the company's VAT number or tax code.

Why do some contracts have no award information? Because the award has not been published yet — an open tender has no winner. Records are marked not_awarded in that case, which is different from missing data.

Can one contract have several winners? Yes. Contracts awarded to a consortium or a temporary grouping (RTI) list every member, each with its role.

Why is a field empty? Because it is empty at the source. Nothing is inferred, estimated or filled in.

Why does a recent search return different fields than a historical one? Recent and historical records come from different official publications, and they do not carry exactly the same detail. Fields that are not published for a given contract stay empty rather than being guessed.

Is the data accurate? It reproduces what the contracting authorities filed. Public procurement records are filled in by thousands of separate public bodies, so occasional gaps and typos exist at the source. Values that are clearly impossible are treated as missing rather than passed through as if they were real.

How is the cost calculated? Three charges, all visible before you run:

Starting a search$0.02
Searching a supplier's history$0.15 — only when you search by supplier VAT
Each contract returned$1.00 per 1,000

At the configured tariff, one search returning 10 contracts costs $0.03 ($0.02 start + 10 × $0.001). A supplier-history search returning 10 contracts costs $0.18, including the additional $0.15 supplier-search event. A search with no returned contracts still has the $0.02 search-start charge, plus the supplier-search charge when applicable. Platform usage during the run is included; operations on stored data after the run can have separate platform costs. Check the active Pricing tab before running.

maxResults limits returned contracts, not the search-start or supplier-search fees. Set an explicit maximum total charge in Apify Run options as a separate spending limit. Capped results can be partial; inspect the run summary before treating a search as complete.

Why is searching by supplier charged separately? Because it is genuinely more work: reconstructing everything a company has won means going through the national award records, not just reading the latest notices. You only pay it when you use that field.


Data source: ANAC — Banca Dati Nazionale dei Contratti Pubblici, published as open data under CC BY-SA 4.0.

Small first run

The Console example returns up to 10 recent contracts in MILANO. The recent-notice search stops once enough matching contracts have been collected, so a small result limit avoids scanning the entire date window. The run summary marks capped results as truncated. For historical archive searches or larger exports, increase the result limit and run timeout as needed.

Missing or untyped fields in recent notices

For recent PVL notices, cpv_code is populated only when the source provides an eight-digit code (optionally followed by its check digit). A textual CPV label is retained in cpv_description; general procurement categories are not treated as CPV codes. source_page_url is null when the source supplies only a title or a non-HTTP link. Use provenance.source_url to trace the official notice. Missing values are not inferred from descriptions.