# Szybki start

> Kup plan, utwórz klucz na koncie i wyślij go w pierwszym żądaniu do https://api.amodb.dev/3/movie/550. Odpowiedź to znany ci JSON z TMDB v3. Potem zbuduj adres plakatu na img.amodb.dev z poster_path. Jeśli już używasz TMDB lub OMDb, zmień tylko bazowy URL i klucz.

## 1. Zdobądź klucz

Wybierz plan na [stronie cennika](https://amodb.dev/pl/pricing/) i opłać okres. Potem otwórz **Konto**, następnie **Klucze API** i utwórz klucz. Klucz to 32 małe znaki szesnastkowe, w tym samym kształcie co klucz TMDB v3.

Pełny klucz jest pokazywany raz. Zapisz go w zmiennej środowiskowej o nazwie `AMODB_KEY`, aby przykłady na tej stronie działały bez zmian.

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

## 2. Pobierz szczegóły filmu

Wywołaj `GET /3/movie/{movie_id}`. Wyślij klucz jako token Bearer albo jako `api_key` w zapytaniu. Oba sposoby są akceptowane w każdym endpoincie.

```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)
}
```

Odpowiedź 200 ma pola TMDB v3. Jej krótki fragment:

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

## 3. Załaduj plakat

Połącz bazowy URL obrazów, rozmiar i `poster_path`. Obrazy nie wymagają klucza i zostają w cache przez 30 dni.

```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']}"
```

Zobacz [obrazy](https://amodb.dev/pl/images/), aby poznać wszystkie rozmiary i budowanie adresów z `/3/configuration`.

## 4. Przenieś istniejącego klienta

W kliencie TMDB v3 zmień bazowy URL z `https://api.themoviedb.org/3` na `https://api.amodb.dev/3` i użyj klucza amodb. W kliencie OMDb zmień go na `https://api.amodb.dev/omdb/` i przekaż ten sam klucz jako `apikey`.

Metody zapisu TMDB dla konta, sesji, ocen i list nie są oferowane. Zwracają HTTP 405 z `status_code` 37, więc klient tylko do odczytu nie wymaga innych zmian.

## 5. Obsłuż limity i błędy

Każdy klucz ma limit na minutę wynikający z planu. Odczytuj `X-RateLimit-Remaining` i po 429 poczekaj `Retry-After` sekund. Błędy używają treści TMDB z `success`, `status_code` i `status_message`.

Przeczytaj [limity żądań](https://amodb.dev/pl/rate-limits/) i [błędy](https://amodb.dev/pl/errors/), zanim przejdziesz na produkcję.

## Pytania i odpowiedzi

### Gdzie znajdę swój klucz?

Zaloguj się na amodb.dev, otwórz Konto, potem Klucze API i utwórz klucz. Pełny klucz jest pokazywany raz, więc od razu skopiuj go do swojego magazynu sekretów.

### Czy mogę użyć klucza w aplikacji przeglądarkowej?

Tylko za własnym serwerem. Klucz w kodzie po stronie klienta jest publiczny, a każdy, kto go skopiuje, zużywa twój limit żądań.

## Powiązane strony

- [Uwierzytelnianie](https://amodb.dev/pl/authentication/): Jak wysłać klucz amodb: api_key w zapytaniu, nagłówek Authorization Bearer albo apikey dla wywołań OMDb. Format klucza, przechowywanie, rotacja i błędy 401.
- [Obrazy](https://amodb.dev/pl/images/): Ładuj plakaty, tła i zdjęcia osób z img.amodb.dev na ścieżkach i w rozmiarach TMDB, od w92 do original. Bez klucza, cache 30 dni, jeden wzorzec URL.
- [Błędy](https://amodb.dev/pl/errors/): Każdy błąd amodb ze statusem HTTP, status_code i komunikatem TMDB oraz kształt błędu OMDb. Co oznacza każdy z nich i co powinien zrobić twój klient dalej.
- [Limity żądań](https://amodb.dev/pl/rate-limits/): amodb limituje klucz liczbą żądań na minutę w przesuwanym oknie 60 sekund: 20, 40 lub 120 zależnie od planu. Czytaj nagłówki limitu i obsłuż 429 z Retry-After.

Zaktualizowano: 2026-10-18. Source: https://amodb.dev/pl/quickstart/
