{"openapi":"3.1.0","info":{"title":"Acervo CH — API","version":"1.0.0","description":"Acervo de Chaves, Chapolin e Chespirito: episódios, esquetes,\ndublagens, refilmagens, trilha sonora e quadrinhos.\n\nFonte: Fórum Chaves — Lista CH — https://www.forumchaves.com.br/listach/site/.\nCrédito visível é a condição de usar o trabalho da comunidade:\ntoda resposta carrega a atribuição em `meta.source`.","license":{"name":"Uso livre com atribuição à fonte"}},"servers":[{"url":"https://acervoch.lat"}],"tags":[{"name":"discovery","description":"Descoberta"},{"name":"archive","description":"Acervo"},{"name":"people","description":"Pessoas"},{"name":"dubbing","description":"Dublagem"},{"name":"soundtrack","description":"Trilha sonora"},{"name":"comics","description":"Quadrinhos"}],"components":{"schemas":{"Person":{"type":"object","required":["name","slug"],"properties":{"name":{"type":"string"},"slug":{"type":"string","description":"Identificador em `/people/{slug}`."},"photo":{"type":["string","null"],"description":"Retrato, já como URL. Vem da camada curada, não do acervo — o Fórum não publica foto de pessoa —, então é nulo para quem ainda não teve biografia escrita."}}},"Stats":{"type":"object","properties":{"shows":{"type":"integer"},"episodes":{"type":"integer"},"sketches":{"type":"integer","description":"A unidade do acervo."},"people":{"type":"integer"},"dubs":{"type":"integer"},"voiceRoles":{"type":"integer","description":"Pares dublador → ator."},"networks":{"type":"integer"},"remakes":{"type":"integer","description":"Arestas diretas, não componentes."},"images":{"type":"integer"},"tracks":{"type":"integer"},"bgms":{"type":"integer","description":"Marcações de trilha."},"lost":{"type":"integer","description":"Episódios sem cópia conhecida em lugar nenhum — o perdido mundial."},"unaired":{"type":"integer","description":"Esquetes que nunca foram ao ar no Brasil."},"lostDubs":{"type":"integer","description":"Dublagens cujo áudio não sobrou. Não é o mesmo que `lost`: o episódio pode estar preservado e a dublagem dele ter sumido."},"survivors":{"type":"integer","description":"Episódios catalogados como comuns — a cópia existe."},"magazines":{"type":"integer"},"editions":{"type":"integer"},"stories":{"type":"integer"}}},"Show":{"type":"object","required":["id","name","slug","group"],"properties":{"id":{"type":"integer"},"name":{"type":"string"},"slug":{"type":"string","description":"Identificador em `/shows/{slug}`."},"years":{"type":["string","null"],"description":"Como a fonte escreve o período — `1973-1980`."},"startYear":{"type":["integer","null"]},"endYear":{"type":["integer","null"]},"seasons":{"type":["integer","null"]},"commonCount":{"type":"integer","description":"Episódios com cópia conhecida."},"lostCount":{"type":"integer","description":"Episódios sem cópia conhecida."},"sketchCount":{"type":"integer","description":"Esquetes da série inteira — a unidade do acervo."},"group":{"type":"integer","description":"Bloco editorial do Fórum Chaves. Junto com a posição, é o que dá a ordem de `/shows`."},"cover":{"type":["string","null"]}}},"Season":{"type":"object","required":["season","episodes","sketches"],"properties":{"season":{"type":"string","description":"Texto, não número: a fonte escreve ora o ano (`1973`), ora o ordinal (`1ª temporada`), e converter perderia metade da base."},"episodes":{"type":"integer"},"sketches":{"type":"integer"},"lost":{"type":"integer"},"dubs":{"type":"integer"},"cues":{"type":"integer","description":"Marcações de trilha."}}},"Story":{"type":"object","required":["id","magazine","magazineSlug","edition","reprint"],"properties":{"id":{"type":"integer"},"title":{"type":["string","null"],"description":"Nulo quando a fonte não registrou nome para a história."},"order":{"type":"integer","description":"Posição dentro da edição."},"reprint":{"type":"boolean","description":"A mesma história republicada em outra edição."},"character":{"type":["string","null"]},"notes":{"type":["string","null"]},"magazine":{"type":"string"},"magazineSlug":{"type":"string"},"edition":{"type":"string"},"cover":{"type":["string","null"],"description":"Capa da edição, já como URL. É identificação da revista, não retrato do conteúdo."},"episodeId":{"type":["integer","null"],"description":"O episódio em que **esta edição aparece em cena**, quando o acervo o identifica. Não é adaptação."},"writing":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"art":{"type":"array","items":{"$ref":"#/components/schemas/Person"}}}},"SketchSummary":{"type":"object","required":["id","title","showName","showSlug","lost"],"properties":{"id":{"type":"integer"},"episodeId":{"type":"integer","description":"O episódio que contém este esquete. Esquete não tem página própria."},"order":{"type":"integer","description":"Posição dentro do episódio."},"letter":{"type":["string","null"],"description":"`a`, `b`, `c`… só quando o episódio tem mais de um bloco."},"numberLabel":{"type":["string","null"],"description":"O número na exibição que o público conhece (`#324`). Nulo onde a fonte não numera."},"title":{"type":"string"},"originalTitle":{"type":["string","null"],"description":"O título no idioma da fonte."},"character":{"type":["string","null"]},"synopsis":{"type":["string","null"]},"image":{"type":["string","null"],"description":"Caminho relativo servido por nós."},"year":{"type":["integer","null"]},"showName":{"type":"string"},"showSlug":{"type":"string"},"brazilStatus":{"type":["string","null"],"description":"Situação no Brasil, como o acervo escreve: `COMUM`, `INÉDITO`."},"lost":{"type":"boolean","description":"Perdido mundial: não sobrou cópia conhecida em lugar nenhum."},"remakes":{"type":"integer","description":"Quantas versões diretas este roteiro tem."},"dubs":{"type":"integer"},"bgms":{"type":"integer","description":"Faixas de trilha decupadas neste esquete."}}},"DubCastEntry":{"type":"object","required":["voiceActor","voiceActorSlug"],"properties":{"voiceActor":{"type":"string"},"voiceActorSlug":{"type":"string"},"voiceActorPhoto":{"type":["string","null"]},"actor":{"type":["string","null"],"description":"Nulo quando a fonte não identificou quem esta voz dubla."},"actorSlug":{"type":["string","null"]},"actorPhoto":{"type":["string","null"]}}},"Dub":{"type":"object","required":["id","version"],"properties":{"id":{"type":"integer"},"version":{"type":"string"},"studio":{"type":["string","null"]},"year":{"type":["integer","null"],"description":"Nulo em 1.211 das 1.957 dublagens — a fonte não data mais da metade das passagens pelo estúdio."},"title":{"type":["string","null"],"description":"Como esta dublagem rebatizou o esquete, quando rebatizou."},"note":{"type":["string","null"]},"cast":{"type":"array","items":{"$ref":"#/components/schemas/DubCastEntry"}}}},"SoundtrackCue":{"type":"object","required":["dub"],"properties":{"position":{"type":["integer","null"]},"time":{"type":["string","null"],"description":"Minuto da cena, como a fonte grava."},"event":{"type":["string","null"],"description":"A cena em que a música entra."},"dub":{"type":"string","description":"A dublagem a que esta marcação pertence."},"track":{"type":["string","null"]},"trackId":{"type":["integer","null"]},"artist":{"type":["string","null"]},"album":{"type":["string","null"]},"label":{"type":["string","null"]},"trackYear":{"type":["integer","null"]},"audioSource":{"type":["string","null"]},"audioUrl":{"type":["string","null"]},"discogsUrl":{"type":["string","null"]},"creditedTo":{"type":["string","null"],"description":"Quem decupou esta marcação. Crédito por linha, não por página."}}},"Remake":{"type":"object","required":["episodeId"],"properties":{"episodeId":{"type":"integer"},"sketchId":{"type":["integer","null"]},"title":{"type":["string","null"]},"description":{"type":["string","null"]},"year":{"type":["integer","null"]},"image":{"type":["string","null"]},"showName":{"type":["string","null"]}}},"DubVersion":{"type":"object","required":["version","dubs","sketches"],"properties":{"version":{"type":"string","description":"`Maga 1990`, `Gabia`…"},"studio":{"type":["string","null"]},"year":{"type":["integer","null"],"description":"Nulo em 1.211 das 1.957 dublagens — a fonte não data mais da metade."},"language":{"type":["string","null"]},"dubs":{"type":"integer"},"sketches":{"type":"integer"},"voiceActors":{"type":"integer"},"lost":{"type":"integer","description":"Dublagens cujo áudio não sobrou."},"unaired":{"type":"integer","description":"Dubladas e nunca exibidas."}}},"Studio":{"type":"object","required":["name","dubs","sketches"],"properties":{"name":{"type":"string"},"dubs":{"type":"integer","description":"Passagens pelo estúdio."},"sketches":{"type":"integer"},"versions":{"type":"integer","description":"Quantas versões saíram desta casa."},"voiceActors":{"type":"integer"},"lost":{"type":"integer","description":"Dublagens desta casa cujo áudio não sobrou."},"startYear":{"type":["integer","null"],"description":"Nulo quando a fonte não data nenhuma passagem — o que acontece na maioria das casas."},"endYear":{"type":["integer","null"]}}},"SketchDetail":{"type":"object","required":["id","title","titleKnown","show","episode","lost"],"properties":{"id":{"type":"integer"},"title":{"type":"string"},"titleKnown":{"type":"boolean","description":"Falso nos 10 episódios perdidos em que a fonte grava `?`. É informação — título desconhecido —, não sujeira: precisa de tratamento na tela, não de filtro."},"originalTitle":{"type":["string","null"]},"character":{"type":["string","null"]},"synopsis":{"type":["string","null"]},"trivia":{"type":"array","items":{"type":"string"}},"order":{"type":"integer"},"letter":{"type":["string","null"]},"officialTitle":{"type":"boolean"},"rerun":{"type":"boolean","description":"Reprise. Vinha colado no título como `[REPRISE]` na fonte, e aqui é booleano."},"image":{"type":["string","null"]},"lost":{"type":"boolean"},"brazilStatus":{"type":["string","null"],"description":"Situação no Brasil — por esquete, não por episódio."},"brazilPremiere":{"type":["string","null"]},"brazilNetwork":{"type":["string","null"]},"show":{"$ref":"#/components/schemas/Show"},"episode":{"type":"object","description":"O episódio de transmissão. `mexicoStatus` e `mexicoPremiere` são dele, não do esquete — tratá-los por esquete duplicaria o dado 3.334 vezes.","properties":{"id":{"type":"integer"},"label":{"type":["string","null"]},"year":{"type":["integer","null"]},"season":{"type":["string","null"]},"mexicoStatus":{"type":["string","null"]},"mexicoPremiere":{"type":["string","null"]},"url":{"type":["string","null"]}}},"numbering":{"type":"array","description":"As cinco numerações do mesmo episódio.","items":{"type":"object","properties":{"order":{"type":"string"},"label":{"type":"string"}}}},"siblings":{"type":"array","description":"Os outros esquetes do mesmo episódio de transmissão.","items":{"type":"object","properties":{"id":{"type":"integer"},"letter":{"type":["string","null"]},"title":{"type":"string"}}}},"cast":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"direction":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"writing":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"dubs":{"type":"array","items":{"$ref":"#/components/schemas/Dub"}},"soundtrack":{"type":"array","items":{"$ref":"#/components/schemas/SoundtrackCue"}},"remakes":{"type":"array","items":{"$ref":"#/components/schemas/Remake"}},"broadcasts":{"type":"array","description":"Onde passou, e se ainda está disponível.","items":{"type":"object","properties":{"network":{"type":"string"},"slug":{"type":"string"},"icon":{"type":["string","null"]},"status":{"type":["string","null"]},"available":{"type":"boolean"}}}}}},"PersonSummary":{"allOf":[{"$ref":"#/components/schemas/Person"},{"type":"object","properties":{"roles":{"type":"array","description":"Quantos esquetes em cada papel.","items":{"type":"object","properties":{"role":{"type":"string"},"count":{"type":"integer"}}}},"total":{"type":"integer","description":"A soma dos papéis."}}}]},"Facet":{"type":"object","required":["value","label","count"],"properties":{"value":{"type":"string","description":"O que vai na query string."},"label":{"type":"string","description":"Como se escreve na tela."},"count":{"type":"integer"}}},"Facets":{"type":"object","properties":{"shows":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"years":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"characters":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"actors":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"voiceActors":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"versions":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"studios":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"networks":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}},"status":{"type":"array","items":{"$ref":"#/components/schemas/Facet"}}}},"Envelope":{"type":"object","required":["status","data","meta"],"properties":{"status":{"type":"string","enum":["ok"]},"data":{"description":"Objeto ou lista, conforme a rota."},"meta":{"$ref":"#/components/schemas/Meta"}}},"Meta":{"type":"object","properties":{"locale":{"type":"string","enum":["pt","es"]},"page":{"type":"integer"},"perPage":{"type":"integer"},"total":{"type":"integer"},"pages":{"type":"integer"},"source":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"}}}}},"Error":{"type":"object","required":["status","error"],"properties":{"status":{"type":"string","enum":["error"]},"error":{"type":"object","properties":{"code":{"type":"string","enum":["invalid_parameter","not_found","unknown_parameter","empty_search","rate_limited"]},"message":{"type":"string"},"field":{"type":["string","null"]}}}}}}},"paths":{"/api/v1":{"get":{"operationId":"index","summary":"Índice das rotas e números do acervo.","tags":["discovery"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/stats":{"get":{"operationId":"stats","summary":"Os números do acervo.","description":"Três campos nomeiam coisas que se confundem: `lost` conta episódio sem cópia no mundo; `unaired` conta esquete que existe e nunca foi ao ar no Brasil; `lostDubs` conta a passagem pelo estúdio cujo áudio não sobrou — e essa pode acontecer com episódio perfeitamente preservado no México.","tags":["discovery"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Stats"}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/sources":{"get":{"operationId":"sources","summary":"As fontes e os créditos nominais de quem construiu o acervo.","description":"Existe para que qualquer cliente atribua corretamente sem hardcodar nomes.","tags":["discovery"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/search":{"get":{"operationId":"search","summary":"Busca reversa — a rota principal.","description":"Procura em título, título original, personagem, sinopse e curiosidades, sem acento. O último termo vale como prefixo: quem digitou `botij` ainda está escrevendo. Aceita os mesmos filtros de `/sketches`, então dá para achar e depois estreitar sem largar o termo.","tags":["archive"],"parameters":[{"name":"q","in":"query","required":false,"description":"O que procurar: um objeto, uma cena, um apelido.","schema":{"type":"string"},"example":"tortinhas"},{"name":"show","in":"query","required":false,"description":"Endereço do programa.","schema":{"type":"string"},"example":"chaves"},{"name":"year","in":"query","required":false,"description":"Ano de exibição do episódio.","schema":{"type":"integer"},"example":"1974"},{"name":"character","in":"query","required":false,"description":"Personagem principal do esquete.","schema":{"type":"string"},"example":"Chaves"},{"name":"actor","in":"query","required":false,"description":"Endereço de quem atua.","schema":{"type":"string"},"example":"roberto-gomez-bolanos","explode":true},{"name":"director","in":"query","required":false,"description":"Endereço de quem dirige.","schema":{"type":"string"},"example":"enrique-segoviano","explode":true},{"name":"writer","in":"query","required":false,"description":"Endereço de quem escreve.","schema":{"type":"string"},"example":"roberto-gomez-bolanos","explode":true},{"name":"voiceActor","in":"query","required":false,"description":"Endereço de quem dubla.","schema":{"type":"string"},"example":"carlos-seidl","explode":true},{"name":"version","in":"query","required":false,"description":"Versão de dublagem, como a fonte escreve: “Maga 1990”, “Gabia”.","schema":{"type":"string"},"example":"Maga 1990"},{"name":"studio","in":"query","required":false,"description":"Estúdio de dublagem, agrupando suas versões.","schema":{"type":"string"},"example":"Maga"},{"name":"network","in":"query","required":false,"description":"Endereço da emissora.","schema":{"type":"string"},"example":"sbt","explode":true},{"name":"status","in":"query","required":false,"description":"Situação no Brasil, como o acervo escreve: `COMUM`, `INÉDITO`.","schema":{"type":"string"},"example":"COMUM"},{"name":"lost","in":"query","required":false,"description":"Só os perdidos.","schema":{"type":"boolean"},"example":"true"},{"name":"mode","in":"query","required":false,"description":"Como combinar filtros repetidos. `and` devolve quem tem todos; `or`, a união.","schema":{"type":"string","enum":["and","or"],"default":"and"},"example":"and"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SketchSummary"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/picks":{"get":{"operationId":"picks","summary":"Amostra do acervo, trocada uma vez por dia.","tags":["archive"],"parameters":[{"name":"count","in":"query","required":false,"description":"Quantos itens, até 24.","schema":{"type":"integer","default":"6"},"example":"6"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SketchSummary"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shows":{"get":{"operationId":"shows","summary":"Os 18 programas, na curadoria do Fórum Chaves.","tags":["archive"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Show"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shows/{slug}":{"get":{"operationId":"show","summary":"Um programa.","tags":["archive"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"chaves"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Show"}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shows/{slug}/episodes":{"get":{"operationId":"showEpisodes","summary":"Os episódios de um programa.","tags":["archive"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"chaves"},{"name":"season","in":"query","required":false,"description":"Recorta por temporada. É texto: a fonte escreve ora o ano (1973), ora o ordinal (1ª temporada).","schema":{"type":"string"},"example":"1975"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/shows/{slug}/seasons":{"get":{"operationId":"showSeasons","summary":"As contagens por temporada de um programa.","description":"Existe porque o recorte útil é a temporada, não o programa inteiro: 1973 tem 79 esquetes em 44 episódios e 1979 tem um por episódio. Devolve episódios, esquetes, perdidos, dublagens e marcações de trilha de cada uma.","tags":["archive"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"chaves"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Season"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/episodes":{"get":{"operationId":"episodes","summary":"Episódios de transmissão.","tags":["archive"],"parameters":[{"name":"show","in":"query","required":false,"description":"Endereço do programa.","schema":{"type":"string"},"example":"chaves"},{"name":"year","in":"query","required":false,"description":"Ano de exibição.","schema":{"type":"integer"},"example":"1974"},{"name":"season","in":"query","required":false,"description":"Temporada, como a fonte escreve.","schema":{"type":"string"},"example":"1975"},{"name":"mexicoStatus","in":"query","required":false,"description":"Situação no México.","schema":{"type":"string"},"example":"PERDIDO"},{"name":"lost","in":"query","required":false,"description":"Só os sem cópia conhecida.","schema":{"type":"boolean"},"example":"true"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/episodes/{id}":{"get":{"operationId":"episode","summary":"Um episódio, com esquetes, numerações e vizinhos.","description":"As cinco numerações vêm em `numbering`; a ausência de uma delas é informação. `previousId` e `nextId` são os vizinhos que a fonte publica, não derivados do número.","tags":["archive"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/sketches":{"get":{"operationId":"sketches","summary":"Esquetes — a unidade do acervo.","description":"Um episódio de transmissão contém 1..N esquetes independentes, cada um com título, sinopse, elenco e dublagem próprios.","tags":["archive"],"parameters":[{"name":"show","in":"query","required":false,"description":"Endereço do programa.","schema":{"type":"string"},"example":"chaves"},{"name":"year","in":"query","required":false,"description":"Ano de exibição do episódio.","schema":{"type":"integer"},"example":"1974"},{"name":"character","in":"query","required":false,"description":"Personagem principal do esquete.","schema":{"type":"string"},"example":"Chaves"},{"name":"actor","in":"query","required":false,"description":"Endereço de quem atua.","schema":{"type":"string"},"example":"roberto-gomez-bolanos","explode":true},{"name":"director","in":"query","required":false,"description":"Endereço de quem dirige.","schema":{"type":"string"},"example":"enrique-segoviano","explode":true},{"name":"writer","in":"query","required":false,"description":"Endereço de quem escreve.","schema":{"type":"string"},"example":"roberto-gomez-bolanos","explode":true},{"name":"voiceActor","in":"query","required":false,"description":"Endereço de quem dubla.","schema":{"type":"string"},"example":"carlos-seidl","explode":true},{"name":"version","in":"query","required":false,"description":"Versão de dublagem, como a fonte escreve: “Maga 1990”, “Gabia”.","schema":{"type":"string"},"example":"Maga 1990"},{"name":"studio","in":"query","required":false,"description":"Estúdio de dublagem, agrupando suas versões.","schema":{"type":"string"},"example":"Maga"},{"name":"network","in":"query","required":false,"description":"Endereço da emissora.","schema":{"type":"string"},"example":"sbt","explode":true},{"name":"status","in":"query","required":false,"description":"Situação no Brasil, como o acervo escreve: `COMUM`, `INÉDITO`.","schema":{"type":"string"},"example":"COMUM"},{"name":"lost","in":"query","required":false,"description":"Só os perdidos.","schema":{"type":"boolean"},"example":"true"},{"name":"mode","in":"query","required":false,"description":"Como combinar filtros repetidos. `and` devolve quem tem todos; `or`, a união.","schema":{"type":"string","enum":["and","or"],"default":"and"},"example":"and"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SketchSummary"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/sketches/{id}":{"get":{"operationId":"sketch","summary":"O recurso mais rico da API.","description":"Elenco, direção, dublagens com o par dublador → ator, exibições, refilmagens diretas e trilha decupada.","tags":["archive"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SketchDetail"}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/sketches/{id}/remakes":{"get":{"operationId":"remakes","summary":"As refilmagens diretas de um esquete.","description":"Aresta direta, nunca componente conexo: o fechamento transitivo junta 83% do grafo num blob sem significado. Refilmagem é remake; “versão” é o termo da dublagem.","tags":["archive"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Remake"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/facets":{"get":{"operationId":"facets","summary":"Contagens para montar filtros, dentro do recorte atual.","tags":["archive"],"parameters":[{"name":"show","in":"query","required":false,"description":"Endereço do programa.","schema":{"type":"string"},"example":"chaves"},{"name":"year","in":"query","required":false,"description":"Ano de exibição do episódio.","schema":{"type":"integer"},"example":"1974"},{"name":"character","in":"query","required":false,"description":"Personagem principal do esquete.","schema":{"type":"string"},"example":"Chaves"},{"name":"actor","in":"query","required":false,"description":"Endereço de quem atua.","schema":{"type":"string"},"example":"roberto-gomez-bolanos","explode":true},{"name":"director","in":"query","required":false,"description":"Endereço de quem dirige.","schema":{"type":"string"},"example":"enrique-segoviano","explode":true},{"name":"writer","in":"query","required":false,"description":"Endereço de quem escreve.","schema":{"type":"string"},"example":"roberto-gomez-bolanos","explode":true},{"name":"voiceActor","in":"query","required":false,"description":"Endereço de quem dubla.","schema":{"type":"string"},"example":"carlos-seidl","explode":true},{"name":"version","in":"query","required":false,"description":"Versão de dublagem, como a fonte escreve: “Maga 1990”, “Gabia”.","schema":{"type":"string"},"example":"Maga 1990"},{"name":"studio","in":"query","required":false,"description":"Estúdio de dublagem, agrupando suas versões.","schema":{"type":"string"},"example":"Maga"},{"name":"network","in":"query","required":false,"description":"Endereço da emissora.","schema":{"type":"string"},"example":"sbt","explode":true},{"name":"status","in":"query","required":false,"description":"Situação no Brasil, como o acervo escreve: `COMUM`, `INÉDITO`.","schema":{"type":"string"},"example":"COMUM"},{"name":"lost","in":"query","required":false,"description":"Só os perdidos.","schema":{"type":"boolean"},"example":"true"},{"name":"mode","in":"query","required":false,"description":"Como combinar filtros repetidos. `and` devolve quem tem todos; `or`, a união.","schema":{"type":"string","enum":["and","or"],"default":"and"},"example":"and"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/lost":{"get":{"operationId":"lost","summary":"O que não sobreviveu.","description":"`where=mexico` devolve episódios sem cópia conhecida — o perdido mundial. `where=brazil` devolve esquetes sem exibição conhecida aqui. São perguntas diferentes.","tags":["archive"],"parameters":[{"name":"where","in":"query","required":false,"description":"Qual perda.","schema":{"type":"string","enum":["mexico","brazil"],"default":"mexico"},"example":"mexico"},{"name":"show","in":"query","required":false,"description":"Endereço do programa.","schema":{"type":"string"},"example":"chaves"},{"name":"year","in":"query","required":false,"description":"Ano de exibição.","schema":{"type":"integer"},"example":"1974"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SketchSummary"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/people":{"get":{"operationId":"people","summary":"Pessoas, por volume de trabalho.","tags":["people"],"parameters":[{"name":"role","in":"query","required":false,"description":"Filtra por papel.","schema":{"type":"string","enum":["cast","direction","writing","dubbing"]},"example":"dubbing"},{"name":"profiled","in":"query","required":false,"description":"Só quem tem biografia escrita e revisada. O acervo conhece a pessoa pelos créditos; a ficha é outra coisa, e são bem menos.","schema":{"type":"boolean"},"example":"true"},{"name":"curated","in":"query","required":false,"description":"Quem a curadoria já alcançou de algum jeito: biografia **ou** retrato. É maior que profiled e menor que o acervo — e não dá para pedir combinando dois filtros, porque booleanos se somam com E e aqui a pergunta é OU.","schema":{"type":"boolean"},"example":"true"},{"name":"q","in":"query","required":false,"description":"Trecho do nome.","schema":{"type":"string"},"example":"gomez"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PersonSummary"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/people/facets":{"get":{"operationId":"peopleFacets","summary":"Quantas pessoas em cada papel, dentro do recorte atual.","description":"Aceita os mesmos parâmetros de `/people` menos `role` — é o próprio papel que está sendo decidido, e incluí-lo faria a contagem de cada opção cair para *um*.","tags":["people"],"parameters":[{"name":"q","in":"query","required":false,"description":"Trecho do nome.","schema":{"type":"string"},"example":"gomez"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/people/{slug}":{"get":{"operationId":"person","summary":"A ficha de uma pessoa, separada por papel.","description":"`dubbed` responde *o que essa pessoa dublou*; `dubbedBy` responde *quem deu voz a ela* — que é como o público brasileiro chega à obra.","tags":["people"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"roberto-gomez-bolanos"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Person"}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/dubs":{"get":{"operationId":"dubs","summary":"As dublagens, com elenco dublador → ator.","tags":["dubbing"],"parameters":[{"name":"version","in":"query","required":false,"description":"A versão como a fonte escreve: “Maga 1990”, “Gabia”.","schema":{"type":"string"},"example":"Maga 1990"},{"name":"studio","in":"query","required":false,"description":"O estúdio, agrupando suas versões: “Maga” traz 1984, 1988, 1990 e 1992.","schema":{"type":"string"},"example":"Maga"},{"name":"year","in":"query","required":false,"description":"Ano da dublagem.","schema":{"type":"integer"},"example":"1974"},{"name":"voiceActor","in":"query","required":false,"description":"Endereço de quem dubla.","schema":{"type":"string"},"example":"carlos-seidl"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/dubs/versions":{"get":{"operationId":"dubVersions","summary":"As versões de dublagem, com quanto de acervo cada uma carrega.","description":"A fonte identifica cada passagem pelo estúdio como versão — “Maga 1990”, “Gabia”. O campo estudio é essa versão sem o ano, e quando a identificação é pelo idioma, o idioma cai ali: por isso “Inglês” e “Português de Portugal” apareciam como casas de dublagem. Aqui eles vêm com language preenchido e studio nulo.","tags":["dubbing"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DubVersion"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/dubs/studios":{"get":{"operationId":"studios","summary":"As casas de dublagem, com o que saiu de cada uma.","description":"Estúdio não é versão: a Maga é uma casa e cinco versões. Aqui a unidade é a casa, com a soma das passagens, quantos dubladores passaram por ela e o período — que costuma vir nulo, porque a fonte não data mais da metade das dublagens. `Inglês` e `Português de Portugal` **não** aparecem: são idioma no campo de estúdio, e estão em `/dubs/versions`.","tags":["dubbing"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Studio"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/voices":{"get":{"operationId":"voices","summary":"O par dublador → ator, nos dois sentidos.","description":"405 combinações de voz × ator × versão, cobrindo 128 dubladores e 111 atores. O acervo credita dublador → ator, nunca dublador → personagem: quem dubla Bolaños dubla o Chaves, o Chapolin e o Chaveco.","tags":["dubbing"],"parameters":[{"name":"by","in":"query","required":false,"description":"Por qual lado agrupar: actor (padrão) ou voice. O conteúdo é o mesmo.","schema":{"type":"string"},"example":"actor"},{"name":"actor","in":"query","required":false,"description":"Endereço do ator dublado.","schema":{"type":"string"},"example":"roberto-gomez-bolanos"},{"name":"voiceActor","in":"query","required":false,"description":"Endereço de quem dubla.","schema":{"type":"string"},"example":"carlos-seidl"},{"name":"version","in":"query","required":false,"description":"Só os pares daquela versão de dublagem.","schema":{"type":"string"},"example":"Maga 1990"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/titles":{"get":{"operationId":"titles","summary":"Os nomes que cada dublagem deu ao episódio.","description":"371 títulos em 344 esquetes, e nenhum coincide com o oficial — é o que sustenta a busca reversa. kind separa rebatismo de dublagem brasileira (353) de título em outro idioma (18).","tags":["dubbing"],"parameters":[{"name":"kind","in":"query","required":false,"description":"dub para rebatismo de dublagem brasileira; translation para título em outro idioma. Sem o filtro, vêm os dois.","schema":{"type":"string"},"example":"dub"},{"name":"show","in":"query","required":false,"description":"Endereço do programa.","schema":{"type":"string"},"example":"chaves"},{"name":"version","in":"query","required":false,"description":"Só os títulos daquela versão de dublagem.","schema":{"type":"string"},"example":"Maga 1990"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/networks":{"get":{"operationId":"networks","summary":"Emissoras e serviços que exibiram o acervo.","tags":["dubbing"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/networks/{slug}/sketches":{"get":{"operationId":"networkSketches","summary":"O que uma emissora exibiu.","tags":["dubbing"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"sbt"},{"name":"available","in":"query","required":false,"description":"Só o que está no ar agora — diferente de *já passou aqui*.","schema":{"type":"boolean"},"example":"true"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SketchSummary"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/tracks":{"get":{"operationId":"tracks","summary":"A trilha, pelo que mais toca no acervo.","description":"Decupagem de Chamone e CarneSeca: cada entrada musical das dublagens Maga com cena, minuto, faixa, artista e disco. Atenção ao campo identified: a faixa 1909 chama-se “Não sonorizado” e aparece 561 vezes, mas é um marcador de trecho sem identificação, não música — ela lidera qualquer contagem de mais tocadas e precisa ficar fora de listas de destaque. O rótulo honesto para exibir é “não identificado”.","tags":["soundtrack"],"parameters":[{"name":"q","in":"query","required":false,"description":"Faixa, artista ou álbum.","schema":{"type":"string"},"example":"tortinhas"},{"name":"version","in":"query","required":false,"description":"Versão de dublagem: a trilha muda com ela, e a decupagem é feita versão por versão.","schema":{"type":"string"},"example":"Maga 1990"},{"name":"identified","in":"query","required":false,"description":"false isola os marcadores de trecho não identificado, que não são música.","schema":{"type":"boolean"},"example":"false"},{"name":"category","in":"query","required":false,"description":"Categoria da faixa.","schema":{"type":"string"},"example":"Trilha branca"},{"name":"artist","in":"query","required":false,"description":"Artista exato.","schema":{"type":"string"},"example":"John Charles Fiddy"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/tracks/facets":{"get":{"operationId":"trackFacets","summary":"Categorias, artistas e identificação, com contagem.","description":"Existe para o cliente não precisar baixar as 914 faixas só para contar quantas há em cada categoria. `identified` é faceta, não filtro de qualidade: a faixa que não casou com um disco conhecido é informação sobre o acervo.","tags":["soundtrack"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/tracks/{id}":{"get":{"operationId":"track","summary":"Onde a música toca, com o momento.","tags":["soundtrack"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"example":"1"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/comics":{"get":{"operationId":"comics","summary":"As revistas em quadrinhos.","tags":["comics"],"parameters":[{"name":"country","in":"query","required":false,"description":"País de publicação (ISO alfa-2). O nome repete entre mercados.","schema":{"type":"string"},"example":"mx"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/comics/{slug}":{"get":{"operationId":"magazine","summary":"Uma revista e suas edições.","tags":["comics"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"el-chavo-del-ocho"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/comics/{slug}/{edition}":{"get":{"operationId":"edition","summary":"Uma edição, com histórias e créditos.","description":"`edition` é texto, não número: a numeração pula porque o acervo é o que os colecionadores têm.","tags":["comics"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"example":"el-chavo-del-ocho"},{"name":"edition","in":"path","required":true,"schema":{"type":"string"},"example":"1"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/stories":{"get":{"operationId":"stories","summary":"Histórias em quadrinhos.","tags":["comics"],"parameters":[{"name":"q","in":"query","required":false,"description":"Título, personagem ou revista.","schema":{"type":"string"},"example":"tortinhas"},{"name":"character","in":"query","required":false,"description":"Personagem da história.","schema":{"type":"string"},"example":"Chaves"},{"name":"writer","in":"query","required":false,"description":"Endereço de quem escreveu.","schema":{"type":"string"},"example":"roberto-gomez-bolanos"},{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"},{"name":"page","in":"query","required":false,"description":"Página, a partir de 1.","schema":{"type":"integer","default":"1"},"example":"1"},{"name":"perPage","in":"query","required":false,"description":"Itens por página, até 100.","schema":{"type":"integer","default":"24"},"example":"24"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Envelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Story"}}}}]}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/stories/facets":{"get":{"operationId":"storyFacets","summary":"Personagens e autores das histórias, com contagem.","description":"Mesmos parâmetros de `/stories`, e a mesma cláusula por dentro: faceta que diverge da listagem mostra um número que não bate com o resultado.","tags":["comics"],"parameters":[{"name":"locale","in":"query","required":false,"description":"Idioma do conteúdo. A versão em espanhol não traz dado brasileiro — é da fonte.","schema":{"type":"string","enum":["pt","es"],"default":"pt"},"example":"pt"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/openapi.json":{"get":{"operationId":"openapi","summary":"Especificação OpenAPI 3.1.","tags":["discovery"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"invalid_parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"not_found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"unknown_parameter · invalid_parameter · empty_search","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"rate_limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}