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

# GET /ip-classify

> Classifique qualquer IP como residencial, hosting, mobile, VPN, Tor ou proxy, com pontuação de confiança e detalhamento por sinal.

## Endpoint

```
GET https://api.bunny.build/api/v1/ip-classify?ip={ip}
```

## Autenticação

| Header      | Obrigatório | Valor                        |
| ----------- | ----------- | ---------------------------- |
| `X-API-Key` | Sim         | Sua chave de API (`bun_...`) |

## Visão geral

Classifique qualquer endereço IP como residencial, hosting/datacenter, mobile, VPN, nó de saída Tor ou proxy aberto. A API de Classificação de IP da Bunny retorna um rótulo de classificação, pontuação de confiança e detalhamento completo de sinais, para que você possa tomar decisões precisas sobre as origens do tráfego.

## Casos de uso

* Detectar e bloquear tráfego de VPN, proxy e Tor
* Identificar tráfego de bots e datacenters
* Aplicar controles de acesso baseados em geo-localização
* Prevenção de fraudes e pontuação de risco

## Detalhes

Suporta IPv4 e IPv6. O campo `confidence` (0–1) indica a certeza da classificação. O objeto `signals` detalha cada sinal individualmente para que você possa aplicar sua própria lógica.

## Parâmetros de query

| Parâmetro | Tipo   | Obrigatório | Descrição                    |
| --------- | ------ | ----------- | ---------------------------- |
| `ip`      | string | Sim         | Endereço IPv4 ou IPv6 válido |

## Resposta

### 200 OK

| Campo            | Tipo   | Descrição                                                                   |
| ---------------- | ------ | --------------------------------------------------------------------------- |
| `ip`             | string | O IP verificado                                                             |
| `classification` | string | Um de: `hosting`, `residential`, `mobile`, `vpn`, `tor`, `proxy`, `unknown` |
| `confidence`     | number | 0.0 a 1.0                                                                   |
| `signals`        | object | Flags booleanas (ver abaixo)                                                |
| `network`        | object | ASN, org, provider (ver abaixo)                                             |
| `geo`            | object | country, region (ver abaixo)                                                |

**signals**

| Campo            | Tipo    |
| ---------------- | ------- |
| `is_hosting`     | boolean |
| `is_residential` | boolean |
| `is_mobile`      | boolean |
| `is_vpn`         | boolean |
| `is_tor`         | boolean |
| `is_proxy`       | boolean |

**network**

| Campo      | Tipo           | Descrição                  |
| ---------- | -------------- | -------------------------- |
| `asn`      | int \| null    | Número do Sistema Autônomo |
| `org`      | string \| null | Nome da organização        |
| `provider` | string \| null | Nome amigável (ex.: "AWS") |

**geo**

| Campo     | Tipo           | Descrição                      |
| --------- | -------------- | ------------------------------ |
| `country` | string \| null | Código do país ISO (ex.: "US") |
| `region`  | string \| null | Região/estado                  |

**Exemplo**

```json theme={null}
{
  "ip": "8.8.8.8",
  "classification": "hosting",
  "confidence": 0.95,
  "signals": {
    "is_hosting": true,
    "is_residential": false,
    "is_mobile": false,
    "is_vpn": false,
    "is_tor": false,
    "is_proxy": false
  },
  "network": {
    "asn": 15169,
    "org": "Google LLC",
    "provider": "Google"
  },
  "geo": {
    "country": "US",
    "region": 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 IP inválido.

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

### 429 Too Many Requests

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

## Exemplo cURL

```bash theme={null}
curl "https://api.bunny.build/api/v1/ip-classify?ip=8.8.8.8" \
  -H "X-API-Key: bun_sua_chave_api"
```
