# Início rápido

> Compre um plano, crie uma chave na sua conta e envie-a na primeira requisição a https://api.amodb.dev/3/movie/550. A resposta é o JSON do TMDB v3 que você já conhece. Depois monte uma URL de pôster em img.amodb.dev a partir de poster_path. Se você já usa o TMDB ou o OMDb, troque apenas a URL base e a chave.

## 1. Obtenha uma chave

Escolha um plano na [página de preços](https://amodb.dev/pt/pricing/) e pague por um período. Depois abra **Conta**, depois **Chaves de API**, e crie uma chave. Uma chave tem 32 caracteres hexadecimais minúsculos, o mesmo formato de uma chave do TMDB v3.

A chave completa é exibida uma só vez. Guarde-a em uma variável de ambiente chamada `AMODB_KEY` para que os exemplos desta página funcionem como estão.

```bash
export AMODB_KEY="0123456789abcdef0123456789abcdef"
```

## 2. Peça os detalhes de um filme

Chame `GET /3/movie/{movie_id}`. Envie a chave como token Bearer ou como `api_key` na consulta. Os dois são aceitos em todos os endpoints.

```bash
curl "https://api.amodb.dev/3/movie/550?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const res = await fetch("https://api.amodb.dev/3/movie/550?language=en-US", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
if (!res.ok) throw new Error(`amodb ${res.status}`);
const movie = await res.json();
console.log(movie.title, movie.runtime);
```

```python
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/movie/550",
    params={"language": "en-US"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
res.raise_for_status()
movie = res.json()
print(movie["title"], movie["runtime"])
```

```php
<?php
$ch = curl_init("https://api.amodb.dev/3/movie/550?language=en-US");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("AMODB_KEY")],
]);
$movie = json_decode(curl_exec($ch), true);
echo $movie["title"] . " " . $movie["runtime"];
```

```go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/movie/550?language=en-US", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer res.Body.Close()

	var movie struct {
		Title   string `json:"title"`
		Runtime int    `json:"runtime"`
	}
	json.NewDecoder(res.Body).Decode(&movie)
	fmt.Println(movie.Title, movie.Runtime)
}
```

Uma resposta 200 traz os campos do TMDB v3. Um trecho dela:

```json
{
  "id": 550,
  "imdb_id": "tt0137523",
  "title": "Fight Club",
  "release_date": "1999-10-15",
  "runtime": 139,
  "poster_path": "/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"
}
```

## 3. Carregue o pôster

Junte a URL base de imagens, um tamanho e `poster_path`. As imagens não precisam de chave e ficam em cache por 30 dias.

```bash
curl -o poster.jpg "https://img.amodb.dev/t/p/w500/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"
```

```js
const poster = `https://img.amodb.dev/t/p/w500${movie.poster_path}`;
```

```python
poster = f"https://img.amodb.dev/t/p/w500{movie['poster_path']}"
```

Veja [imagens](https://amodb.dev/pt/images/) para todos os tamanhos e para montar URLs a partir de `/3/configuration`.

## 4. Migre um cliente existente

Para um cliente TMDB v3, troque a URL base de `https://api.themoviedb.org/3` para `https://api.amodb.dev/3` e use sua chave do amodb. Para um cliente OMDb, troque para `https://api.amodb.dev/omdb/` e passe a mesma chave como `apikey`.

Os métodos de escrita do TMDB para conta, sessão, avaliação e lista não são oferecidos. Eles retornam HTTP 405 com `status_code` 37, então um cliente somente de leitura não precisa de nenhuma outra mudança.

## 5. Trate limites e erros

Cada chave tem uma taxa por minuto definida pelo plano. Leia `X-RateLimit-Remaining` e aguarde `Retry-After` segundos após um 429. Os erros usam o corpo do TMDB com `success`, `status_code` e `status_message`.

Leia [limites de requisições](https://amodb.dev/pt/rate-limits/) e [erros](https://amodb.dev/pt/errors/) antes de ir para produção.

## Perguntas e respostas

### Onde encontro minha chave?

Entre em amodb.dev, abra Conta e depois Chaves de API, e crie uma chave. A chave completa é exibida uma só vez, então copie-a para o seu cofre de segredos na hora.

### Posso usar a chave em um app de navegador?

Só por trás do seu próprio servidor. Uma chave em código do lado do cliente é pública, e quem a copiar usa a sua taxa de requisições.

## Páginas relacionadas

- [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.
- [Imagens](https://amodb.dev/pt/images/): Pôsteres, backdrops e fotos de perfil em img.amodb.dev com caminhos e tamanhos do TMDB, de w92 a original. Sem chave, cache de 30 dias e um só padrão de URL.
- [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.
- [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/quickstart/
