> ## 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.

# DOF

> Consulta el Diario Oficial de la Federación por fecha y obtén el texto completo de cualquier publicación.

Todo lo publicado en el Diario Oficial de la Federación: decretos, reformas de
ley y disposiciones de reguladores en las ediciones matutina, vespertina y
extraordinaria. Lista primero un día y luego obtén el texto completo de la
entrada que te interese. El historial llega al menos hasta 1995.

## Publicaciones por fecha

`POST /mx/dof/publications-by-date/v1`

| Campo  | Tipo   | Notas                                                                 |
| ------ | ------ | --------------------------------------------------------------------- |
| `date` | string | **Obligatorio.** Fecha del diario, `yyyy-mm-dd`. Desde al menos 1995. |

```bash theme={"dark"}
curl https://api.croma.run/mx/dof/publications-by-date/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "date": "2026-07-16" }'
```

| Campo          | Notas                                                                                 |
| -------------- | ------------------------------------------------------------------------------------- |
| `date`         | Eco de la fecha solicitada.                                                           |
| `published`    | `false` en días sin edición (fines de semana y festivos); `publications` queda vacío. |
| `total`        | Número de publicaciones de ese día.                                                   |
| `publications` | Lista de entradas (ver abajo).                                                        |

Cada publicación trae `id`, `title`, `edition`, `section`, `page`, `page_end`,
`branch` (p. ej. `PODER EJECUTIVO`), `agency`, `has_pdf` y `has_text`.

<Note>
  `has_text: true` indica que el texto completo es legible por máquina y vale la
  pena obtenerlo con la consulta de abajo. Las entradas con `has_text: false`
  son imágenes escaneadas.
</Note>

## Una publicación

`POST /mx/dof/publication/v1`

| Campo            | Tipo   | Notas                                                                 |
| ---------------- | ------ | --------------------------------------------------------------------- |
| `publication_id` | string | **Obligatorio.** El `id` de una entrada del listado diario.           |
| `offset`         | number | Opcional. Primer carácter del texto a devolver (por defecto 0).       |
| `limit`          | number | Opcional. Caracteres a devolver, 1000 a 1000000 (por defecto 200000). |

```bash theme={"dark"}
curl https://api.croma.run/mx/dof/publication/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "publication_id": "5778302" }'
```

Devuelve `found`, `publication_id` y `publication`. La publicación trae los
metadatos del listado diario (excepto los indicadores `has_*`), más
`sub_agency`, `content`, `is_image_only` y `official_url`.

Las publicaciones van de unos cientos de caracteres a decretos completos, así
que el texto se devuelve por rangos dentro de `content`: `text`, `offset`,
`total_length`, `has_more` y `next_offset`. Consulte `content.total_length` para
conocer el tamaño total y, mientras `content.has_more` sea `true`, solicite el
siguiente rango con `offset` igual a `content.next_offset`.

<Note>
  Las publicaciones escaneadas devuelven `is_image_only: true` con `content` en
  null. Los metadatos y `official_url` sí vienen poblados.
</Note>

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