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 /sv/csj-sv/rulings-search/v1 Dataset
One search over the full text of every resolution since 1951, filtered by court, area of law, proceeding, kind of resolution, crime, reference number, year or date.
as_of (how current the data is), the applied filters, total (matches across every page), page, per_page, total_pages, count and results[], most recent resolution first. Every result carries id (the resolution’s permanent number, e.g. 1138697), registration_number (the reference number, e.g. 49COMP2026), ruling_date, year, court_type (corte_plena, sala, camara, tribunal_de_sentencia or juzgado), court, subject (the area of law), proceeding_type, type (the kind of resolution), appeal_type, lawsuit_type, decision, facts, crimes, lower_courts, courts_in_conflict, challenged_act, rights_invoked, grounds, applied_law, other_fields, descriptors and extracts (the headnotes, each a topic with its holdings), text_status (ok, scanned or missing), official_url (the resolution’s record at the court), document_url (Croma’s copy of the original document, byte for byte as the court published it, which stays available whatever happens to the court’s link) and source_document_url (the document on the court’s own site). Fields the court’s record leaves empty are null or empty lists; party names are never included.
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 Corte Suprema de Justicia de El Salvador Ruling endpoint.One resolution, in full
POST /sv/csj-sv/ruling/v1 Dataset
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 resolution’s permanent number, e.g. 1138697), registration_number (the reference number, e.g. 49COMP2026), ruling_date, year, court_type (corte_plena, sala, camara, tribunal_de_sentencia or juzgado), court, subject (the area of law), proceeding_type, type (the kind of resolution), appeal_type, lawsuit_type, decision, facts, crimes, lower_courts, courts_in_conflict, challenged_act, rights_invoked, grounds, applied_law, other_fields, descriptors and extracts (the headnotes, each a topic with its holdings), text_status (ok, scanned or missing), official_url (the resolution’s record at the court), document_url (Croma’s copy of the original document, byte for byte as the court published it, which stays available whatever happens to the court’s link) and source_document_url (the document on the court’s own site). Fields the court’s record leaves empty are null or empty lists; party names are never included.
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; document_url still gives the original document when the court published one.An
id the court has not published returns found: false with HTTP 200, not an error.Search the legislation
POST /sv/csj-sv/laws-search/v1 Dataset
One search over the consolidated text of every legal text since 1821, filtered by kind, status, area of law, number, municipality, department, year or date.
as_of, the applied filters, total, page, per_page, total_pages, count and results[], most recently published first. Every result carries id (the act’s permanent number, e.g. 558819), title, type (Decretos Legislativos, Decretos Ejecutivos, Decretos Institucionales, Acuerdos, Reglamentos, Ordenanzas Municipales or Documentos Generales), nature, number (the decree or agreement number), status (vigente, caducada or derogada), subject (the area of law), issuing_body, state_organ, municipality and department (ordinances), issue_date, publication_date (in the Diario Oficial), year, gazette_number, gazette_volume, considerations (the documentation center’s summary), reform_count, related_rulings (ids for the ruling endpoint), other_fields, text_status, official_url (the act’s record at the court), document_url (Croma’s copy of the current version of the document, byte for byte as the court published it), source_document_url (the document on the court’s own site) and document_modified_at.
Search results leave out the text, the amendments and the document’s versions;
query still matches the text. Read them with the Corte Suprema de Justicia de El Salvador Law endpoint.One legal text, in full
POST /sv/csj-sv/law/v1 Dataset
as_of, found, law_id and law, which carries everything the search returns plus reforms[] (each amendment in order: decree, decree_number, issuing_body, decree_date, publication_date, gazette_number, gazette_volume, and document_url with Croma’s copy of the amendment’s own text next to its source_document_url), document_versions[] (every version of the act’s document Croma has kept, oldest first, each with document_url, modified_at and bytes) and content: a window onto the consolidated text, with text, offset, total_length, has_more and next_offset. Every result carries id (the act’s permanent number, e.g. 558819), title, type (Decretos Legislativos, Decretos Ejecutivos, Decretos Institucionales, Acuerdos, Reglamentos, Ordenanzas Municipales or Documentos Generales), nature, number (the decree or agreement number), status (vigente, caducada or derogada), subject (the area of law), issuing_body, state_organ, municipality and department (ordinances), issue_date, publication_date (in the Diario Oficial), year, gazette_number, gazette_volume, considerations (the documentation center’s summary), reform_count, related_rulings (ids for the ruling endpoint), other_fields, text_status, official_url (the act’s record at the court), document_url (Croma’s copy of the current version of the document, byte for byte as the court published it), source_document_url (the document on the court’s own site) and document_modified_at.
The court rewrites a consolidated text when it incorporates an amendment. Croma keeps every version it has seen:
document_url is the newest, document_versions lists them all.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.