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

> Converte qualquer página web pública em Markdown limpo, ou em um objeto tipado que você define com um JSON Schema.

Lê uma página web pública e retorna algo que um programa possa usar: Markdown
sem navegação nem conteúdo acessório, ou um objeto tipado com a forma que você
define. As páginas que são construídas no navegador são resolvidas com
`effort: max`.

Os dois endpoints compartilham as mesmas opções de página.

| Campo     | Tipo   | Notas                                                                                                                          |
| --------- | ------ | ------------------------------------------------------------------------------------------------------------------------------ |
| `effort`  | enum   | `min`, `standard` ou `max`. Padrão `standard`. `min` é o mais rápido; `max` resolve páginas que são construídas no navegador.  |
| `country` | string | Código ISO 3166-1 alfa-2 (p. ex. `CO`) para páginas que servem conteúdo diferente conforme o país. Omita-o para a rota padrão. |

## Página como Markdown

`POST /global/extract/markdown/v1`

| Campo              | Tipo    | Notas                                                                                                   |
| ------------------ | ------- | ------------------------------------------------------------------------------------------------------- |
| `url`              | string  | **Obrigatório.** URL pública http ou https. Endereços de loopback e privados são rejeitados.            |
| `scope`            | enum    | `main` mantém o corpo do artigo e descarta a navegação; `full` mantém a página completa. Padrão `main`. |
| `include_metadata` | boolean | Inclui o título, o autor e as datas da página. Padrão `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`      | A página que foi lida, depois dos redirecionamentos.                                                                                          |
| `markdown` | A página em Markdown.                                                                                                                         |
| `metadata` | Título, descrição, autor, nome do site, datas, imagem, palavras-chave e número de páginas. É `null` a menos que `include_metadata` seja true. |

## Página como JSON

`POST /global/extract/json/v1`

Descreva com um JSON Schema o objeto que você quer e os campos são localizados
na página e retornados em `result`, já tipados. Descreva cada campo: a
descrição é o que se usa para encontrá-lo.

| Campo         | Tipo   | Notas                                                                                        |
| ------------- | ------ | -------------------------------------------------------------------------------------------- |
| `url`         | string | **Obrigatório.** URL pública http ou https. Endereços de loopback e privados são rejeitados. |
| `json_schema` | object | **Obrigatório.** JSON Schema do objeto a retornar.                                           |

```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`    | A página que foi lida, depois dos redirecionamentos.  |
| `result` | O objeto descrito pelo `json_schema` que você enviou. |

<Note>
  Uma página sem corpo legível retorna `404` indicando qual opção mudar. Um
  `json_schema` que não é JSON Schema válido retorna `400` nomeando o campo.
  Os campos que a página não traz voltam ausentes ou vazios, nunca inventados.
  Para produzir valores que não estão na página (um resumo, uma
  classificação, uma tradução) use [Generate](/pt/guides/global/generate).
</Note>

<Warning>
  Extract tem uma cota mais apertada que a maioria dos endpoints: **60
  solicitações por hora** por organização. Consulte [Limites de taxa](/pt/rate-limits).
</Warning>

<Card title="Referência completa" icon="code" href="/pt/api-reference/overview">
  Esquemas, todos os campos de resposta e um playground interativo.
</Card>
