> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usecroma.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tribunal del Servicio Civil

> Busca en todas las resoluciones del Tribunal del Servicio Civil del Perú desde 2010, por número, sala, entidad o fecha, y lee el texto completo de cualquiera.

El Tribunal del Servicio Civil resuelve las apelaciones de los servidores públicos del Perú frente a las entidades donde trabajan: régimen disciplinario, remuneraciones, ascensos, fin del vínculo. Sus dos salas han emitido más de 140.000 resoluciones desde 2010, y son la jurisprudencia viva del empleo público peruano.

Cada resolución llega con su número, sala, fecha de sesión y el enlace al documento tal como se publicó. Las de 2017 en adelante traen además el texto completo, junto con la entidad, el expediente, el régimen, la materia y la sumilla del propio Tribunal. Las anteriores se publicaron como imágenes, así que traen la referencia y el enlace, pero no el texto.

Busca en ambas salas a la vez, por número, año, sala o fecha de sesión, o con texto libre que llega hasta el cuerpo de cada resolución.

<Note>
  La fuente entera, organizada y lista para consultar: cada endpoint de esta página responde en milisegundos. Cada respuesta incluye `as_of`: qué tan actualizados están los datos. [Cómo funcionan los datasets](/es/datasets).
</Note>

## Buscar resoluciones

`POST /pe/servir-tsc/resolutions-search/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

Una sola búsqueda sobre las dos salas y el texto completo de todas las resoluciones desde 2010, filtrada por número, año, sala o fecha de sesión.

| Campo               | Tipo    | Notas                                                                                                                |
| ------------------- | ------- | -------------------------------------------------------------------------------------------------------------------- |
| `query`             | string  | Palabras opcionales que se buscan en el número de la resolución, la entidad, la sumilla y el texto completo.         |
| `chamber`           | string  | Sala opcional: `primera_sala` o `segunda_sala`. También sirven `Primera Sala` y `1`.                                 |
| `resolution_number` | string  | Número de resolución opcional, con o sin su año, p. ej. `05763-2025` o `5763`. Los ceros a la izquierda no importan. |
| `year`              | integer | Año del número de la resolución, opcional. 0 busca en todos los años. Por defecto `0`.                               |
| `from_date`         | string  | Opcional: solo resoluciones de sesiones en esta fecha o después, `yyyy-mm-dd`.                                       |
| `to_date`           | string  | Opcional: solo resoluciones de sesiones en esta fecha o antes, `yyyy-mm-dd`.                                         |
| `page`              | integer | Número de página, empieza en 1. Por defecto `1`.                                                                     |
| `per_page`          | integer | Resultados por página (1-50). Por defecto `20`.                                                                      |

```bash theme={"dark"}
curl https://api.croma.run/pe/servir-tsc/resolutions-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "régimen disciplinario", "chamber": "primera_sala" }'
```

Devuelve `as_of` (qué tan actualizados están los datos), los filtros aplicados, `total` (coincidencias en todas las páginas), `page`, `per_page`, `total_pages`, `count` y `results[]`, de la sesión más reciente a la más antigua. Cada resultado incluye `id` (el identificador permanente de la resolución), `resolution_number` y `resolution_year` (p. ej. `5763` de `2025`), `chamber` (`primera_sala` o `segunda_sala`), `resolution_key` (cómo se cita, p. ej. `5763-2025-primera_sala`), `title`, `resolution_date` (la sesión a la que pertenece), `entity` (la entidad pública demandada), `expediente`, `regime`, `subject`, `summary` (la sumilla del propio Tribunal), `text_status` (`ok`, `scanned` o `missing`), `document_url`, `page_url` y `uploaded_at`.

<Note>
  Los resultados de búsqueda no incluyen el texto: una sola resolución puede tener decenas de miles de caracteres. `query` sí busca dentro de él, así que una frase del cuerpo encuentra la resolución; para leer el texto usa el endpoint Tribunal del Servicio Civil Resolution.
</Note>

## Una resolución, completa

`POST /pe/servir-tsc/resolution/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

| Campo           | Tipo    | Notas                                                                                                                       |
| --------------- | ------- | --------------------------------------------------------------------------------------------------------------------------- |
| `resolution_id` | string  | **Obligatorio.** El `id` de la resolución que devuelve la búsqueda, p. ej. `7586381`, o su `page_url`.                      |
| `offset`        | integer | Primer carácter del texto a devolver. Envía el `next_offset` de la respuesta anterior para seguir leyendo. Por defecto `0`. |
| `limit`         | integer | Cuántos caracteres del texto devolver. La mayoría de las resoluciones caben en una sola respuesta. Por defecto `200000`.    |

```bash theme={"dark"}
curl https://api.croma.run/pe/servir-tsc/resolution/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "resolution_id": "7586381" }'
```

Devuelve `as_of`, `found`, `resolution_id` y `resolution`, que trae todo lo que devuelve la búsqueda más `content`: una ventana sobre el texto completo, con `text`, `offset`, `total_length`, `has_more` y `next_offset`. Cada resultado incluye `id` (el identificador permanente de la resolución), `resolution_number` y `resolution_year` (p. ej. `5763` de `2025`), `chamber` (`primera_sala` o `segunda_sala`), `resolution_key` (cómo se cita, p. ej. `5763-2025-primera_sala`), `title`, `resolution_date` (la sesión a la que pertenece), `entity` (la entidad pública demandada), `expediente`, `regime`, `subject`, `summary` (la sumilla del propio Tribunal), `text_status` (`ok`, `scanned` o `missing`), `document_url`, `page_url` y `uploaded_at`.

<Note>
  Las resoluciones largas se leen por rangos: envía `offset` y `limit`, y luego pasa el `next_offset` de la respuesta como `offset` hasta que `has_more` sea falso. `content` es null cuando `text_status` es `scanned` (el Tribunal publicó esa resolución como imagen) o `missing`; `document_url` sigue enlazando el documento.
</Note>

<Note>
  Un `id` que el Tribunal no ha publicado devuelve `found: false` con HTTP 200, no un error.
</Note>

<Card title="Referencia completa" icon="code" href="/es/api-reference/overview">
  Esquemas, todos los campos de respuesta y un playground interactivo.
</Card>
