# Alternativa à API do IMDb

> O IMDb não tem API REST gratuita de uso geral: seus datasets não comerciais são arquivos para download e o acesso comercial é licenciado. O amodb é uma API JSON paga para buscar um título pelo ID do IMDb, ler a nota e os votos do IMDb, quando conhecidos, e receber elenco, imagens e trailers com uma chave.

## Dados do IMDb via REST: a resposta curta

O IMDb não tem API REST gratuita de uso geral. Os datasets não comerciais são arquivos para download e o acesso comercial é licenciado, então consulte a documentação deles para ver os termos atuais. Se você quer chamar um endpoint HTTP com um ID do IMDb e receber JSON, o amodb faz isso em um plano pago. Se o seu contrato exige dados licenciados pelo próprio IMDb, esse acordo é com o IMDb e o amodb não o substitui.

## Formas de usar um ID do IMDb no amodb

Cinco chamadas cobrem a maioria das necessidades. Cada uma parte de um ID que você já tem ou termina com um.

| Você tem ou quer                    | Chamada                                         | Você recebe                                            |
| ----------------------------------- | ----------------------------------------------- | ------------------------------------------------------ |
| Um título a partir de um ID do IMDb | `GET /3/find/tt0137523?external_source=imdb_id` | Arrays `movie_results`, `tv_results`, `person_results` |
| O ID do IMDb de um filme            | `GET /3/movie/550`, campo `imdb_id`             | `tt0137523` para Fight Club                            |
| O ID do IMDb de uma série           | `GET /3/tv/1396/external_ids`                   | `imdb_id` ao lado do ID do TVDB                        |
| A nota do IMDb                      | `GET /3/movie/550/ratings`                      | `imdb` como `value` e `votes`, ou null                 |
| Um registro no estilo OMDb          | `GET /omdb/?i=tt0137523`                        | `imdbRating`, `imdbVotes`, `imdbID`                    |

Todas as linhas funcionam com a mesma chave. As avaliações são descritas na página de [avaliações](https://amodb.dev/pt/ratings/) e as buscas por ID em [busca por ID externo](https://amodb.dev/pt/find-by-external-id/).

## Leia a nota do IMDb

O endpoint de avaliações retorna a nota e o número de votos juntos. Esta é uma resposta real para Fight Club (ID 550). As notas mudam com o tempo.

```json
{
  "id": 550,
  "imdb": {
    "value": 8.8,
    "votes": 2669989
  },
  "kinopoisk": {
    "value": 8.7,
    "votes": null
  },
  "metacritic": {
    "value": 67,
    "votes": null
  },
  "rotten_tomatoes": {
    "value": 81,
    "votes": null
  },
  "tmdb": {
    "value": 8.437,
    "votes": 33039
  }
}
```

Para o IMDb, o `value` fica numa escala de 0 a 10 com uma casa decimal. Mostre o número de votos ao lado e não renderize nada quando o objeto for `null`. Nesta resposta, só o IMDb e o TMDB trazem votos. `votes` pode ser `null` em qualquer fonte, então verifique antes de exibir. Uma resposta em cache continua válida por 6 horas na borda, então consultar com mais frequência não traz ganho.

## Comparação de recursos

| Recurso               | IMDb                                                                                     | amodb                                                      |
| --------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| Modelo de preço       | Acesso comercial licenciado, consulte a documentação deles                               | Pré-pago, de 1 a 24 meses                                  |
| Plano gratuito        | Sem API REST gratuita de uso geral                                                       | Nenhum, e sem período de teste                             |
| Autenticação          | Consulte a documentação deles                                                            | Parâmetro de consulta `api_key` ou cabeçalho Bearer        |
| Formato da resposta   | Arquivos de dataset para download, consulte a documentação deles sobre feeds licenciados | JSON                                                       |
| Idiomas               | Consulte a documentação deles                                                            | 14 idiomas de interface                                    |
| Filmes                | Consulte a documentação deles sobre os campos                                            | Detalhes, créditos, imagens, vídeos                        |
| TV                    | Consulte a documentação deles sobre os campos                                            | Séries, temporadas, episódios                              |
| Pessoas               | Consulte a documentação deles sobre os campos                                            | Perfis, filmografia, imagens                               |
| Imagens               | Consulte a documentação deles                                                            | `img.amodb.dev`, sem chave                                 |
| Avaliações            | Nota própria, consulte a documentação deles sobre o acesso                               | Cinco fontes, o IMDb entre elas, quando conhecidas         |
| Limite de requisições | Consulte a documentação deles                                                            | 20, 40 ou 120 requisições por minuto                       |
| Uso comercial         | Licenciado, consulte a documentação deles                                                | Planos pagos, veja [preços](https://amodb.dev/pt/pricing/) |
| Compatibilidade       | Formatos próprios, consulte a documentação deles                                         | Leituras do TMDB v3 e o protocolo OMDb                     |

## Onde o amodb se diferencia

Você chama um endpoint em vez de processar um arquivo. Uma requisição retorna um título com elenco, trailers e avaliações por meio de `append_to_response`, e o formato segue o TMDB v3, então as bibliotecas cliente existentes funcionam. A mesma chave atende o endpoint no estilo OMDb, o que mantém funcionando o código antigo que lê `imdbRating`.

O bloco de avaliações é um objeto fixo com cinco chaves. Uma fonte desconhecida é `null`, não uma chave ausente, então o código que lê `ratings.imdb` não precisa verificar se o objeto pai existe. Um número de votos pode vir ao lado do valor, o que permite ocultar uma nota baseada em poucos votos. Ele também pode ser `null`, como acontece em três das cinco fontes do exemplo acima.

## Onde o IMDb é mais indicado

- **A origem da nota.** O IMDb publica suas próprias avaliações primeiro. O amodb retorna um valor só quando ele é conhecido, então um título novo ou obscuro pode vir `null`.
- **Recursos do site.** Resenhas de usuários, listas e listas para assistir ficam no site do IMDb. O amodb é uma API de metadados e não oferece contas de usuário.
- **Dados licenciados.** Se um parceiro ou um contrato exige dados licenciados do IMDb, só o IMDb pode fornecê-los.
- **Análise offline.** Os arquivos de dataset não comerciais servem para pesquisa em lote que você roda na sua própria máquina. Consulte a documentação deles para ver os termos.

## Migrar para o amodb

É provável que você tenha uma lista de IDs do IMDb. Mapeie cada um para um ID do amodb uma única vez, guarde o par e depois chame os detalhes pelo ID numérico.

```bash
curl -s "https://api.amodb.dev/3/find/tt0133093?external_source=imdb_id" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```python
import os
import requests

KEY = os.environ["AMODB_KEY"]
imdb_ids = ["tt0137523", "tt0133093", "tt1375666"]

for imdb_id in imdb_ids:
    r = requests.get(
        f"https://api.amodb.dev/3/find/{imdb_id}",
        params={"external_source": "imdb_id"},
        headers={"Authorization": f"Bearer {KEY}"},
        timeout=10,
    )
    r.raise_for_status()
    hits = r.json()["movie_results"]
    print(imdb_id, hits[0]["id"] if hits else None)
```

Os três IDs acima correspondem a 550, 603 e 27205, que são Fight Club, The Matrix e Inception. Um ID de série como `tt0903747` volta em `tv_results`, onde Breaking Bad tem o ID 1396. Um array vazio significa que nenhum resultado foi encontrado para aquele ID.

Controle o ritmo do laço. Cada ID é uma requisição, e um 429 inclui o cabeçalho `Retry-After` com os segundos de espera. Veja [erros](https://amodb.dev/pt/errors/) para os outros códigos.

### Guarde os IDs com segurança

- Mantenha os IDs do IMDb como strings. Eles começam com `tt` e têm zeros à esquerda, como em `tt0137523`, e um tipo numérico descarta esses zeros.
- Salve o ID do IMDb e o ID do amodb como um par. Qualquer um dos dois encontra o título de novo.
- Leia `tv_results` para séries e `movie_results` para filmes. Um único ID normalmente preenche um array e deixa os outros vazios.
- A partir daí, peça os detalhes pelo ID do amodb, porque uma chamada de detalhes pode trazer elenco, trailers e avaliações com `append_to_response`.

## Preços

Escolha um de três planos de 20, 40 ou 120 requisições por minuto e pré-pague 1, 3, 6, 12 ou 24 meses. Períodos mais longos dão 10, 20, 30 ou 40 por cento de desconto. Todos os planos retornam os mesmos dados, nada renova sozinho e não há plano gratuito. Veja [preços](https://amodb.dev/pt/pricing/) para os valores.

## Perguntas e respostas

### O IMDb oferece uma API REST gratuita?

O IMDb não tem API REST gratuita de uso geral. Os datasets não comerciais são arquivos para download, e o acesso comercial é licenciado. Consulte a documentação deles para ver os termos, formatos e campos atuais antes de planejar em cima deles.

### Posso buscar um título pelo ID do IMDb no amodb?

Sim. Chame /3/find/tt0137523 com external_source=imdb_id e leia movie_results, tv_results ou person_results. O endpoint no estilo OMDb também aceita o parâmetro i com um ID do IMDb.

### A nota do IMDb sempre vem preenchida?

Não. O objeto ratings sempre tem as cinco chaves imdb, kinopoisk, metacritic, rotten_tomatoes e tmdb, mas cada uma é null quando a nota não é conhecida. Trate o null antes de exibir um número.

### Recebo resenhas de usuários ou listas do IMDb?

Não. O amodb retorna o ID do IMDb e a nota do IMDb com o número de votos, quando conhecidos. Ele não hospeda resenhas de usuários, listas nem listas para assistir do IMDb. O endpoint de resenhas no estilo TMDB responde 200, e a maioria dos títulos retorna uma lista vazia.

### Quanto tempo leva para mapear uma lista de IDs do IMDb?

Uma requisição find por ID. Uma lista de 500 IDs exige 500 requisições, então no plano de 20 requisições por minuto isso leva cerca de 25 minutos. Guarde o resultado, porque o mapeamento raramente muda.

## Páginas relacionadas

- [Buscar por ID externo](https://amodb.dev/pt/find-by-external-id/): Busque um filme, série ou pessoa por id do IMDb, TVDB, Wikidata ou Kinopoisk com o endpoint find do TMDB e leia ids externos e dados do Wikidata de um título.
- [Avaliações de filmes e séries](https://amodb.dev/pt/ratings/): API de avaliações de filmes com as notas do IMDb, Kinopoisk, Metacritic, Rotten Tomatoes e TMDB em uma só chamada, com null se a fonte for desconhecida.
- [Endpoint compatível com OMDb](https://amodb.dev/pt/omdb-endpoint/): Endpoint compatível com OMDb API em api.amodb.dev/omdb/. Busque por i ou t, pesquise com s, leia o array Ratings e mantenha seu cliente trocando só a URL base.
- [Alternativa à API OMDb](https://amodb.dev/pt/omdb-api-alternative/): Bateu no limite diário do OMDb ou quer mais de um registro por chamada? O amodb responde no estilo OMDb e também serve endpoints TMDB v3, na mesma chave.
- [Autenticação](https://amodb.dev/pt/authentication/): Como enviar sua chave do amodb: api_key na consulta, um cabeçalho Authorization Bearer ou apikey nas chamadas OMDb. Formato, armazenamento, rotação e erros 401.
- [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.

Atualizado: 2026-10-18. Source: https://amodb.dev/pt/imdb-api-alternative/
