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

# Extract

> Convierte cualquier página web pública en Markdown limpio, o en un objeto tipado que defines con un JSON Schema.

Lee una página web pública y devuelve algo que un programa pueda usar: Markdown
sin navegación ni contenido accesorio, o un objeto tipado con la forma que tú
defines. Las páginas que se construyen en el navegador se resuelven con
`effort: max`.

Ambos endpoints comparten las mismas opciones de página.

| Campo     | Tipo   | Notas                                                                                                                                |
| --------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| `effort`  | enum   | `min`, `standard` o `max`. Por defecto `standard`. `min` es el más rápido; `max` resuelve páginas que se construyen en el navegador. |
| `country` | string | Código ISO 3166-1 alfa-2 (p. ej. `CO`) para páginas que sirven contenido distinto según el país. Omítelo para la ruta por defecto.   |

## Página como Markdown

`POST /global/extract/markdown/v1`

| Campo              | Tipo    | Notas                                                                                                                    |
| ------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------ |
| `url`              | string  | **Obligatorio.** URL pública http o https. Las direcciones de loopback y privadas se rechazan.                           |
| `scope`            | enum    | `main` conserva el cuerpo del artículo y descarta la navegación; `full` conserva la página completa. Por defecto `main`. |
| `include_metadata` | boolean | Incluye el título, el autor y las fechas de la página. Por defecto `false`.                                              |

```bash theme={"dark"}
curl https://api.croma.run/global/extract/markdown/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://www.funcionpublica.gov.co/eva/gestornormativo/norma.php?i=304", "include_metadata": true }'
```

| Campo      | Notas                                                                                                                                              |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `url`      | La página que se leyó, después de las redirecciones.                                                                                               |
| `markdown` | La página en Markdown.                                                                                                                             |
| `metadata` | Título, descripción, autor, nombre del sitio, fechas, imagen, palabras clave y número de páginas. Es `null` salvo que `include_metadata` sea true. |

## Página como JSON

`POST /global/extract/json/v1`

Describe con un JSON Schema el objeto que quieres y los campos se ubican en la
página y se devuelven en `result`, ya tipados. Describe cada campo: la
descripción es lo que se usa para encontrarlo.

| Campo         | Tipo   | Notas                                                                                          |
| ------------- | ------ | ---------------------------------------------------------------------------------------------- |
| `url`         | string | **Obligatorio.** URL pública http o https. Las direcciones de loopback y privadas se rechazan. |
| `json_schema` | object | **Obligatorio.** JSON Schema del objeto a devolver.                                            |

```bash theme={"dark"}
curl https://api.croma.run/global/extract/json/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://www.funcionpublica.gov.co/eva/gestornormativo/norma.php?i=304", "json_schema": { "type": "object", "required": ["title"], "properties": { "title": { "type": "string", "description": "Nombre de la norma." }, "issued_on": { "type": "string", "description": "Fecha de expedición." } } } }'
```

| Campo    | Notas                                                 |
| -------- | ----------------------------------------------------- |
| `url`    | La página que se leyó, después de las redirecciones.  |
| `result` | El objeto descrito por el `json_schema` que enviaste. |

<Note>
  Una página sin cuerpo legible devuelve `404` indicando qué opción cambiar. Un
  `json_schema` que no es JSON Schema válido devuelve `400` nombrando el campo.
  Los campos que la página no trae vuelven ausentes o vacíos, nunca inventados.
  Para producir valores que no están en la página (un resumen, una
  clasificación, una traducción) usa [Generate](/es/guides/global/generate).
</Note>

<Warning>
  Extract tiene una cuota más ajustada que la mayoría de endpoints: **60
  solicitudes por hora** por organización. Consulta [Límites de tasa](/es/rate-limits).
</Warning>

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