Anivex

API Pública

Acesso gratuito e sem autenticação a dados de animes, gêneros e estúdios catalogados no Anivex. Apenas leitura — endpoints de escrita requerem autenticação.

Base URL http://localhost/api

Limites de requisição

Endpoint Limite Janela
GET /anime, /anime/:slug, /genres, /studios 60 req 1 minuto
GET /anime/search 30 req 1 minuto

Ao exceder o limite a API retorna 429 Too Many Requests com o header Retry-After indicando quantos segundos aguardar.

Endpoints

GET /anime

Lista animes publicados com filtros e paginação.

Parâmetros

genre string Slug do gênero (ex: acao, romance)
year integer Ano de lançamento (1900–2100)
type string TV, Movie, OVA, ONA, Special
status string Airing, Finished, Upcoming
season string spring, summer, fall, winter
min_score number Nota mínima (0–10)
has_trailer boolean Filtrar por presença de trailer
sort string newest, oldest, score_desc, score_asc, title_asc, title_desc
per_page integer Itens por página — máx 25 (padrão: 25)
page integer Página (padrão: 1)

Exemplo

# Listar top animes de ação ordenados por nota curl "http://localhost/api/anime?genre=adventure&sort=score_desc&per_page=10"
GET /anime/search

Busca por título (suporta título original, inglês e japonês). Limite: 30 req/min.

Parâmetros

q string * Termo de busca — mín. 2, máx. 120 caracteres
per_page integer Itens por página — máx 25 (padrão: 25)
page integer Página (padrão: 1)

Exemplo

curl "http://localhost/api/anime/search?q=.hack%2F%2FSign&per_page=5"
GET /anime/:slug

Detalhes completos de um anime: sinopse, gêneros, estúdios, personagens, episódios e músicas.

Parâmetros de path

slug string * Identificador único do anime (ex: hacksign)

Exemplo

curl "http://localhost/api/anime/hacksign"

Resposta de exemplo

{ "data": { "id": 34, "slug": "hacksign", "title": ".hack//Sign", "title_english": ".hack//Sign", "type": "TV", "episodes": 26, "status": "Finalizado", "score": "6.96", "year": 2002, "image_url": "/storage/images/anime/e0f3e6bf215f038ce4074b075823e012.webp", "genres": [ { "id": 6, "name": "Aventura", "slug": "adventure" }, { "id": 7, "name": "Fantasia", "slug": "fantasy" } ], "studios": [ { "id": 19, "name": "Bee Train", "slug": "bee-train" } ], "...": "(+ synopsis, characters, episodes_list, themes)" } }
GET /genres

Lista todos os gêneros disponíveis. Resposta cacheada por 6 horas.

Resposta de exemplo

{ "data": [ { "id": 1, "name": "Ação", "slug": "action" }, { "id": 58, "name": "Artes Cênicas", "slug": "performing-arts" }, { "id": 8, "name": "Artes Marciais", "slug": "martial-arts" } ] }
GET /studios

Lista todos os estúdios disponíveis. Resposta cacheada por 6 horas.

Resposta de exemplo

{ "data": [ { "id": 44, "name": "8bit", "slug": "8bit" }, { "id": 38, "name": "A-1 Pictures", "slug": "a-1-pictures" }, { "id": 9, "name": "A.C.G.T.", "slug": "acgt" } ] }

Códigos de erro

Código Significado
200Sucesso
422Parâmetros inválidos — verifique o campo errors na resposta
404Anime não encontrado ou não publicado
429Limite de requisições atingido — aguarde o tempo indicado em Retry-After

Dados fornecidos para uso não comercial. Não redistribua em massa. Respeite os rate limits.