Documentação da API
Integre filmes, séries, canais de TV, calendários e jogos em tempo real em suas aplicações
Visão Geral
https://looflix.fun/api/v1/
A API Externa do LooFlix permite que desenvolvedores integrem conteúdo de streaming em suas aplicações. Todos os endpoints retornam dados em formato JSON e requerem autenticação via API Key.
O sistema inclui monetização automática através de propagandas, que são inseridas nas respostas baseado na configuração da sua API Key.
Autenticação
Todas as requisições requerem autenticação via API Key. Você pode obter uma API Key através do painel admin.
Métodos de Autenticação
Authorization: Bearer YOUR_API_KEY
Método recomendado. Envie a API Key no header Authorization.
X-API-Key: YOUR_API_KEY
Alternativa ao método Authorization.
?api_key=YOUR_API_KEY
Envie a API Key como parâmetro na URL.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://looflix.fun/api/v1/movies.php
fetch('https://looflix.fun/api/v1/movies.php', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
})
.then(response => response.json())
.then(data => console.log(data));
$ch = curl_init('https://looflix.fun/api/v1/movies.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_API_KEY'
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
import requests
headers = {
'Authorization': 'Bearer YOUR_API_KEY'
}
response = requests.get(
'https://looflix.fun/api/v1/movies.php',
headers=headers
)
data = response.json()
Rate Limiting
- Por hora: Padrão 1000 requisições (configurável)
- Por minuto: Padrão 100 requisições (configurável)
- Quando o limite é excedido, a API retorna status
429 Too Many Requests
Endpoints
Nossa API oferece 4 endpoints principais para diferentes tipos de conteúdo:
- Filmes - Catálogo completo de filmes
- Canais TV - Lista de canais de TV ao vivo
- Jogos/Placar - Jogos de futebol em tempo real
- Calendário - Lançamentos de filmes e séries
Filmes
/api/v1/movies.php
Lista filmes disponíveis no catálogo com paginação e filtros avançados.
Parâmetros de Query
| Parâmetro | Tipo | Descrição | Padrão |
|---|---|---|---|
page |
integer | Número da página | 1 |
limit |
integer | Itens por página (máx 100) | 20 |
search |
string | Buscar por título | - |
genre |
integer | ID do gênero | - |
year |
integer | Filtrar por ano | - |
sort_by |
string | popularity, vote_average, release_date, title | popularity |
sort_order |
string | ASC ou DESC | DESC |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://looflix.fun/api/v1/movies.php?page=1&limit=20"
fetch('https://looflix.fun/api/v1/movies.php?page=1&limit=20', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
})
.then(response => response.json())
.then(data => {
if (data.success) {
console.log('Filmes:', data.data);
console.log('Total:', data.pagination.total);
}
});
Exemplo de Resposta
{
"success": true,
"data": [
{
"id": 1,
"tmdb_id": 12345,
"title": "Nome do Filme",
"overview": "Sinopse...",
"poster": "https://image.tmdb.org/t/p/w500/poster.jpg",
"backdrop": "https://image.tmdb.org/t/p/w1280/backdrop.jpg",
"release_date": "2024-01-01",
"rating": 8.5,
"vote_count": 1000,
"popularity": 85.5,
"runtime": 120
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 100,
"total_pages": 5
},
"ads": [],
"meta": {
"response_time": 0.1234,
"ads_shown": 0,
"revenue_generated": 0
}
}
Canais de TV
/api/v1/channels.php
Lista canais de TV disponíveis para streaming ao vivo.
Parâmetros de Query
| Parâmetro | Tipo | Descrição | Padrão |
|---|---|---|---|
page |
integer | Número da página | 1 |
limit |
integer | Itens por página (máx 100) | 20 |
search |
string | Buscar por nome | - |
category |
string | Filtrar por categoria | - |
status |
string | active ou inactive | active |
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://looflix.fun/api/v1/channels.php?category=Esportes"
fetch('https://looflix.fun/api/v1/channels.php?category=Esportes', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
})
.then(response => response.json())
.then(data => {
if (data.success) {
data.data.forEach(channel => {
console.log(channel.name, '-', channel.category);
});
}
});
Exemplo de Resposta
{
"success": true,
"data": [
{
"id": 1,
"name": "Globo",
"logo": "https://example.com/logo.png",
"category": "Abertos",
"country": "Brasil",
"stream_url": "https://example.com/stream.m3u8",
"description": "Descrição do canal",
"status": "active"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 50,
"total_pages": 3
}
}
Jogos/Placar
/api/v1/games.php
Lista jogos de futebol ao vivo e próximos. Por padrão, retorna os jogos do dia atual.
Parâmetros de Query
| Parâmetro | Tipo | Descrição | Padrão |
|---|---|---|---|
date |
string | Data no formato YYYY-MM-DD | Hoje |
status |
string | all, live, upcoming, finished | all |
league |
string | Nome da liga/campeonato | - |
limit |
integer | Limite de resultados (máx 100) | Sem limite |
# Jogos de hoje
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://looflix.fun/api/v1/games.php"
# Apenas jogos ao vivo
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://looflix.fun/api/v1/games.php?status=live"
# Jogos de uma data específica
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://looflix.fun/api/v1/games.php?date=2024-01-20"
// Jogos de hoje
fetch('https://looflix.fun/api/v1/games.php', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
})
.then(response => response.json())
.then(data => {
if (data.success) {
console.log('Total:', data.stats.total);
console.log('Ao vivo:', data.stats.live);
data.data.forEach(game => {
if (game.status === 'live') {
console.log(`${game.home_team.name} ${game.score.display} ${game.away_team.name}`);
}
});
}
});
Exemplo de Resposta
{
"success": true,
"data": [
{
"id": "game_123",
"league": "La Liga",
"home_team": {
"name": "Real Madrid",
"image": "https://example.com/logo.png",
"score": 2
},
"away_team": {
"name": "Barcelona",
"image": "https://example.com/logo.png",
"score": 1
},
"status": "live",
"status_label": "AO VIVO",
"start_time_formatted": "20:00",
"game_time": "45",
"score": {
"display": "2 - 1"
}
}
],
"date": "2024-01-15",
"stats": {
"total": 10,
"live": 2,
"upcoming": 5,
"finished": 3
}
}
Calendário
/api/v1/calendar.php
Lista lançamentos de filmes e séries por data.
Parâmetros de Query
| Parâmetro | Tipo | Descrição | Padrão |
|---|---|---|---|
type |
string | all, movies, series | all |
start_date |
string | Data inicial (YYYY-MM-DD) | Hoje |
end_date |
string | Data final (YYYY-MM-DD) | +30 dias |
page |
integer | Número da página | 1 |
limit |
integer | Itens por página (máx 100) | 20 |
# Lançamentos dos próximos 30 dias
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://looflix.fun/api/v1/calendar.php"
# Apenas filmes
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://looflix.fun/api/v1/calendar.php?type=movies"
// Lançamentos dos próximos 30 dias
fetch('https://looflix.fun/api/v1/calendar.php', {
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
})
.then(response => response.json())
.then(data => {
if (data.success) {
data.data.forEach(item => {
console.log(`${item.title} - ${item.release_date}`);
});
}
});
Exemplo de Resposta
{
"success": true,
"data": [
{
"id": 1,
"tmdb_id": 12345,
"type": "movie",
"title": "Novo Filme",
"overview": "Sinopse...",
"poster": "https://image.tmdb.org/t/p/w500/poster.jpg",
"release_date": "2024-01-15",
"rating": 8.0
}
],
"date_range": {
"start": "2024-01-01",
"end": "2024-01-31"
}
}
Sistema de Propagandas
As propagandas são inseridas automaticamente nas respostas da API baseado na configuração da sua API Key:
- Proporção de Propagandas: Configurável (padrão 30%)
- Tipos: Banner, Popup, Native, Video
- Receita: Calculada por impressão e clique
Códigos de Status HTTP
| Código | Descrição |
|---|---|
200 |
Sucesso |
400 |
Requisição inválida |
401 |
Não autenticado (API Key inválida) |
403 |
Proibido (API Key suspensa/expirada) |
405 |
Método não permitido |
429 |
Rate limit excedido |
500 |
Erro interno do servidor |