Skip to main content
The Tribunal Constitucional del Perú has published more than 150,000 resolutions since 1996: sentencias, autos and sentencias interlocutorias in amparo, hábeas corpus, hábeas data, cumplimiento, inconstitucionalidad and competencial proceedings. Each one here comes with its full text, the case file number, the kind of proceeding, the chamber, the publication date, and a link to the document on the court’s own site. Search across all of them at once, by kind of resolution, kind of proceeding, chamber, case file, year or date, or with free text that reaches into the body of every resolution.
The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries as_of: how current the data is. How datasets work.

Search the resolutions

POST /pe/tribunal-constitucional/rulings-search/v1 Dataset One search over the full text of every resolution since 1996, filtered by kind, proceeding, chamber, case file, year or date.
Returns as_of (how current the data is), the applied filters, total (matches across every page), page, per_page, total_pages, count and results[], most recently published first. Every result carries id (the document’s permanent identifier, e.g. 2026/05005-2025-HC.pdf), registration_number (the expediente), proceeding_type_code and proceeding_type (e.g. HC, Hábeas corpus), type (sentencia, auto or sentencia_interlocutoria), number (the resolution number of a sentencia, e.g. 181/2026), publication_date, year, chamber (Pleno, Sala Primera or Sala Segunda), judicial_district, case_id, text_status (ok, scanned or missing), official_url (the document on the court’s own site) and case_url (the case’s page there).
Search results leave out the text: a single resolution can run to hundreds of thousands of characters. query still matches against it, so a phrase from the body finds the resolution; read the text itself with the Tribunal Constitucional Ruling endpoint.

One resolution, in full

POST /pe/tribunal-constitucional/ruling/v1 Dataset
Returns as_of, found, ruling_id and ruling, which carries everything the search returns plus content: a window onto the resolution’s full text, with text, offset, total_length, has_more and next_offset. Every result carries id (the document’s permanent identifier, e.g. 2026/05005-2025-HC.pdf), registration_number (the expediente), proceeding_type_code and proceeding_type (e.g. HC, Hábeas corpus), type (sentencia, auto or sentencia_interlocutoria), number (the resolution number of a sentencia, e.g. 181/2026), publication_date, year, chamber (Pleno, Sala Primera or Sala Segunda), judicial_district, case_id, text_status (ok, scanned or missing), official_url (the document on the court’s own site) and case_url (the case’s page there).
Long resolutions are read a range at a time: send offset and limit, then pass the response’s next_offset back as offset until has_more is false. content is null when text_status is scanned (the court published the resolution as an image) or missing; official_url still links the document.
An id the court has not published returns found: false with HTTP 200, not an error.

Full reference

Schemas, all response fields, and an interactive playground.