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

# API de capturas de ecrã de sites

> A API de capturas de ecrã de sites Cleariflow captura imagens pixel-perfect de qualquer URL pública através de uma interface JSON RESTful moderna com proteção SSRF, controlo de viewport e opções de automação do navegador.

## Primeiros passos

<Card title="Captura de ecrã síncrona" icon="camera" href="screenshot/screenshot">
  O endpoint `screenshot` executa uma sessão de navegador e devolve uma imagem codificada em base64 em JSON — ideal para integrações programáticas e o API Tester.
</Card>

<Card title="Tarefas assíncronas" icon="clock" href="screenshot/jobs">
  Os endpoints `jobs` colocam tarefas de captura de ecrã na fila e permitem consultar o estado e os resultados — ideal para alto volume ou páginas lentas.
</Card>

### Arquitetura REST

A API de capturas de ecrã de sites segue os princípios REST, com URLs previsíveis orientadas a recursos e códigos de estado HTTP padrão para integração fluida e tratamento de erros.

### Segurança HTTPS

Todas as comunicações da API são protegidas com TLS 1.2 ou superior para garantir a integridade e privacidade dos dados.

### Versionamento da API

A API de capturas de ecrã de sites mantém compatibilidade retroativa através de versionamento e opera atualmente na Version 1.

### Autenticação

A sua chave API é a credencial exclusiva para aceder à API de capturas de ecrã de sites. Cada serviço Cleariflow requer uma chave única. Inclua a chave no corpo JSON como `api_key`, ou como parâmetro de consulta para o endpoint GET legacy.

### URL base

```
https://screenshot.cleariflow.com
```

### Renderização de páginas

As páginas são renderizadas num navegador headless real. JavaScript é totalmente executado antes da captura de ecrã. A proteção SSRF integrada bloqueia pedidos a localhost e intervalos de IP privados.

## Códigos de resposta e erro

Quando os pedidos falham, a API devolve respostas de erro JSON estruturadas com códigos e descrições específicos para resolução eficaz de problemas.

| Código | Tipo                  | Detalhes                                                                                                  |
| ------ | --------------------- | --------------------------------------------------------------------------------------------------------- |
| 200    | OK                    | Captura de ecrã realizada com sucesso.                                                                    |
| 202    | Accepted              | A tarefa assíncrona foi colocada na fila com sucesso.                                                     |
| 400    | Bad request           | Pedido inválido — URL inválido, destino bloqueado ou payload malformado.                                  |
| 401    | Unauthorized          | O pedido não foi aceite. Normalmente devido a chave API em falta ou incorreta.                            |
| 422    | Quota reached         | O pedido foi abortado por créditos API insuficientes. (Planos gratuitos)                                  |
| 429    | Too many requests     | Limite de pedidos por segundo atingido. Nos planos gratuitos, os pedidos estão limitados a 1 por segundo. |
| 500    | Internal server error | O pedido não pôde ser concluído devido a um erro no servidor.                                             |
