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

# POST /url-checker

> Verifique se qualquer URL está acessível, siga seus redirecionamentos, meça o tempo de resposta e retorne a URL final em uma única requisição.

## Endpoint

```
POST https://api.bunny.build/api/v1/url-checker
```

## Autenticação

| Header         | Obrigatório | Valor                        |
| -------------- | ----------- | ---------------------------- |
| `X-API-Key`    | Sim         | Sua chave de API (`bun_...`) |
| `Content-Type` | Sim         | `application/json`           |

## Visão geral

Verifique se qualquer URL está acessível e inspecione sua resposta em tempo real. O URL Checker da Bunny segue redirecionamentos, mede o tempo de resposta, extrai o título da página e retorna a URL final, dando uma visão completa da saúde do link.

## Casos de uso

* Validar URLs antes de armazená-las em um banco de dados
* Monitorar links externos em conteúdo de CMS
* Criar verificadores de links quebrados para websites
* Verificar cadeias de redirecionamento para auditorias de SEO

## Detalhes

Segue até 10 saltos de redirecionamento. `final_url` contém a URL após todos os redirecionamentos. `response_time_ms` é medido a partir do primeiro byte. URLs que expiram após 10 segundos são retornadas com `reachable: false`.

## Corpo da requisição

| Campo | Tipo   | Obrigatório | Descrição                                                   |
| ----- | ------ | ----------- | ----------------------------------------------------------- |
| `url` | string | Sim         | A URL a verificar (deve incluir o esquema, ex.: `https://`) |

### Exemplo

```json theme={null}
{
  "url": "https://example.com"
}
```

## Resposta

### 200 OK

| Campo          | Tipo           | Descrição                                       |
| -------------- | -------------- | ----------------------------------------------- |
| `url`          | string         | A URL verificada                                |
| `reachable`    | boolean        | `true` se a URL respondeu com sucesso           |
| `status_code`  | int \| null    | Código de status HTTP retornado pela URL        |
| `safe`         | boolean        | `true` se a URL não está marcada como maliciosa |
| `redirects_to` | string \| null | URL final após redirecionamentos (se houver)    |

**Exemplo**

```json theme={null}
{
  "url": "https://example.com",
  "reachable": true,
  "status_code": 200,
  "safe": true,
  "redirects_to": null
}
```

### 401 Unauthorized

```json theme={null}
{
  "detail": "Missing API key. Include X-API-Key header."
}
```

### 402 Payment Required

```json theme={null}
{
  "detail": "Monthly quota exceeded. Upgrade your plan."
}
```

### 422 Unprocessable Entity

Formato de URL inválido.

```json theme={null}
{
  "detail": "Invalid URL format"
}
```

### 429 Too Many Requests

```json theme={null}
{
  "detail": "Rate limit exceeded. Try again in 60 seconds."
}
```

## Exemplo cURL

```bash theme={null}
curl -X POST https://api.bunny.build/api/v1/url-checker \
  -H "X-API-Key: bun_sua_chave_api" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'
```
