# Alternativa à API OMDb

> O OMDb é uma API pequena, de um registro por vez, com chave gratuita e limite diário de 1,000 (confira no site deles). O amodb responde a i, t, s, type, y, plot e page em /omdb/ com os mesmos campos no corpo, limita por minuto e acrescenta endpoints TMDB v3 na mesma chave. Só JSON, sem XML, sem episódios.

## Escolha pelo formato das suas chamadas

Escolha o OMDb quando quiser um registro pequeno por título e a chave gratuita cobrir o seu volume. Escolha o amodb quando isso deixar de bastar, ou quando quiser o mesmo estilo de requisição do OMDb ao lado de créditos, imagens e traduções em uma só chave. O OMDb retorna JSON ou XML, usa um parâmetro `apikey` e oferece uma chave gratuita com limite diário de 1,000 requisições (confira no site deles), além de um nível pago para apoiadores. O amodb é apenas pago e responde aos principais parâmetros do OMDb, além do TMDB v3.

## O que continua igual

O endpoint OMDb fica em `https://api.amodb.dev/omdb/`, e a barra final é opcional. O seu código de parsing existente não deve precisar de edições para estes elementos.

| Elemento do OMDb | No amodb                                                                                                          |
| ---------------- | ----------------------------------------------------------------------------------------------------------------- |
| `apikey`         | Mesmo parâmetro, preenchido com a sua chave do amodb                                                              |
| `i` e `t`        | Busca por ID do IMDb ou por título                                                                                |
| `s` e `page`     | Busca com 10 resultados por página e uma contagem `totalResults`, `page` até 100                                  |
| `type` e `y`     | Filtra por `movie` ou `series` e por ano                                                                          |
| `plot`           | `short` ou `full`                                                                                                 |
| `r`              | Só `json` é aceito                                                                                                |
| Campos do corpo  | Com os nomes do OMDb, de `Title` a `Response`                                                                     |
| `Ratings`        | Um array de pares `Source` e `Value` para Internet Movie Database, Rotten Tomatoes e Metacritic, quando presentes |
| Erros            | `{"Response":"False","Error":"..."}` com o texto do OMDb, em uma resposta HTTP 200                                |

## O que não é compatível

- **XML.** Uma requisição com `r=xml` retorna 400 com `{"Response":"False","Error":"Only r=json is supported."}`.
- **Temporadas e episódios.** `Season` e `Episode` são ignorados, e `type=episode` não encontra nada. Uma requisição com `i=tt0903747&Season=1` retorna o registro da série, não uma temporada. Use `/3/tv/{id}/season/{n}` para episódios.
- **Outros parâmetros.** `callback` é ignorado.
- **Campos sem dados.** `DVD`, `Production` e `Website` são sempre `"N/A"`. Registros de série têm `totalSeasons` e omitem `DVD`, `BoxOffice`, `Production` e `Website`.
- **Pôsteres.** O campo `Poster` aponta para `https://img.amodb.dev/t/p/w300/...` em vez de outro host. Troque `w300` por `w780` para obter uma imagem maior no mesmo caminho, e as imagens não exigem chave.

A lista completa de parâmetros e erros está na página do [endpoint OMDb](https://amodb.dev/pt/omdb-endpoint/).

## Exemplo de resposta

Uma requisição com `t=Fight Club` retorna um objeto plano. A resposta abaixo é real, com apenas o texto de `Plot` encurtado.

```json
{
  "Title": "Fight Club",
  "Year": "1999",
  "Rated": "R",
  "Released": "15 Oct 1999",
  "Runtime": "139 min",
  "Genre": "Crime, Drama, Thriller",
  "Director": "David Fincher",
  "Writer": "Chuck Palahniuk, Jim Uhls",
  "Actors": "Brad Pitt, Edward Norton, Meat Loaf",
  "Plot": "A nameless first-person narrator attends support groups in an attempt to subdue his emotional state an...",
  "Language": "English",
  "Country": "United States, Germany",
  "Awards": "Nominated for 1 Oscar. 12 wins & 38 nominations total",
  "Poster": "https://img.amodb.dev/t/p/w300/qkrH7rjYKU4KOwwIl6wF6H3ISvm.jpg",
  "Ratings": [
    {
      "Source": "Internet Movie Database",
      "Value": "8.8/10"
    },
    {
      "Source": "Rotten Tomatoes",
      "Value": "81%"
    },
    {
      "Source": "Metacritic",
      "Value": "67/100"
    }
  ],
  "Metascore": "67",
  "imdbRating": "8.8",
  "imdbVotes": "2,669,989",
  "imdbID": "tt0137523",
  "Type": "movie",
  "DVD": "N/A",
  "BoxOffice": "$38,003,039",
  "Production": "N/A",
  "Website": "N/A",
  "Response": "True"
}
```

Os valores são strings, como no OMDb, então faça o parse de `imdbRating`, `imdbVotes` e `Runtime` você mesmo. Cada chamada conta como uma requisição no seu limite por minuto, não importa quantos campos você leia.

## Comparação de recursos

| Recurso               | OMDb                                                                     | amodb                                                                    |
| --------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| Modelo de preço       | Chave gratuita mais um nível pago para apoiadores, confira no site deles | Períodos pré-pagos, de 1 a 24 meses                                      |
| Plano gratuito        | Chave gratuita com limite diário de 1,000, confira no site deles         | Nenhum, e sem período de teste                                           |
| Autenticação          | Parâmetro `apikey`                                                       | `apikey` em `/omdb/`, `api_key` ou Bearer em `/3`                        |
| Formato da resposta   | JSON ou XML                                                              | JSON                                                                     |
| Idiomas               | Consulte a documentação deles                                            | 14 idiomas de interface nos caminhos `/3`                                |
| Filmes                | Sim                                                                      | Sim                                                                      |
| TV                    | Séries e episódios, consulte a documentação deles sobre os campos        | Registros de série em `/omdb/`, temporadas e episódios nos caminhos `/3` |
| Pessoas               | Nomes como texto em cada registro                                        | Perfis, filmografia e imagens nos caminhos `/3`                          |
| Imagens               | Link do pôster em cada registro                                          | Link do pôster mais listas de imagens, `img.amodb.dev`                   |
| Avaliações            | Campos `Ratings`, `Metascore` e `imdbRating`                             | Os mesmos campos, mais um objeto `ratings` nos caminhos `/3`             |
| Limite de requisições | Limite diário na chave gratuita, confira no site deles                   | 20, 40 ou 120 por minuto por chave                                       |
| Uso comercial         | Confira no site deles                                                    | Vendido como API paga, veja [preços](https://amodb.dev/pt/pricing/)      |
| Compatibilidade       | Define o protocolo OMDb                                                  | Parâmetros do OMDb acima e leituras do TMDB v3                           |

## Onde o amodb se diferencia

- **Limites por minuto.** Os planos permitem 20, 40 ou 120 requisições por minuto em uma janela deslizante de 60 segundos. Cada resposta com chave traz `X-RateLimit-Remaining`, então um job em lote pode desacelerar antes de receber um 429.
- **Um caminho além dos registros únicos.** Um registro do OMDb tem a lista de elenco como texto. Com os caminhos `/3`, você pode pedir o mesmo título com créditos, vídeos e traduções em uma só chamada, e o `imdbID` encontra o registro por meio de `/3/find`.
- **Imagens maiores.** Registros no estilo OMDb dão um único link de pôster. O host de imagens serve dez tokens de tamanho, de `w92` a `original`.
- **Mais fontes de avaliação.** A extensão `/3/movie/{id}/ratings` acrescenta valores do Kinopoisk, Metacritic, Rotten Tomatoes e TMDB, quando conhecidos.

## Onde o OMDb é mais indicado

- **Projetos pequenos ou gratuitos.** Uma chave gratuita com limite diário de 1,000 basta para um protótipo ou um site de hobby, e o amodb não tem plano gratuito.
- **Consumidores de XML.** Se um sistema legado faz parse de XML, o OMDb oferece isso e o amodb não.
- **Consultas de temporada e episódio.** A rota `/omdb/` do amodb não tem modo de temporada ou episódio, então um cliente construído sobre ela precisa dos caminhos `/3`.
- **Simplicidade.** Um endpoint e poucos parâmetros são fáceis de aprender. Se isso é tudo que você precisa, ganha pouco ao migrar.

## Migrar para o amodb

Só a URL base e a chave mudam. Mantenha o resto da requisição como está, depois de procurar no seu código por `r=xml`, `Season`, `Episode` e `type=episode`.

```js
const OMDB_BASE = process.env.OMDB_BASE_URL; // before: your current OMDb base URL
const AMODB_BASE = 'https://api.amodb.dev/omdb/'; // after

async function lookup(title) {
  const url = new URL(AMODB_BASE);
  url.searchParams.set('apikey', process.env.AMODB_KEY);
  url.searchParams.set('t', title);
  url.searchParams.set('plot', 'short');
  const res = await fetch(url);
  const data = await res.json();
  if (data.Response === 'False') throw new Error(data.Error);
  return data;
}

const movie = await lookup('Fight Club');
console.log(movie.Title, movie.Year, movie.imdbRating, movie.Poster);
```

Continue verificando o campo `Response`, como fazia com o OMDb. Quando o valor é a string `"False"`, o campo `Error` traz a mensagem. Para episódios, mapeie o `imdbID` uma vez com `/3/find` e leia as temporadas pelo lado `/3`:

```bash
curl -s "https://api.amodb.dev/3/find/tt0903747?external_source=imdb_id&api_key=$AMODB_KEY"
curl -s "https://api.amodb.dev/3/tv/1396/season/1?api_key=$AMODB_KEY"
```

Para o lado no estilo TMDB, veja [autenticação](https://amodb.dev/pt/authentication/) e o [início rápido](https://amodb.dev/pt/quickstart/).

## Preços

O amodb é pago e só renova quando você compra outro período. Os três planos diferem apenas na taxa, de 20, 40 ou 120 requisições por minuto, e cada um retorna todos os dados. Os períodos são de 1, 3, 6, 12 ou 24 meses, e os mais longos dão de 10 a 40 por cento de desconto. Consulte [preços](https://amodb.dev/pt/pricing/) para os valores atuais.

## Perguntas e respostas

### Preciso reescrever meu cliente OMDb?

Não, se ele usa i, t, s, type, y, plot e page. Troque a URL base para https://api.amodb.dev/omdb/ e coloque sua chave do amodb no parâmetro apikey. O corpo mantém os nomes de campo do OMDb, como imdbRating. Os parâmetros Season e Episode e r=xml não são suportados.

### O endpoint OMDb do amodb retorna XML?

Não. Ele retorna só JSON. Uma requisição com r=xml recebe uma resposta 400 com o erro Only r=json is supported, então remova o parâmetro r ou defina r=json antes de migrar.

### Posso consultar temporadas e episódios no endpoint OMDb?

Não. Os parâmetros Season e Episode são ignorados, então uma requisição com i e Season=1 retorna o registro da série, e type=episode não encontra nada. Leia os episódios em /3/tv/{id}/season/{n} com a mesma chave.

### Como o limite difere da chave gratuita do OMDb?

O OMDb documenta um limite diário de 1,000 para a chave gratuita, então consulte o site deles para ver os termos atuais. O amodb limita as requisições por minuto e por chave, em 20, 40 ou 120 conforme o plano.

### De onde carregam as imagens dos pôsteres?

O campo Poster aponta para img.amodb.dev no tamanho w300. Troque w300 por outro tamanho, como w780, na mesma URL para obter uma imagem maior. As imagens não exigem chave.

### Posso usar a mesma chave em chamadas no estilo TMDB?

Sim. Uma chave serve para /omdb/ e para os caminhos /3. Assim você busca créditos, trailers ou traduções de um imdbID sem uma segunda assinatura.

## Páginas relacionadas

- [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 do IMDb](https://amodb.dev/pt/imdb-api-alternative/): O IMDb não tem API REST gratuita geral. Busque títulos por ID do IMDb, leia a nota quando conhecida e obtenha elenco, imagens e trailers em uma API JSON paga.
- [Alternativa à API do TMDB](https://amodb.dev/pt/tmdb-api-alternative/): Precisa de uma alternativa à API do TMDB? Veja termos, limites, idiomas e avaliações, e migre para uma API paga com a maioria dos caminhos de leitura da v3.
- [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.
- [Preços](https://amodb.dev/pt/pricing/): Os planos do amodb diferem só em requisições por minuto: 20, 40 ou 120. Todo plano inclui todos os dados do TMDB v3 e OMDb. Pré-pago, sem renovação nem teste.

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