---
title: "SCJN Tesis Browse"
method: POST
path: "/mx/scjn/tesis-browse/v1"
tags: ["Mexico", "SCJN"]
deprecated: true
---

# SCJN Tesis Browse

`POST /mx/scjn/tesis-browse/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/mx/scjn/tesis-browse/v1`
- Auth: HTTP bearer

> **Deprecated.**

Deprecated since 2026-09-07; stops answering on 2026-12-15. Use `POST /mx/scjn/tesis-search/v1` instead.

Same request and response as `scjn-tesis-search`, which replaces it: the Mexican Supreme Court's case law in full, filtered by words in the title and text, binding force, subject, época, year, instance, court, formation, publication window and the court's modification date. Newest first, pages of up to 20 full records, with `as_of`.

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `query` string: Optional words to match in the title and text of the tesis.
  - `tesis_type` 'any' | 'jurisprudencia' | 'aislada': Filter by tesis type: binding `jurisprudencia`, non-binding `aislada`, or `any`.
  - `subject` string: Optional subject filter (e.g. `Civil`, `Constitucional`).
  - `epoch` string: Optional época number filter (`5` through `12`).
  - `year` string: Optional 4-digit year filter.
  - `instance` string: Optional deciding level, exactly as the source names it (e.g. `Suprema Corte de Justicia de la Nación`, `Tribunales Colegiados de Circuito`, `Plenos Regionales`).
  - `court` string: Optional court or chamber, exactly as `court` reads in results (e.g. `Primera Sala`, `Pleno`).
  - `formation` string: Optional way the criterion was formed, exactly as the source names it (e.g. `Reiteración`, `Contradicción de criterios (antes contradicción de tesis)`).
  - `published_from` string, date: Optional date filter in yyyy-mm-dd format.
  - `published_to` string, date: Optional date filter in yyyy-mm-dd format.
  - `updated_after` string, date: Optional date filter in yyyy-mm-dd format.
  - `page` integer: 1-based page number for paginated results.
  - `per_page` integer: Results per page (1-20). Every result carries the full text of the tesis.

## Response `200`

Successful response

- ScjnTesisBrowseResponse
  - `data` ScjnTesisBrowseData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `query` string, required
    - `tesis_type` string, nullable, required
    - `subject` string, nullable, required
    - `epoch` string, nullable, required
    - `year` string, nullable, required
    - `instance` string, nullable, required
    - `court` string, nullable, required
    - `formation` string, nullable, required
    - `published_from` string, nullable, required
    - `published_to` string, nullable, required
    - `updated_after` string, nullable, required
    - `total` number, required: Matches, counted up to 1000.
    - `total_is_exact` boolean, required: False when more than 1000 match: `total` is then 1000, and the pages go on.
    - `page` number, required
    - `per_page` number, required
    - `total_pages` number, required: Pages over `total`; there are more when `total_is_exact` is false.
    - `count` number, required
    - `results` object[], required
      - `registration_number` string, required: Registro digital: the court's stable id for the tesis.
      - `title` string, required: Rubro: the heading of the tesis.
      - `subtitle` string, nullable, required
      - `type` 'jurisprudencia' | 'aislada', nullable, required: `jurisprudencia` (binding) or `aislada` (non-binding); null when the source reports neither.
      - `citation` string, nullable, required: Official citation key, e.g. "1a./J. 132/2012 (10a.)".
      - `epoch` string, nullable, required: Judicial epoch name, e.g. "Décima Época".
      - `epoch_number` number, nullable, required: Judicial epoch number (5 through 12).
      - `instance` string, nullable, required: Deciding level, e.g. "Suprema Corte de Justicia de la Nación", "Tribunales Colegiados de Circuito".
      - `circuit` string, nullable, required: Judicial circuit, e.g. "Trigésimo Circuito". Null for SCJN chambers.
      - `court` string, nullable, required: Specific court or chamber, e.g. "Primera Sala".
      - `source` string, nullable, required: The publication, e.g. `Semanario Judicial de la Federación`.
      - `subjects` string[], required: Materias, e.g. `Civil`, `Constitucional`.
      - `location` object, nullable, required
        - `book` string, nullable, required: Semanario book, e.g. "Libro 28".
        - `volume` string, nullable, required: Tome, e.g. "Tomo 2".
        - `page` number, nullable, required
        - `month` number, nullable, required: Month of the Semanario issue (1-12).
        - `year` number, nullable, required: Year of the Semanario issue.
      - `text` string, nullable, required: Full text of the tesis; null when the source carries no text.
      - `facts` string, nullable, required: `Hechos`: the facts section, on tesis published in the structured format (Undécima Época onward).
      - `legal_criteria` string, nullable, required: `Criterio jurídico`: the holding, on structured tesis.
      - `justification` string, nullable, required: `Justificación`: the reasoning, on structured tesis.
      - `notes` string, nullable, required
      - `precedent_notes` string[], required: Precedent history entries, as plain text.
      - `linked_case_registrations` string[], required: Registro digital ids of the rulings this tesis derives from.
      - `linked_vote_registrations` string[], required: Registro digital ids of published votes linked to this tesis.
      - `formation` string, nullable, required: How the criterion was formed, e.g. "Reiteración", "Contradicción de criterios (antes contradicción de tesis)".
      - `issue` string, nullable, required: Semanario issue, e.g. "Libro 28, Agosto de 2023".
      - `publication_date` string, nullable, required: `yyyy-mm-dd` published in the Semanario; null on pre-Gaceta tesis.
      - `binding_date` string, nullable, required: `yyyy-mm-dd` the criterion became obligatory; null on pre-Gaceta tesis.
      - `updated_at` string, nullable, required: When the source last modified the record (ISO timestamp); null on tesis it has not touched since it began recording changes.
      - `fingerprint` string, nullable, required: Integrity hash the source publishes for this document.
      - `official_url` string, required
  - `deprecation` object: Present only while this endpoint is being retired. Mirrors the Deprecation, Sunset and Link response headers.
    - `since` string, date, required
    - `sunset` string, date, required
    - `successor` string, required: Path of the endpoint to use instead.
    - `message` string, required

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
