# Autenticação

> Toda requisição ao amodb leva uma chave: 32 caracteres hexadecimais minúsculos. Envie-a como api_key na consulta ou em um cabeçalho Authorization: Bearer nas chamadas no estilo TMDB, e como apikey nas chamadas no estilo OMDb. As imagens não precisam de chave. Uma chave errada retorna 401 com status_code 7, e uma chave suspensa retorna 401 com status_code 10.

## Formato da chave

Uma chave tem 32 caracteres hexadecimais minúsculos, por exemplo `0123456789abcdef0123456789abcdef`. Ela tem o mesmo formato de uma chave do TMDB v3, então campos e validadores feitos para chaves do TMDB a aceitam.

O amodb guarda apenas um hash SHA-256 de cada chave. A chave completa é exibida uma só vez, quando você a cria. Se a perder, exclua-a e crie uma nova.

## Chamadas no estilo TMDB

Envie a chave de uma de duas formas. Ambas funcionam em todos os endpoints de `https://api.amodb.dev/3`.

| Método                | Exemplo                          |
| --------------------- | -------------------------------- |
| Parâmetro de consulta | `?api_key=YOUR_KEY`              |
| Cabeçalho             | `Authorization: Bearer YOUR_KEY` |

```bash
curl "https://api.amodb.dev/3/configuration" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const res = await fetch("https://api.amodb.dev/3/configuration", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
```

```python
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/configuration",
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
```

```php
<?php
$url = "https://api.amodb.dev/3/configuration?api_key=" . urlencode(getenv("AMODB_KEY"));
$config = json_decode(file_get_contents($url), true);
```

```go
req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/configuration", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
res, err := http.DefaultClient.Do(req)
```

## Chamadas no estilo OMDb

O endpoint compatível com OMDb recebe a chave como `apikey`, assim como o OMDb. É a mesma chave que você usa nas chamadas no estilo TMDB.

```bash
curl "https://api.amodb.dev/omdb/?t=Inception&y=2010&apikey=$AMODB_KEY"
```

## Imagens não precisam de chave

As URLs de imagem em `img.amodb.dev` são públicas. Não coloque sua chave nelas: uma tag `<img>` a exporia a todos os visitantes.

## Mantenha as chaves no servidor

Uma chave em um bundle de navegador, em um app móvel ou em um repositório público é uma chave pública. Quem a copiar gasta a sua taxa de requisições. Chame o amodb a partir do seu servidor, de uma função serverless ou de uma etapa de build, e repasse aos clientes apenas os dados.

- Guarde a chave em uma variável de ambiente ou em um gerenciador de segredos.
- Use uma chave por app ou ambiente, com um rótulo como `production` ou `staging`.
- Exclua uma chave no momento em que ela vazar. As chamadas com ela falham na hora.

## Erros

| HTTP | status_code | Significado                                                   |
| ---- | ----------- | ------------------------------------------------------------- |
| 401  | 7           | A chave está ausente, malformada ou é desconhecida.           |
| 401  | 10          | A chave está suspensa. Escreva para <support@amodb.dev>.      |
| 402  | 36          | Seu plano expirou. Pague um novo período na página de preços. |

Veja [erros](https://amodb.dev/pt/errors/) para todos os códigos.

## Perguntas e respostas

### Um cabeçalho Bearer é mais seguro que api_key na consulta?

Sim, um pouco. As query strings acabam nos logs do servidor e no histórico do navegador com mais frequência que os cabeçalhos. Os dois chegam à mesma verificação, então use o cabeçalho sempre que seu cliente permitir.

### Quantas chaves posso criar?

Até 10 chaves ativas por conta. Todas compartilham a taxa de requisições do seu plano, então uma segunda chave não aumenta a capacidade.

### O que acontece com minhas chaves quando troco de plano?

Você não precisa fazer nada. Toda chave ativa assume a nova taxa em até um minuto após o pagamento.

## Páginas relacionadas

- [Início rápido](https://amodb.dev/pt/quickstart/): Faça sua primeira chamada ao amodb: obtenha uma chave, peça um filme em curl, JavaScript, Python, PHP ou Go e carregue o pôster. Menos de 2 minutos.
- [Limites de requisições](https://amodb.dev/pt/rate-limits/): O amodb limita cada chave por requisições por minuto em uma janela de 60 segundos: 20, 40 ou 120 por plano. Leia os cabeçalhos e trate o 429 com Retry-After.
- [Erros](https://amodb.dev/pt/errors/): Todos os erros do amodb com status HTTP, status_code e mensagem do TMDB, mais o formato de erro do OMDb. O que cada um significa e o que seu cliente deve fazer.
- [Política de uso aceitável](https://amodb.dev/pt/acceptable-use/): O que você pode e não pode fazer com o amodb: criar apps, sites, bots e pesquisas, mas nunca compartilhar chaves, revender acesso, burlar limites ou atacá-lo.

Atualizado: 2026-10-18. Source: https://amodb.dev/pt/authentication/
