# Produtoras e emissoras

> Os endpoints de produtora e emissora retornam nome, país de origem e caminho do logo de um estúdio ou de uma emissora de TV por id, em GET /3/company/{company_id} e GET /3/network/{network_id}. Caminhos e JSON seguem o TMDB v3. Passe os ids para with_companies e with_networks no discover para listar os títulos.

## Endpoint

`GET /3/company/{company_id}`

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

Resposta:

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

## Obter os detalhes de uma produtora

`GET /3/company/{company_id}` retorna uma produtora: nome, país de origem e caminho do logo. Ele também traz `description`, `headquarters`, `homepage` e `parent_company`, mas o amodb os deixa vazios. O id é o id de produtora do TMDB, então os ids que você guardou antes continuam funcionando.

O exemplo abaixo lê a primeira produtora do filme 550 e depois carrega essa produtora.

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

### Parâmetros

| Parâmetro    | Em       | Obrigatório | Descrição                                                          |
| ------------ | -------- | ----------- | ------------------------------------------------------------------ |
| `company_id` | caminho  | sim         | Id numérico da produtora, por exemplo `25`.                        |
| `api_key`    | consulta | um dos dois | Sua chave. Use este parâmetro ou o header `Authorization: Bearer`. |

### Campos da resposta

| Campo            | Tipo           | Observações                                                 |
| ---------------- | -------------- | ----------------------------------------------------------- |
| `description`    | string         | Sempre uma string vazia.                                    |
| `headquarters`   | string         | Cidade ou região. Vazio para a maioria das produtoras.      |
| `homepage`       | string         | Endereço do site. Vazio para a maioria das produtoras.      |
| `id`             | inteiro        | Id da produtora.                                            |
| `logo_path`      | string ou null | Acrescente a `https://img.amodb.dev/t/p/{size}`.            |
| `name`           | string         | Nome da produtora.                                          |
| `origin_country` | string         | Código ISO 3166-1, como `US`. Pode vir vazio.               |
| `parent_company` | null           | Sempre `null`. O amodb não preenche a empresa controladora. |

### Exemplo de resposta

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

O mesmo formato volta para qualquer id de produtora, por exemplo `/3/company/1` para a Lucasfilm.

## Obter os detalhes de uma emissora

`GET /3/network/{network_id}` retorna uma emissora de TV: nome, país de origem, caminho do logo, `headquarters` e `homepage`. Ela não tem `description` nem `parent_company`. Leia o id de uma emissora no array `networks` de uma série. A série `/3/tv/1399` lista a HBO com o id 49.

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

| Campo            | Tipo           | Observações                                                                             |
| ---------------- | -------------- | --------------------------------------------------------------------------------------- |
| `headquarters`   | string         | Vazio para a maioria das emissoras.                                                     |
| `homepage`       | string         | Vazio para a maioria das emissoras.                                                     |
| `id`             | inteiro        | Id da emissora.                                                                         |
| `logo_path`      | string ou null | Caminho do arquivo do logo.                                                             |
| `name`           | string         | Nome da emissora.                                                                       |
| `origin_country` | string         | Código ISO 3166-1. Uma string vazia para serviços globais de streaming, como a Netflix. |

## Endpoints deste grupo

Todos os caminhos usam a base `https://api.amodb.dev/3` e a mesma autenticação dos outros endpoints.

| Método e caminho            | Retorna                                                                      | Parâmetros      |
| --------------------------- | ---------------------------------------------------------------------------- | --------------- |
| `GET /company/{company_id}` | Registro da produtora                                                        | `company_id`    |
| `GET /network/{network_id}` | Registro da emissora                                                         | `network_id`    |
| `GET /search/company`       | Lista paginada de produtoras com `id`, `name`, `logo_path`, `origin_country` | `query`, `page` |

O amodb não oferece os caminhos `alternative_names` nem `images` para produtoras e emissoras. O logo é o `logo_path` do próprio registro.

### Logos

Monte o endereço do logo como `https://img.amodb.dev/t/p/w185` mais `logo_path`. `GET /3/configuration` lista os tamanhos de logo: `w92`, `w154`, `w185`, `w300`, `w500` e `original`. A página de [imagens](https://amodb.dev/pt/images-api/) traz a tabela completa de tamanhos. Os arquivos de logo são em sua maioria PNG, e os arquivos de imagem não exigem chave. Uma produtora sem logo tem `logo_path` definido como `null`.

## Filtrar o discover por produtora ou emissora

Os ids de produtoras e emissoras são mais úteis como filtros. O discover transforma um id em uma lista de títulos.

| Filtro           | Funciona em                        | Significado                                                         |
| ---------------- | ---------------------------------- | ------------------------------------------------------------------- |
| `with_companies` | `/discover/movie` e `/discover/tv` | Títulos feitos por essas produtoras.                                |
| `with_networks`  | `/discover/tv`                     | Séries exibidas por essas emissoras. O discover de filmes o ignora. |

Separe vários ids com vírgula para exigir todos, ou com uma barra vertical (codificada como `%7C`) para aceitar qualquer um. A primeira chamada abaixo lista filmes de uma produtora, ordenados por popularidade. A segunda lista as séries que a HBO exibiu.

```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"
```

Os resultados do discover ficam em cache na borda por 30 minutos e chegam 20 por página. A lista completa de filtros está na página de [discover](https://amodb.dev/pt/discover/).

## Encontrar uma produtora pelo nome

`GET /3/search/company?query=lucasfilm` retorna uma lista paginada. Cada linha tem `id`, `logo_path`, `name` e `origin_country`. As linhas não são ordenadas por correspondência exata: o estúdio chamado `Lucasfilm Ltd.` tem o id 1 e é a terceira linha, depois de dois nomes parecidos. Compare `name` e `origin_country` antes de pegar um id. As regras da consulta estão na página de [busca](https://amodb.dev/pt/search/). Não existe caminho de busca de emissoras.

## Erros

Uma produtora ou emissora que não existe retorna o corpo de erro do TMDB com `status_code` 34. As outras falhas usam o mesmo corpo.

| HTTP | status_code | Quando                                                                                        |
| ---- | ----------- | --------------------------------------------------------------------------------------------- |
| 401  | 7           | A chave está ausente ou incorreta.                                                            |
| 402  | 36          | O período do plano terminou.                                                                  |
| 404  | 34          | Nenhuma produtora ou emissora com esse id, ou um id que não é um número.                      |
| 405  | 37          | Você enviou um método de escrita.                                                             |
| 429  | 25          | Acima do seu limite de requisições por minuto. Espere os segundos indicados em `Retry-After`. |

Veja [erros](https://amodb.dev/pt/errors/) para a lista completa e [limites de requisições](https://amodb.dev/pt/rate-limits/) para os headers.

## Notas práticas

- Guarde o `id` da produtora junto com o nome. Nomes mudam, ids não.
- Verifique se `logo_path` é `null` antes de exibi-lo. Não conte com `homepage`, `headquarters` nem `description`, porque estão vazios.
- Os detalhes de produtoras e emissoras ficam em cache por 6 horas na borda. Os arquivos de logo em `img.amodb.dev` ficam em cache por 30 dias.
- Uma emissora é um conceito de TV. Para obter as séries dela, use `with_networks` em `/discover/tv`, não no discover de filmes.
- Para encontrar uma produtora pelo nome, use a busca de produtoras acima e escolha a linha certa por `name` e `origin_country`.

## Perguntas e respostas

### Onde consigo o id de uma produtora ou de uma emissora?

Leia os ids em títulos que você já buscou. Um filme lista production_companies, e uma série lista networks e production_companies. Cada entrada traz o id numérico que os endpoints de produtora e de emissora aceitam.

### Dá para listar todos os filmes de uma produtora?

Use o discover com o filtro with_companies. Passe o id da produtora e percorra as páginas dos resultados. Acrescente with_networks no discover de TV para listar as séries que uma emissora exibiu.

### Os arquivos de logo ficam atrás da chave de API?

Não. O JSON que traz o caminho do logo exige a sua chave, mas os arquivos em img.amodb.dev não exigem chave e ficam em cache por 30 dias.

### Como encontro uma produtora pelo nome?

Chame GET /3/search/company?query=lucasfilm. As linhas não são ordenadas por correspondência exata, então compare name e origin_country e pegue o id da linha certa. Não existe busca de emissoras, então leia os ids de emissoras em uma série.

## Páginas relacionadas

- [API de detalhes de filmes](https://amodb.dev/pt/movies/): API de detalhes de filmes com caminhos e JSON do TMDB v3. Busque um filme por id e junte créditos, avaliações e moods com append_to_response, em 14 idiomas.
- [API de séries de TV](https://amodb.dev/pt/tv-series/): API de séries de TV com os mesmos caminhos e JSON do TMDB v3. Busque uma série por id com temporadas, emissoras, próximo episódio e classificações.
- [API Discover](https://amodb.dev/pt/discover/): API Discover com os mesmos filtros do TMDB v3. Liste filmes e séries por gênero, elenco, produtora, palavra-chave, ano, nota, duração e provedor, com ordenação.
- [API de imagens e host de imagens](https://amodb.dev/pt/images-api/): API de imagens de filmes com caminhos do TMDB v3: liste pôsteres, backdrops, logos e stills por título e carregue-os de img.amodb.dev em 10 tamanhos, sem chave.
- [API de busca](https://amodb.dev/pt/search/): API de busca com caminhos e JSON do TMDB v3. Encontre filmes, séries, pessoas, coleções, produtoras e palavras-chave por texto, com filtro de ano e paginação.
- [Início rápido](https://amodb.dev/pt/quickstart/): Faça sua primeira chamada ao amodb: obtenha uma chave, peça um filme em curl, JavaScript, Python, PHP ou Go e carregue o pôster. Menos de 2 minutos.

Atualizado: 2026-10-18. Source: https://amodb.dev/pt/companies-networks/
