Italy Constitutional Court Decisions — Official Open Data avatar

Italy Constitutional Court Decisions — Official Open Data

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Italy Constitutional Court Decisions — Official Open Data

Italy Constitutional Court Decisions — Official Open Data

Italian Constitutional Court decisions and official summaries since 1956, with full text, filters and persistent monitoring. CC BY-SA 3.0 attribution included.

Pricing

from $5.00 / 1,000 results

Rating

5.0

(1)

Developer

Lorenzo Talamucci

Lorenzo Talamucci

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Italy Constitutional Court Decisions Scraper — Official Open Data

Extract judgments and orders of Italy's Corte costituzionale from its official open-data archives, covering 1956 onwards. Designed for legal research, law firms, legaltech, compliance and retrieval-augmented generation (RAG) pipelines.

Quick start

{"maxResults":3,"includiTesto":true}
{"annoDa":2020,"annoA":2025,"tipo":"sentenza","giudizio":"incidentale","ricerca":"Toscana","maxResults":100}
{"anno":2025,"numero":1,"soloNuove":true,"monitorNome":"my-court-search","maxResults":1}

Use anno for one year or annoDa/annoA for a range, never both. With no year input, the current UTC year is selected. Types: tutti, sentenza, ordinanza. Proceedings: tutti, incidentale, principale, conflitto. numero matches an exact decision number; ricerca is a case-insensitive substring search across full text and official summaries, even when full text is not exported. A missing proceeding in the source cannot match a specific proceeding filter.

maxResults (default 20, 1–50,000) bounds the matching window, including already seen decisions. Ordering is year descending, then number descending. For a historical export exceeding this window, split by year or increase the limit. Broad ranges can reach the time limit: check OUTPUT.partial and split the years; there is no automatic pagination cursor.

Output

FieldMeaning
id, court, type, number, yearStable year/number/type identity; type is judgment or order
decisionDate, depositDateISO dates, or null if unavailable
judgmentTypeOfficial Italian proceeding classification
subject, summaryJoined official massima headings and texts; null when not yet published
fullTextSource panel, introduction, reasoning and operative provisions; only with includiTesto
ecli, sourceUrlSource-provided ECLI and official decision page
license, attributionMandatory source license and credit retained in every record

Text is decoded from the source encoding, HTML entities are decoded, line endings normalized, and sections joined. No AI-generated summaries, guessed ECLI or inferred proceeding labels. Null means the source does not provide that value, not an extraction of a blank legal conclusion.

Monitoring

soloNuove uses the named Apify key-value store monitorNome. First run emits unseen decisions in the matching window; later runs emit only previously unseen identities. Revisions and newly published massime for an already delivered decision are not emitted again. Use a separate store for each query/output mode, and avoid concurrent runs sharing a monitor name. Increasing maxResults can expose more historical decisions. Records are marked seen only after dataset delivery. Delivery and monitor persistence are not atomic: interrupted runs can replay a delivered record, but do not intentionally discard undelivered records. Deduplicate downstream by id.

Pricing (configuration proposed to the publisher)

EventProposed price
Actor start, at 1 GB$0.05
Dataset decision$0.005
testo-integrale, when requested and nonemptyadditional $0.02

Apify's Store pricing is authoritative; these prices must be configured by the publisher. The standard dataset event is billed by Actor.pushData; the premium event uses Actor.charge. Unknown/unconfigured premium events warn once and do not stop extraction. Billing failures and exhausted budgets stop further delivery without retrying ambiguous charges. Premium charging follows successful storage and monitor persistence. These platform writes are not atomic: an interruption can leave delivered text uncharged. An ambiguous billing error is reported without an automatic retry.

Source, attribution and share-alike

Source: Corte costituzionale Open Data (dati.cortecostituzionale.it) and official bulk downloads (dati.cortecostituzionale.it). Source data are supplied under CC BY-SA 3.0 (creativecommons.org). Commercial reuse is allowed subject to the license, including attribution and share-alike. Keep the source credit and license link, identify modifications, and distribute adaptations under the same or a permitted compatible license. This Actor does not grant exclusive rights or relicense the source under MIT. Respect the applicable conditions when redistributing legal text or building derivative datasets.

Attribution in every row: “Corte costituzionale, dati.cortecostituzionale.it — CC BY-SA 3.0. Structured and normalized by Promptica.” Fixtures are real source records under the same license. No affiliation with or endorsement by the Court is implied.

The official pages describe approximately 18,000–20,000 historical decisions, not a current measured total. They give inconsistent daily/weekly update descriptions; no update-frequency SLA is promised. The massime ZIP whose filename ends in 2001_2015 is the official current link and contains later annual archives (through 2026 at verification).

Reliability and limitations

Node 22, default 1 GB. The source publishes only multi-year bulk ZIP URLs (2001-current: about 56 MB decisions + 11 MB massime at verification). No public annual URL was verified. A cold single-year run extracts and caches only the official nested annual ZIPs in the named key-value store corte-annual-cache-v1. Each later run checks live source ETag/Last-Modified/size before using those smaller files; changed source or corrupt cache forces a fresh bulk download. Cache outages fall back to the source; a failed freshness check never serves stale data. Multi-year exports still download the relevant bulk partitions. The prefill requests the current UTC year implicitly and three results, so it does not become a fixed historical year next January.

Every download starts directly, also in cloud. The Apify proxy is initialized lazily only after two direct TimeoutErrors for that request; proxy failures cannot delay a successful direct request. Four attempts maximum with backoff. Header/connect and idle-read timeouts detect stalled transfers; total body time scales with announced size (30 seconds plus bytes at a conservative 128 KiB/s). The platform deadline still overrides downloads. Interrupted transfers resume using Range + If-Range only with a source validator and advertised support; Content-Range and validators are checked. If the source returns 200 instead of 206, partial bytes are discarded before restarting. At verification this source advertised Range but ignored it: resumption cannot be forced. No login or CAPTCHA bypass.

Only selected annual JSON files are expanded; at most one year of decisions and massime is parsed together. Downloads and ZIP expansion have hard size caps. Under-five-minute operation is a cloud acceptance criterion, not a guarantee during source outages. Cache cold/invalidated runs still need the full relevant ZIPs.

Internal deadline: the platform timeoutAt minus 30 seconds. Without a platform timeout (including local runs), no fixed total-duration cap applies. Invalid input, unavailable source, archive errors and deadlines return controlled completion with any delivered rows preserved. Always inspect OUTPUT.error, OUTPUT.partial and the terminal status: SUCCEEDED alone does not prove a complete extraction. External process termination, platform faults and out-of-memory events cannot be guaranteed recoverable. No claim of zero future failures.

Development and provenance

npm ci
npm test
apify run --input-file test/prefill.json
apify run --input-file test/monitor.json
apify run --input-file test/monitor.json

test/collaudo.json defines the seven cloud verification cases; this repository's factory runner executes them only under the publisher's authorization. Local smoke evidence is in test/results.json.

Implementation reuses the repository's PVP retry/runtime/main pattern, yauzl for bounded ZIP reads and he for entities. Synthos-Logic/giurisprudenza-db, consulta.py (github.com) (MIT) was inspected as a reference for nested yearly ZIPs and the year/number/type join; its Python scraper is not bundled or executed.

Italiano

Scarica sentenze e ordinanze della Corte costituzionale dagli open data ufficiali, con massime quando presenti e testo integrale facoltativo. Filtra anno/intervallo, tipo, numero, giudizio e testo. soloNuove conserva gli identificativi in uno store nominato: stessa ricerca, stesso monitorNome, senza esecuzioni concorrenti. Non ripropone aggiornamenti di pronunce già viste. Conservare attribuzione e licenza CC BY-SA 3.0, rispettando lo share-alike. Controllare sempre OUTPUT per errori o risultati parziali.

Altri dati pubblici italiani / More Italian public data

Italy Public Data by Promptica — altri dataset / other datasets: