FutPythonTrader API
Acesse dados históricos Bet365 via API REST
📊 Planos de Acesso
🆓 Plano Gratuito
Acesso às ligas:
- BRAZIL 1
- ENGLAND 1
- FRANCE 1
- GERMANY 1
- ITALY 1
- PORTUGAL 1
- SPAIN 1
⭐ Plano Premium
Usuários que fazem parte da Comunidade FutPythonTrader ou assinam o Software de Backtesting têm acesso premium gratuito a esta API com todas as ligas liberadas!
Ligas disponíveis:
- ARGENTINA 1
- AUSTRALIA 1
- AUSTRIA 1
- AUSTRIA 2
- BELGIUM 1
- BELGIUM 2
- BOSNIA 1
- BRAZIL 1
- BRAZIL 2
- BULGARIA 1
- CHILE 1
- CHINA 1
- COPA LIBERTADORES
- CROATIA 1
- CZECH 1
- DENMARK 1
- EGYPT 1
- ENGLAND 1
- ENGLAND 2
- ENGLAND 3
- ENGLAND 4
- ESTONIA 1
- EUROPA CHAMPIONS LEAGUE
- FINLAND 1
- FRANCE 1
- FRANCE 2
- FRANCE 3
- GERMANY 1
- GERMANY 2
- GERMANY 3
- GREECE 1
- ICELAND 1
- IRELAND 1
- IRELAND 2
- ISRAEL 1
- ITALY 1
- ITALY 2
- ITALY 3
- JAPAN 1
- JAPAN 2
- NETHERLANDS 1
- NETHERLANDS 2
- NORTHERN IRELAND 1
- NORWAY 1
- NORWAY 2
- PARAGUAY 1
- POLAND 1
- PORTUGAL 1
- PORTUGAL 2
- PORTUGAL 3
- ROMANIA 1
- SAUDI ARABIA 1
- SCOTLAND 1
- SCOTLAND 2
- SERBIA 1
- SLOVAKIA 1
- SLOVENIA 1
- SOUTH AFRICA 1
- SOUTH KOREA 1
- SOUTH KOREA 2
- SPAIN 1
- SPAIN 2
- SPAIN 3
- SWEDEN 1
- SWEDEN 2
- SWITZERLAND 1
- SWITZERLAND 2
- TURKEY 1
- TURKEY 2
- UKRAINE 1
- USA 1
- WALES 1
🔐 Autenticação por Token
- Crie sua conta em Cadastro
- Obtenha seu token via página de perfil ou endpoint `POST /api/auth/login/`
- Use o header
Authorization: Token <seu_token>em todas as chamadas
Exemplo - Obter token:
curl -X POST https://api.futpythontrader.com/api/auth/login/ \
-H "Content-Type: application/json" \
-d '{"username": "SEU_USUARIO", "password": "SUA_SENHA"}'
Resposta: {"token": "abc123...", "perfil": {...}}
🔌 Fontes de Dados Disponíveis
Escolha uma das fontes disponíveis:
Base de Dados Bet365
Base de Dados Betfair Exchange
Base de Dados FootyStats
Listar fontes disponíveis:
GET /api/dados/
Retorna a lista de todas as fontes de dados disponíveis.
🔌 Endpoints Disponíveis
Formato: Substitua {fonte} por uma das opções: bet365, betfair ou footystats
📊 Dados Históricos
1. Consultar dados (JSON)
GET /api/dados/{fonte}/?league=…&season=…&date=…
Retorna dados em formato JSON com filtros opcionais.
2. Download de dados (CSV)
GET /api/dados/{fonte}/download/?league=…&season=…&date=…
Baixa os dados filtrados em CSV.
3. Metadados das ligas
GET /api/dados/{fonte}/metadata/
Lista todas as ligas e temporadas disponíveis na fonte.
⚽ Jogos do Dia
4. Listar datas disponíveis
GET /api/dados/jogos-do-dia/{fonte}/datas/
Retorna lista de datas com jogos disponíveis.
5. Consultar jogos do dia (JSON)
GET /api/dados/jogos-do-dia/{fonte}/{data}/?league=…
Retorna jogos de uma data específica em JSON. Data no formato: YYYY-MM-DD
6. Download de jogos do dia (CSV)
GET /api/dados/jogos-do-dia/{fonte}/{data}/download/?league=…
Baixa jogos de uma data específica em CSV.
🐍 Exemplos em Python
Listar fontes disponíveis:
import requests
TOKEN = "seu_token_aqui"
headers = {"Authorization": f"Token {TOKEN}"}
url = "https://api.futpythontrader.com/api/dados/"
response = requests.get(url, headers=headers)
data = response.json()
print("Fontes disponíveis:", data['fontes_disponiveis'])
# Output: ['bet365', 'betfair', 'footystats']
Exemplo: Comparar dados de diferentes fontes
import requests
import pandas as pd
import io
TOKEN = "seu_token_aqui"
HEADERS = {"Authorization": f"Token {TOKEN}"}
def baixar_dados(fonte, params=None):
url = f"https://api.futpythontrader.com/api/dados/{fonte}/download/"
response = requests.get(url, headers=HEADERS, params=params)
if response.status_code == 200:
return pd.read_csv(io.BytesIO(response.content))
return pd.DataFrame()
# Baixar mesma liga de diferentes fontes
params = {"league": "ENGLAND 1", "season": "2024/2025"}
df_bet365 = baixar_dados("bet365", params)
df_betfair = baixar_dados("betfair", params)
df_footystats = baixar_dados("footystats", params)
print(f"Bet365: {len(df_bet365)} registros")
print(f"Betfair: {len(df_betfair)} registros")
print(f"FootyStats: {len(df_footystats)} registros")
Consultar dados com filtros:
import requests
import pandas as pd
TOKEN = "seu_token_aqui"
headers = {"Authorization": f"Token {TOKEN}"}
params = {"league": "ENGLAND 1", "season": "2025/2026"}
# Exemplo com Bet365
url = "https://api.futpythontrader.com/api/dados/bet365/"
response = requests.get(url, headers=headers, params=params)
if response.status_code == 200:
data = response.json()
print(f"Fonte: {data['fonte']}")
print(f"Total de registros: {data['total']}")
print(data['dados'][:5])
else:
print(f"Erro Bet365: {response.status_code} - {response.text}")
# Exemplo com Betfair Exchange
url_betfair = "https://api.futpythontrader.com/api/dados/betfair/"
response = requests.get(url_betfair, headers=headers, params=params)
if response.status_code == 200:
data = response.json()
print(f"Fonte: {data['fonte']}")
print(f"Total de registros: {data['total']}")
else:
print(f"Erro Betfair: {response.status_code} - {response.text}")
# Exemplo com FootyStats
url_footystats = "https://api.futpythontrader.com/api/dados/footystats/"
response = requests.get(url_footystats, headers=headers, params=params)
if response.status_code == 200:
data = response.json()
print(f"Fonte: {data['fonte']}")
print(f"Total de registros: {data['total']}")
else:
print(f"Erro FootyStats: {response.status_code} - {response.text}")
Baixar CSV:
import requests
TOKEN = "seu_token_aqui"
headers = {"Authorization": f"Token {TOKEN}"}
# Exemplo: baixar dados do Betfair Exchange
url = "https://api.futpythontrader.com/api/dados/betfair/download/"
params = {"league": "BRAZIL 1"}
response = requests.get(url, headers=headers, params=params)
with open("betfair_brazil.csv", "wb") as f:
f.write(response.content)
print("Download concluído!")
Filtrar por data específica:
params = {"date": "2024-08-01"} # ou '2024-08-01,2024-08-31' para intervalo
response = requests.get(url, headers=headers, params=params)
Consultar jogos do dia e criar DataFrame:
import requests
import pandas as pd
TOKEN = "seu_token_aqui"
headers = {"Authorization": f"Token {TOKEN}"}
# 1. Listar datas disponíveis
url_datas = "https://api.futpythontrader.com/api/dados/jogos-do-dia/bet365/datas/"
response = requests.get(url_datas, headers=headers)
datas = response.json()['datas_disponiveis']
print(f"Datas disponíveis: {datas}")
# 2. Buscar jogos de uma data específica
data_escolhida = "2025-12-21"
url_jogos = f"https://api.futpythontrader.com/api/dados/jogos-do-dia/bet365/{data_escolhida}/"
response = requests.get(url_jogos, headers=headers)
if response.status_code == 200:
data = response.json()
print(f"Total de jogos: {data['total']}")
# Criar DataFrame com os jogos
df_jogos = pd.DataFrame(data['dados'])
# Visualizar os primeiros jogos
print("\n--- Jogos do Dia ---")
print(df_jogos.head())
# Visualizar colunas disponíveis
print(f"\nColunas disponíveis: {df_jogos.columns.tolist()}")
# Filtrar jogos de uma liga específica
if 'League' in df_jogos.columns:
jogos_england = df_jogos[df_jogos['League'] == 'ENGLAND 1']
print(f"\nJogos da ENGLAND 1: {len(jogos_england)}")
print(jogos_england[['Home', 'Away', 'Time']])
else:
print(f"Erro: {response.status_code}")
Baixar jogos do dia em CSV:
import requests
TOKEN = "seu_token_aqui"
headers = {"Authorization": f"Token {TOKEN}"}
# Baixar jogos do dia da Betfair
data = "2025-12-21"
url = f"https://api.futpythontrader.com/api/dados/jogos-do-dia/betfair/{data}/download/"
response = requests.get(url, headers=headers, params={"league": "ENGLAND 1"})
if response.status_code == 200:
with open(f"jogos_do_dia_{data}.csv", "wb") as f:
f.write(response.content)
print("Download concluído!")
else:
print(f"Erro: {response.status_code}")
📚 Exemplos Completos de Uso
Código completo para trabalhar com DataFrames do pandas:
Configuração Inicial:
import requests
import pandas as pd
import io
# Configuração Global
TOKEN = "seu_token_aqui"
HEADERS = {"Authorization": f"Token {TOKEN}"}
# Escolha a fonte de dados: 'bet365', 'betfair' ou 'footystats'
FONTE = "bet365" # Altere aqui para mudar a fonte
BASE_URL_DOWNLOAD = f"https://api.futpythontrader.com/api/dados/{FONTE}/download/"
def get_dataframe(params=None):
"""
Função auxiliar para baixar o CSV e converter direto para DataFrame.
"""
print(f"Baixando dados da fonte '{FONTE}' com filtros: {params} ...")
response = requests.get(BASE_URL_DOWNLOAD, headers=HEADERS, params=params)
if response.status_code == 200:
# Lê os bytes do CSV diretamente para um DataFrame
df = pd.read_csv(io.BytesIO(response.content))
print(f"Sucesso! DataFrame criado com {len(df)} linhas.")
return df
else:
print(f"Erro na requisição: {response.status_code}")
print(response.text)
return pd.DataFrame() # Retorna DF vazio em caso de erro
Exemplo: Comparar dados de diferentes fontes
import requests
import pandas as pd
import io
TOKEN = "seu_token_aqui"
HEADERS = {"Authorization": f"Token {TOKEN}"}
def baixar_dados(fonte, params=None):
url = f"https://api.futpythontrader.com/api/dados/{fonte}/download/"
response = requests.get(url, headers=HEADERS, params=params)
if response.status_code == 200:
return pd.read_csv(io.BytesIO(response.content))
return pd.DataFrame()
# Baixar mesma liga de diferentes fontes
params = {"league": "ENGLAND 1", "season": "2024/2025"}
df_bet365 = baixar_dados("bet365", params)
df_betfair = baixar_dados("betfair", params)
df_footystats = baixar_dados("footystats", params)
print(f"Bet365: {len(df_bet365)} registros")
print(f"Betfair: {len(df_betfair)} registros")
print(f"FootyStats: {len(df_footystats)} registros")
1) Gerar DataFrame com TODAS as ligas e TODAS as temporadas:
# Sem filtros, a API retorna a base completa
df_completo = get_dataframe(params={})
# Visualizar
display(df_completo)
2) Gerar DataFrame com UMA liga específica e todas as temporadas:
# Filtra apenas pela liga, ignorando a temporada
params_liga = {
"league": "ENGLAND 1" # Exemplo: Premier League
}
df_liga = get_dataframe(params=params_liga)
# Visualizar
display(df_liga)
3) Gerar DataFrame com TODAS as ligas e UMA temporada:
# Filtra apenas pela temporada, trazendo todas as ligas daquele ano
params_temporada = {
"season": "2024/2025" # Certifique-se do formato correto da data na API
}
df_temporada = get_dataframe(params=params_temporada)
# Visualizar
display(df_temporada)
4) Ver todas as ligas e temporadas disponíveis:
# Supondo que você já tenha baixado dados em 'df_completo'
if not df_completo.empty:
# Listar todas as ligas únicas
ligas_disponiveis = df_completo['League'].unique()
print(f"--- Ligas Disponíveis ({len(ligas_disponiveis)}) ---")
for liga in sorted(ligas_disponiveis):
print(liga)
print("\n" + "="*30 + "\n")
# Listar todas as temporadas únicas
temporadas_disponiveis = df_completo['Season'].unique()
print(f"--- Temporadas Disponíveis ({len(temporadas_disponiveis)}) ---")
for temp in sorted(temporadas_disponiveis):
print(temp)
5) Ver todas as colunas disponíveis:
if not df_completo.empty:
colunas = df_completo.columns.tolist()
print(f"--- Total de Colunas: {len(colunas)} ---")
print(colunas)
# Exemplo para ver os tipos de dados também (int, float, object)
print("\n--- Info do DataFrame ---")
print(df_completo.info())
💻 Exemplos com cURL
Listar fontes disponíveis:
curl -H "Authorization: Token SEU_TOKEN" \
"https://api.futpythontrader.com/api/dados/"
Consultar dados (Bet365):
curl -H "Authorization: Token SEU_TOKEN" \
"https://api.futpythontrader.com/api/dados/bet365/?league=ENGLAND%201&season=2025/2026"
Consultar dados (Betfair):
curl -H "Authorization: Token SEU_TOKEN" \
"https://api.futpythontrader.com/api/dados/betfair/?league=ENGLAND%201&season=2025/2026"
Baixar CSV (FootyStats):
curl -H "Authorization: Token SEU_TOKEN" \
"https://api.futpythontrader.com/api/dados/footystats/download/?league=FRANCE%201" \
-o footystats_france.csv
Obter metadados de uma fonte:
curl -H "Authorization: Token SEU_TOKEN" \
"https://api.futpythontrader.com/api/dados/betfair/metadata/"
Listar datas de jogos do dia:
curl -H "Authorization: Token SEU_TOKEN" \
"https://api.futpythontrader.com/api/dados/jogos-do-dia/bet365/datas/"
Consultar jogos do dia:
curl -H "Authorization: Token SEU_TOKEN" \
"https://api.futpythontrader.com/api/dados/jogos-do-dia/footystats/2025-12-21/?league=SPAIN%201"
Baixar jogos do dia em CSV:
curl -H "Authorization: Token SEU_TOKEN" \
"https://api.futpythontrader.com/api/dados/jogos-do-dia/betfair/2025-12-21/download/" \
-o jogos_do_dia_2025-12-21.csv
💡 Dicas importantes
- Três fontes de dados disponíveis: bet365, betfair e footystats
- Sempre inclua a barra final (
/) nas URLs dos endpoints. - Use
%20para espaços em URLs (ex.:ENGLAND%201). - Usuários gratuitos só podem acessar as ligas listadas acima.
- Para acesso Premium, entre em contato com o administrador.
- Guarde seu token em segurança - ele dá acesso total à sua conta.