# Società ed emittenti

> Gli endpoint di società ed emittenti restituiscono nome, paese di origine e percorso del logo di uno studio o di un'emittente TV per ID, su GET /3/company/{company_id} e GET /3/network/{network_id}. Percorsi e JSON seguono TMDB v3. Passa gli ID a with_companies e with_networks in discover per elencarne i titoli.

## Endpoint

`GET /3/company/{company_id}`

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

Risposta:

```json
{
  "description": "",
  "headquarters": "",
  "homepage": "",
  "id": 25,
  "logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
  "name": "20th Century Fox",
  "origin_country": "US",
  "parent_company": null
}
```

## Ottenere i dettagli di una società

`GET /3/company/{company_id}` restituisce una casa di produzione: nome, paese di origine e percorso del logo. Porta anche `description`, `headquarters`, `homepage` e `parent_company`, ma amodb li lascia vuoti. L'ID è l'ID società di TMDB, quindi gli ID che avevi salvato prima continuano a funzionare.

L'esempio qui sotto legge la prima società di produzione del film 550 e poi carica quella società.

```bash
COMPANY_ID=$(curl -sf "https://api.amodb.dev/3/movie/550" \
  -H "Authorization: Bearer $AMODB_KEY" | jq '.production_companies[0].id')
curl -sf "https://api.amodb.dev/3/company/$COMPANY_ID" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const base = 'https://api.amodb.dev/3';
const headers = { Authorization: `Bearer ${process.env.AMODB_KEY}` };

async function get(path) {
  const res = await fetch(base + path, { headers });
  if (!res.ok) throw new Error(`amodb returned ${res.status} for ${path}`);
  return res.json();
}

const movie = await get('/movie/550');
const company = await get(`/company/${movie.production_companies[0].id}`);
console.log(company.name, company.origin_country, company.logo_path);
```

```python
import os
import requests

BASE = "https://api.amodb.dev/3"
HEADERS = {"Authorization": f"Bearer {os.environ['AMODB_KEY']}"}


def get(path):
    r = requests.get(BASE + path, headers=HEADERS, timeout=10)
    r.raise_for_status()
    return r.json()


movie = get("/movie/550")
company = get(f"/company/{movie['production_companies'][0]['id']}")
print(company["name"], company["origin_country"], company["logo_path"])
```

```php
<?php
function amodb_get(string $path): array {
    $ch = curl_init('https://api.amodb.dev/3' . $path);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 10,
        CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
    ]);
    $body = curl_exec($ch);
    $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if ($status !== 200) {
        throw new RuntimeException("amodb returned $status for $path");
    }
    return json_decode($body, true);
}

$movie = amodb_get('/movie/550');
$company = amodb_get('/company/' . $movie['production_companies'][0]['id']);
echo $company['name'], ' ', $company['origin_country'], PHP_EOL;
```

```go
package main

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

var client = &http.Client{Timeout: 10 * time.Second}

func get(path string, out any) error {
	req, err := http.NewRequest("GET", "https://api.amodb.dev/3"+path, nil)
	if err != nil {
		return err
	}
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
	res, err := client.Do(req)
	if err != nil {
		return err
	}
	defer res.Body.Close()
	if res.StatusCode != http.StatusOK {
		return fmt.Errorf("amodb returned %s for %s", res.Status, path)
	}
	return json.NewDecoder(res.Body).Decode(out)
}

func main() {
	var movie struct {
		Companies []struct {
			ID int `json:"id"`
		} `json:"production_companies"`
	}
	if err := get("/movie/550", &movie); err != nil || len(movie.Companies) == 0 {
		panic("movie has no production companies")
	}
	var company struct {
		Name          string `json:"name"`
		OriginCountry string `json:"origin_country"`
	}
	if err := get(fmt.Sprintf("/company/%d", movie.Companies[0].ID), &company); err != nil {
		panic(err)
	}
	fmt.Println(company.Name, company.OriginCountry)
}
```

### Parametri

| Parametro    | In       | Obbligatorio | Descrizione                                                   |
| ------------ | -------- | ------------ | ------------------------------------------------------------- |
| `company_id` | percorso | sì           | ID numerico della società, per esempio `25`.                  |
| `api_key`    | query    | uno dei due  | La tua chiave. Usa questa o l'header `Authorization: Bearer`. |

### Campi della risposta

| Campo            | Tipo           | Note                                                              |
| ---------------- | -------------- | ----------------------------------------------------------------- |
| `description`    | stringa        | Sempre una stringa vuota.                                         |
| `headquarters`   | stringa        | Città o regione. Vuota per la maggior parte delle società.        |
| `homepage`       | stringa        | Indirizzo del sito web. Vuoto per la maggior parte delle società. |
| `id`             | intero         | ID della società.                                                 |
| `logo_path`      | stringa o null | Da accodare a `https://img.amodb.dev/t/p/{size}`.                 |
| `name`           | stringa        | Nome della società.                                               |
| `origin_country` | stringa        | Codice ISO 3166-1 come `US`. Può essere vuoto.                    |
| `parent_company` | null           | Sempre `null`. amodb non compila la società madre.                |

### Risposta di esempio

```json
{
  "description": "",
  "headquarters": "",
  "homepage": "",
  "id": 25,
  "logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
  "name": "20th Century Fox",
  "origin_country": "US",
  "parent_company": null
}
```

La stessa struttura torna per ogni ID di società, per esempio `/3/company/1` per Lucasfilm.

## Ottenere i dettagli di un'emittente

`GET /3/network/{network_id}` restituisce un'emittente TV: nome, paese di origine, percorso del logo, `headquarters` e `homepage`. Non ha `description` né `parent_company`. Leggi l'ID di un'emittente dall'array `networks` di una serie. La serie `/3/tv/1399` elenca HBO con id 49.

```json
{
  "headquarters": "",
  "homepage": "",
  "id": 49,
  "logo_path": "/tuomPhY2UtuPTqqFnKMVHvSb724.png",
  "name": "HBO",
  "origin_country": "US"
}
```

| Campo            | Tipo           | Note                                                                                  |
| ---------------- | -------------- | ------------------------------------------------------------------------------------- |
| `headquarters`   | stringa        | Vuota per la maggior parte delle emittenti.                                           |
| `homepage`       | stringa        | Vuoto per la maggior parte delle emittenti.                                           |
| `id`             | intero         | ID dell'emittente.                                                                    |
| `logo_path`      | stringa o null | Percorso del file del logo.                                                           |
| `name`           | stringa        | Nome dell'emittente.                                                                  |
| `origin_country` | stringa        | Codice ISO 3166-1. Una stringa vuota per i servizi di streaming globali come Netflix. |

## Endpoint di questo gruppo

Tutti i percorsi condividono la base `https://api.amodb.dev/3` e la stessa autenticazione degli altri endpoint.

| Metodo e percorso           | Restituisce                                                               | Parametri       |
| --------------------------- | ------------------------------------------------------------------------- | --------------- |
| `GET /company/{company_id}` | Scheda della società                                                      | `company_id`    |
| `GET /network/{network_id}` | Scheda dell'emittente                                                     | `network_id`    |
| `GET /search/company`       | Lista paginata di società con `id`, `name`, `logo_path`, `origin_country` | `query`, `page` |

amodb non offre i percorsi `alternative_names` o `images` per società ed emittenti. Il logo è il `logo_path` nella scheda stessa.

### Loghi

Costruisci l'indirizzo del logo come `https://img.amodb.dev/t/p/w185` più `logo_path`. `GET /3/configuration` elenca le dimensioni dei loghi: `w92`, `w154`, `w185`, `w300`, `w500` e `original`. La pagina [immagini](https://amodb.dev/it/images-api/) ha la tabella completa delle dimensioni. I file dei loghi sono per lo più PNG, e i file delle immagini non richiedono chiave. Una società senza logo ha `logo_path` impostato a `null`.

## Filtrare discover per società o emittente

Gli ID di società ed emittenti sono più utili come filtri. Discover trasforma un ID in una lista di titoli.

| Filtro           | Funziona su                        | Significato                                                         |
| ---------------- | ---------------------------------- | ------------------------------------------------------------------- |
| `with_companies` | `/discover/movie` e `/discover/tv` | Titoli prodotti da queste società.                                  |
| `with_networks`  | `/discover/tv`                     | Serie trasmesse da queste emittenti. Discover per i film lo ignora. |

Separa più ID con una virgola per richiederli tutti, o con una barra verticale (codificata `%7C`) per accettarne uno qualsiasi. La chiamata qui sotto elenca i film di una società, ordinati per popolarità. La seconda chiamata elenca le serie trasmesse da HBO.

```bash
curl -sf "https://api.amodb.dev/3/discover/movie?with_companies=$COMPANY_ID&sort_by=popularity.desc&page=1" \
  -H "Authorization: Bearer $AMODB_KEY"

curl -sf "https://api.amodb.dev/3/discover/tv?with_networks=49&sort_by=popularity.desc" \
  -H "Authorization: Bearer $AMODB_KEY"
```

I risultati di discover restano in cache sull'edge per 30 minuti e arrivano a 20 per pagina. L'elenco completo dei filtri è nella pagina [discover](https://amodb.dev/it/discover/).

## Trovare una società per nome

`GET /3/search/company?query=lucasfilm` restituisce una lista paginata. Ogni riga ha `id`, `logo_path`, `name` e `origin_country`. Le righe non sono ordinate per corrispondenza esatta: lo studio chiamato `Lucasfilm Ltd.` ha id 1 ed è la terza riga, dopo due nomi simili. Confronta `name` e `origin_country` prima di prendere un ID. Le regole della query sono nella pagina [ricerca](https://amodb.dev/it/search/). Non esiste un percorso di ricerca per emittenti.

## Errori

Una società o un'emittente che non esiste restituisce il corpo di errore TMDB con `status_code` 34. Gli altri errori usano lo stesso corpo.

| HTTP | status_code | Quando                                                                 |
| ---- | ----------- | ---------------------------------------------------------------------- |
| 401  | 7           | La chiave manca o è sbagliata.                                         |
| 402  | 36          | Il periodo del piano è terminato.                                      |
| 404  | 34          | Nessuna società o emittente con quell'ID, o un ID che non è un numero. |
| 405  | 37          | Hai inviato un metodo di scrittura.                                    |
| 429  | 25          | Oltre le tue richieste al minuto. Attendi i secondi di `Retry-After`.  |

Vedi [errori](https://amodb.dev/it/errors/) per l'elenco completo e [limiti di richieste](https://amodb.dev/it/rate-limits/) per gli header.

## Note pratiche

- Salva l'`id` della società accanto al nome. I nomi cambiano, gli ID no.
- Controlla che `logo_path` non sia `null` prima di mostrarlo. Non fare affidamento su `homepage`, `headquarters` o `description`, perché sono vuoti.
- I dettagli di società ed emittenti restano in cache per 6 ore sull'edge. I file dei loghi su `img.amodb.dev` restano in cache per 30 giorni.
- Un'emittente è un concetto televisivo. Per ottenere le sue serie usa `with_networks` su `/discover/tv`, non su discover per i film.
- Per trovare una società per nome usa la ricerca di società qui sopra, poi scegli la riga giusta per `name` e `origin_country`.

## Domande e risposte

### Dove trovo l'ID di una società o di un'emittente?

Leggili dai titoli che hai già recuperato. Un film elenca production_companies, e una serie TV elenca networks e production_companies. Ogni voce porta l'ID numerico accettato dagli endpoint di società ed emittenti.

### Posso elencare tutti i film di una società?

Usa discover con il filtro with_companies. Passa l'ID della società e scorri le pagine dei risultati. Aggiungi with_networks su discover per le serie TV per elencare le serie trasmesse da un'emittente.

### I file dei loghi stanno dietro la chiave API?

No. Il JSON che contiene il percorso del logo richiede la tua chiave, ma i file su img.amodb.dev non richiedono chiave e restano in cache per 30 giorni.

### Come trovo una società per nome?

Chiama GET /3/search/company?query=lucasfilm. Le righe non sono ordinate per corrispondenza esatta: confronta name e origin_country e prendi l'id della riga giusta. Non esiste una ricerca per emittenti, quindi leggi gli ID delle emittenti da una serie.

## Pagine correlate

- [API dei dettagli del film](https://amodb.dev/it/movies/): API dettagli film con gli stessi percorsi e JSON di TMDB v3. Ottieni un film per ID, aggiungi crediti, valutazioni e mood con append_to_response, in 14 lingue.
- [API delle serie TV](https://amodb.dev/it/tv-series/): API serie TV con gli stessi percorsi e JSON di TMDB v3. Ottieni una serie per ID con stagioni, emittenti e prossimo episodio, più classificazioni e piattaforme.
- [API Discover](https://amodb.dev/it/discover/): API Discover con gli stessi filtri di TMDB v3. Elenca film e serie TV per genere, cast, società, parola chiave, anno, voto, durata e piattaforma.
- [API delle immagini e host delle immagini](https://amodb.dev/it/images-api/): API immagini dei film con percorsi TMDB v3: elenca locandine, sfondi, loghi e fermi immagine di ogni titolo e caricali da img.amodb.dev in 10 dimensioni.
- [API di ricerca](https://amodb.dev/it/search/): API di ricerca con percorsi e JSON di TMDB v3. Trova film, serie, persone, collezioni, società e parole chiave per testo, con filtri anno e paginazione.
- [Avvio rapido](https://amodb.dev/it/quickstart/): Fai la prima chiamata ad amodb: ottieni una chiave, richiedi i dettagli di un film in curl, JavaScript, Python, PHP o Go, carica la locandina. Meno di 2 minuti.

Aggiornato: 2026-10-18. Source: https://amodb.dev/it/companies-networks/
