Footlink API Docs
v1 · REST · JSON Falar com o time
Documentação oficial · API v1

API do Footlink
para integrações de dados do futebol

A API do Footlink permite que clubes, agências e empresas conectem seus próprios sistemas e bancos de dados ao ecossistema do Footlink. Por meio dela, você consome de forma programática os mesmos dados que utiliza na plataforma — competições, elencos, jogos, atletas monitorados, avaliações, relatórios e projetos — em formato JSON, pronto para alimentar seus dashboards, CRMs e ferramentas internas.

Sobre a API do Footlink

O Footlink reúne em uma só plataforma ferramentas de informação, gestão e conexão para o mercado do futebol. A API é a camada de integração dessa plataforma: uma API REST, autenticada por token JWT, que devolve todas as respostas em JSON — o mesmo padrão que sua equipe de tecnologia já usa em qualquer integração moderna.

A leitura desta documentação é sequencial e recomendada: primeiro a autenticação, depois as convenções gerais (paginação, filtros e códigos de resposta) e, por fim, cada família de endpoints. Use o índice à esquerda para navegar diretamente até o recurso que precisa.

O que você pode integrar

🏆

Competições

Clubes participantes, elencos, calendário de jogos, estatísticas por atleta e listas de atletas precoces.

👁️

Atletas monitorados

Todos os atletas acompanhados pela sua organização, com carreira, contratos, desempenho e anotações.

Avaliações

Atletas cadastrados pela sua organização e as avaliações técnicas feitas pelo seu time de scouting.

📄

Relatórios

Relatórios gerados na plataforma, com autoria, data e atletas relacionados a cada documento.

🗂️

Projetos

Projetos de scouting, quadros de workflow, times sombra e as anotações de cada atleta no projeto.

🔗

Seu banco de dados

Sincronize os dados do Footlink com seu data warehouse, BI ou sistema interno de gestão.

Quem pode acessar

O acesso à API é liberado mediante assinatura específica, contratada em complemento ao plano da plataforma. As credenciais são vinculadas a um usuário da sua organização, e cada requisição enxerga exatamente o mesmo escopo de dados que aquele usuário enxerga dentro do Footlink.

💡

Ainda não é assinante da API? Fale com o time comercial pelo canal de atendimento para avaliar o escopo da integração e liberar suas credenciais.

01 Base URL e formato

Todas as chamadas partem da mesma base e usam o prefixo de versão /api/v1:

BASE
https://api-v1.footlink.app/api/v1
Característica Valor
Protocolo HTTPS (obrigatório)
Estilo REST, com verbos HTTP padrão
Formato de resposta application/json, codificado em UTF-8
Autenticação Token JWT no header Authorization
Versão atual v1
📌

Nos exemplos desta documentação, tudo que aparece entre chaves — como {id} — deve ser substituído pelo identificador real do recurso.

02 Autenticação

Para acessar qualquer endpoint da API do Footlink é necessário gerar um token de autenticação, enviando o e-mail e a senha do usuário habilitado na sua organização.

AUTH Gerar token de acesso

POST
https://api-v1.footlink.app/api/v1/token_api/
Corpo da requisição
{
  "email": "seu_email@dominio.com",
  "password": "sua_senha"
}
Exemplo de resposta
{
  "access": "token_jwt"
}
🔒

Nunca exponha e-mail, senha ou token em código de front-end, repositórios públicos ou coleções compartilhadas. Guarde as credenciais em variáveis de ambiente do seu servidor.

03 Usando o token nas requisições

Com o token em mãos, envie-o no header Authorization de todas as demais chamadas, no formato Bearer:

Authorization: Bearer <seu_token_jwt>
Content-Type: application/json

Exemplo completo com cURL

# 1. Gerar o token
curl -X POST "https://api-v1.footlink.app/api/v1/token_api/" \
  -H "Content-Type: application/json" \
  -d '{"email":"seu_email@dominio.com","password":"sua_senha"}'

# 2. Consumir um endpoint usando o token retornado
curl -X GET "https://api-v1.footlink.app/api/v1/competitions/437/teams?limit=20&offset=0" \
  -H "Authorization: Bearer <seu_token_jwt>"

04 Paginação e filtros

Os endpoints de listagem são paginados e devolvem sempre a mesma estrutura de envelope, com o total de registros e os links para a página seguinte e anterior:

{
  "count": 120,
  "next": "https://api-v1.footlink.app/api/v1/athletes?limit=20&offset=20",
  "previous": null,
  "results": [ ... ]
}
Parâmetro Descrição
limit Quantidade de registros por página. Ex.: limit=20
offset Quantidade de registros a pular. Ex.: offset=20 retorna a segunda página
order_by / o Campo de ordenação. O prefixo - inverte a ordem. Ex.: order_by=-minutes_played
min_birthyear / max_birthyear Recorte por ano de nascimento do atleta
watched Quando true, retorna apenas os atletas monitorados pela organização
female Filtra o gênero da base consultada
team, project, shadow_team Recortes por clube, projeto ou time sombra, conforme o endpoint
💡

Percorra sempre a paginação seguindo o campo next até que ele retorne null — é a forma mais segura de garantir que nenhum registro foi perdido.

05 Códigos de resposta

A API segue os códigos de status HTTP padrão:

Código Significado O que fazer
200 OK Requisição bem-sucedida; os dados estão no corpo da resposta
201 Created Recurso criado com sucesso (endpoints de escrita)
400 Bad Request Revise os parâmetros e o corpo enviados na requisição
401 Unauthorized Token ausente, inválido ou expirado — gere um novo token
403 Forbidden O usuário autenticado não tem permissão para esse recurso
404 Not Found Confira o {id} informado na URL
500 Internal Server Error Tente novamente e, se persistir, acione o suporte com data, hora e endpoint

1 Competições

Endpoints para consultar tudo o que acontece dentro de uma competição: os clubes participantes, seus elencos, o calendário de jogos e o desempenho individual dos atletas na disputa.

1.1 Clubes da competição

Lista os clubes que participam de uma competição, com emblema, divisão, estado e contagem de atletas.

GET
https://api-v1.footlink.app/api/v1/competitions/{id}/teams?limit=20&offset=0
Exemplo de resposta
{
  "id": 898,
  "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/898_Avenida.png",
  "nickname": "Avenida",
  "country": {
    "code": "BR",
    "name": "Brasil",
    "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
  },
  "state": "RS",
  "longname": "Esporte Clube Avenida",
  "division": 4,
  "market_value": null,
  "profile": {
    "stadium": ""
  },
  "athletes_count": 31,
  "frames": null,
  "arrivals_frames": null,
  "contract_high_risk": null,
  "contract_warning_risk": null
}

1.2 Elenco dos clubes da competição

Retorna o elenco de um clube dentro da competição, com as estatísticas de cada atleta na temporada e os dados cadastrais completos do jogador.

GET
https://api-v1.footlink.app/api/v1/competitions/{id}/teams/{id}/athletes?limit=20&offset=0
Exemplo de resposta
{
  "count": 20,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 2338732,
      "team": {
        "id": 3061,
        "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1712671580458.1448.png",
        "nickname": "A. D. Centro Olímpico",
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "state": "SP",
        "longname": "A. D. Centro Olímpico",
        "division": null,
        "market_value": null,
        "profile": {
          "stadium": ""
        },
        "frames": null,
        "arrivals_frames": null,
        "contract_high_risk": null,
        "contract_warning_risk": null
      },
      "competition_name": "FPF - Copa SP Feminina (FPF)",
      "season": "2024",
      "in_squad": 0,
      "appearances": 1,
      "goals": 0,
      "assists": 0,
      "own_goals": 0,
      "yellow_cards": 0,
      "second_yellow_cards": 0,
      "red_cards": 0,
      "subs_in": 0,
      "subs_out": 0,
      "penalty_goals": 0,
      "minutes_played": 90,
      "minutes_per_goal": 0,
      "lineups": 1,
      "on_bench": 0,
      "athlete": {
        "id": 1360919,
        "fullname": "Ana Clara Jesus Barbosa Dos Santos",
        "nickname": "Ana Clara",
        "photo": null,
        "age": 18,
        "birthyear": 2006,
        "nationalities": [],
        "position": null,
        "contract_info": {
          "loaned": false,
          "current_contract_end": "2026-05-08",
          "src_contract_end": null
        },
        "current_team": {
          "id": 3061,
          "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1712671580458.1448.png",
          "nickname": "A. D. Centro Olímpico",
          "country": {
            "code": "BR",
            "name": "Brasil",
            "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
          },
          "state": "SP",
          "longname": "A. D. Centro Olímpico",
          "division": null,
          "market_value": null,
          "profile": {
            "stadium": ""
          },
          "frames": null,
          "arrivals_frames": null,
          "contract_high_risk": null,
          "contract_warning_risk": null
        },
        "src_team": null,
        "career_stats": {
          "total_goals": 71,
          "total_matches": 226
        },
        "market_value": {
          "current": {
            "date": null,
            "value": null
          },
          "greatest": {
            "date": null,
            "value": null
          },
          "total_transfers_amount": null
        },
        "counts": {},
        "lists": [
          157,
          2215,
          2216
        ],
        "social": {
          "wikipedia": "",
          "youtube": "",
          "instagram": "",
          "twitter": ""
        }
      },
      "under20": true,
      "custom_athlete": null
    }
  ]
}

1.3 Jogos da competição

Lista as partidas de uma competição. O parâmetro team restringe o resultado aos jogos de um clube específico.

GET
https://api-v1.footlink.app/api/v1/competitions/{id}/matches?team={id}
Exemplo de resposta
{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 4629587,
      "home_team": {
        "id": 3061,
        "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1712671580458.1448.png",
        "nickname": "A. D. Centro Olímpico",
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "state": "SP",
        "longname": "A. D. Centro Olímpico",
        "division": null,
        "market_value": null,
        "profile": {
          "stadium": ""
        },
        "frames": null,
        "arrivals_frames": null,
        "contract_high_risk": null,
        "contract_warning_risk": null
      },
      "visiting_team": {
        "id": 1021,
        "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1021_Cruzeiro.png",
        "nickname": "Cruzeiro",
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "state": "MG",
        "longname": "Cruzeiro Esporte Clube",
        "division": 1,
        "market_value": "18.25 M €",
        "profile": {
          "stadium": "Estádio Governador Magalhães Pinto"
        },
        "frames": null,
        "arrivals_frames": null,
        "contract_high_risk": null,
        "contract_warning_risk": null
      },
      "competition_name": "FPF - Copa SP Feminina (FPF)",
      "match_date": "2024-11-28",
      "scoreboard": "5-0",
      "match_url": "http://conteudo.fpf.org.br/sumulas/2024/45204/1.pdf",
      "match_video": "",
      "city": "",
      "match_hour": "",
      "under20": true,
      "competition": 437
    }
  ]
}

1.4 Dados dos jogos das competições

Os dados detalhados de cada partida — mando de campo, placar, data, cidade, súmula e vídeo — já vêm no mesmo retorno da listagem de jogos.

GET
https://api-v1.footlink.app/api/v1/competitions/{id}/matches?team={id}
↗ Mesma resposta do item 1.3 — Jogos da competição

1.6 Lista de atletas precoces

Consulta os atletas mais jovens de uma competição, combinando o recorte por ano de nascimento com a ordenação por minutos jogados — a base para identificar quem já ganha espaço cedo.

GET
https://api-v1.footlink.app/api/v1/competitions/{id}/athletes?limit=20&offset=0&min_birthyear=2012&order_by=-minutes_played

A partir de um atleta retornado nesta lista, use os três endpoints abaixo para aprofundar em carreira, desempenho e jogos.

1.6.1 Carreira do atleta

Histórico de transferências e de contratos registrados para o atleta, incluindo tipo de vínculo, datas de início e fim e federação de registro.

GET
https://api-v1.footlink.app/api/v1/athletes/{id}/transfers
GET
https://api-v1.footlink.app/api/v1/athletes/{id}/contracts
Exemplo de resposta
{
  "count": 45,
  "next": "https://api-v1.footlink.app/api/v1/athletes/62104/contracts?limit=30&offset=30",
  "previous": null,
  "results": [
    {
      "id": 304003954,
      "team": {
        "id": 3271,
        "emblem": null,
        "nickname": "Alianca",
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "state": "SC",
        "longname": "Alianca",
        "division": null,
        "market_value": null,
        "profile": {
          "stadium": ""
        },
        "frames": null,
        "arrivals_frames": null,
        "contract_high_risk": null,
        "contract_warning_risk": null
      },
      "contract_info": {
        "bid_date": "2024-09-05",
        "state": "SC",
        "type": "Vínculo não profissional",
        "contract": "2439810SC",
        "start": "2024-09-03",
        "end": "2027-08-19"
      }
    }
  ]
}

1.6.2 Desempenho do atleta

Histórico de desempenho do atleta temporada a temporada, por clube e por competição.

GET
https://api-v1.footlink.app/api/v1/athletes/{id}/historical
Exemplo de resposta
{
  "count": 25,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 1000410697,
      "team": {
        "id": 898,
        "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/898_Avenida.png",
        "nickname": "Avenida",
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "state": "RS",
        "longname": "Esporte Clube Avenida",
        "division": 4,
        "market_value": null,
        "profile": {
          "stadium": ""
        },
        "frames": null,
        "arrivals_frames": null,
        "contract_high_risk": null,
        "contract_warning_risk": null
      },
      "competition_name": "Serie D",
      "season": "2024",
      "in_squad": 0,
      "appearances": 7,
      "goals": 0,
      "assists": 0,
      "own_goals": 0,
      "yellow_cards": 0,
      "second_yellow_cards": 0,
      "red_cards": 0,
      "subs_in": 6,
      "subs_out": 1,
      "penalty_goals": 0,
      "minutes_played": 103,
      "minutes_per_goal": 0,
      "lineups": 1,
      "on_bench": 15,
      "under20": false,
      "athlete": 62104,
      "custom_athlete": null
    }
  ]
}

1.6.3 Jogos do atleta

Todas as partidas disputadas pelo atleta, com adversário, placar, data e eventos do jogo.

GET
https://api-v1.footlink.app/api/v1/athletes/{id}/matches?limit=5&offset=0
Exemplo de resposta
{
  "count": 62,
  "next": "https://api-v1.footlink.app/api/v1/athletes/62104/matches?limit=30&offset=30",
  "previous": null,
  "results": [
    {
      "id": 1863121,
      "home_team": {
        "id": 898,
        "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/898_Avenida.png",
        "nickname": "Avenida",
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "state": "RS",
        "longname": "Esporte Clube Avenida",
        "division": 4,
        "market_value": null,
        "profile": {
          "stadium": ""
        },
        "frames": null,
        "arrivals_frames": null,
        "contract_high_risk": null,
        "contract_warning_risk": null
      },
      "visiting_team": {
        "id": 1142,
        "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1142_Inter_de_Limeira.png",
        "nickname": "Inter de Limeira",
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "state": "SP",
        "longname": "Associacao Atletica Internacional De Limeira",
        "division": 4,
        "market_value": null,
        "profile": {
          "stadium": ""
        },
        "frames": null,
        "arrivals_frames": null,
        "contract_high_risk": null,
        "contract_warning_risk": null
      },
      "competition_name": "Serie D",
      "athlete_old_id": 31951,
      "match_date": "2024-07-27",
      "scoreboard": "0 - 0",
      "events": [],
      "match_url": "",
      "match_video": "",
      "city": "",
      "match_hour": "",
      "under20": false,
      "athlete": 62104
    }
  ]
}

2 Atletas monitorados

Atletas que a sua organização acompanha dentro do Footlink. Estes endpoints devolvem a lista completa de monitorados e, para cada um, o perfil detalhado com anotações, carreira, desempenho e jogos.

2.1 Lista de atletas monitorados pela organização

O filtro watched=true é o que restringe a busca aos atletas monitorados. Combine com o recorte de ano de nascimento para segmentar por faixa etária.

GET
https://api-v1.footlink.app/api/v1/athletes?limit=20&offset=0&watched=true&min_birthyear=1975&max_birthyear=2025

2.2 Dados dos atletas monitorados

Perfil completo de um atleta monitorado.

GET
https://api-v1.footlink.app/api/v1/athletes/{id}/

2.2.1 Anotações do atleta

Anotações registradas pelo seu time sobre o atleta, com autor, data, texto e anexos (arquivo, tipo, tamanho, miniatura e duração, quando houver).

GET
https://api-v1.footlink.app/api/v1/athletes/{id}/notes/?limit=60&offset=0
Exemplo de resposta
{
  "countOutOfProject": null,
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 9423,
      "author": {
        "id": 21,
        "name": "Adminlongview"
      },
      "date": "2025-02-24",
      "created_at": "2025-02-24T14:17:22.170633-03:00",
      "file": null,
      "file_type": null,
      "original_file_name": null,
      "file_size": null,
      "thumb": null,
      "duration": null,
      "text": "Anotação de exemplo do scout",
      "extra_info": null,
      "deleted_at": null
    }
  ]
}

3 Atletas inseridos e avaliações

Além da base do Footlink, sua organização pode cadastrar atletas próprios — os atletas inseridos — e registrar avaliações técnicas sobre qualquer atleta. Esta seção cobre os dois conjuntos de endpoints.

Atletas inseridos pela organização

3.1 Lista de atletas inseridos pela organização

Retorna os atletas cadastrados manualmente pela sua organização, com dados cadastrais, nacionalidades, clube atual e valor de mercado.

GET
https://api-v1.footlink.app/api/v1/custom-athletes?female=false&limit=20&offset=0
Exemplo de resposta
{
  "count": 7,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 1334815,
      "age": 18,
      "birthyear": 2007,
      "contract_info": {
        "loaned": false,
        "current_contract_end": null,
        "src_contract_end": null
      },
      "position": "Zagueiro",
      "nationalities": [
        {
          "code": "CI",
          "name": "Costa do Marfim",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/ci.svg"
        }
      ],
      "country": {
        "code": "CI",
        "name": "Costa do Marfim",
        "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/ci.svg"
      },
      "src_team": null,
      "current_team": {
        "id": 1286,
        "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1286_Palmeiras.png",
        "nickname": "Palmeiras",
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "state": "SP",
        "division": 1,
        "market_value": "96.80 M €",
        "profile": {
          "stadium": "Allianz Parque"
        },
        "frames": {
          "1emconversa": "1 - Em Conversa",
          "2descartados": "2 - Descartados",
          "3emnegociacao": "3 - Em Negociação",
          "4negociados": "4 - Negociados"
        },
        "arrivals_frames": {
          "1emconversa": "1 - Em Conversa",
          "2descartados": "2 - Descartados",
          "3emnegociacao": "3 - Em Negociação",
          "4negociados": "4 - Negociados"
        },
        "contract_high_risk": 9,
        "contract_warning_risk": 18
      },
      "social": {
        "wikipedia": "",
        "youtube": "",
        "instagram": "",
        "twitter": ""
      },
      "lists": [],
      "agency": null,
      "counts": {},
      "team_has_mensageria_access": false,
      "org_has_mensageria_access": false,
      "all_teams": null,
      "amateur": false,
      "birthdate": "2007-02-08",
      "cbf_code": null,
      "foot": "Esquerdo",
      "fullname": "Kone Zié Mohamed",
      "height": 0,
      "female": false,
      "link": null,
      "nickname": "Kone",
      "photo": null,
      "position1": null,
      "position2": "Zagueiro",
      "special_name": null,
      "under20": false,
      "weight": 0,
      "market_value": {
        "current": {
          "date": null,
          "value": null
        },
        "greatest": {
          "date": null,
          "value": null
        },
        "total_transfers_amount": null
      },
      "hash": null,
      "twitter": "",
      "instagram": "",
      "wikipedia": "",
      "youtube": "",
      "team": 1286
    }
  ]
}

3.2 Dados dos atletas inseridos pela organização

Perfil completo de um atleta cadastrado pela sua organização.

GET
https://api-v1.footlink.app/api/v1/custom-athletes/{id}
Exemplo de resposta
{
  "id": 1334815,
  "age": 18,
  "birthyear": 2007,
  "contract_info": {
    "loaned": false,
    "current_contract_end": null,
    "src_contract_end": null
  },
  "position": "Zagueiro",
  "nationalities": [
    {
      "code": "CI",
      "name": "Costa do Marfim",
      "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/ci.svg"
    }
  ],
  "country": {
    "code": "CI",
    "name": "Costa do Marfim",
    "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/ci.svg"
  },
  "src_team": null,
  "current_team": {
    "id": 1286,
    "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1286_Palmeiras.png",
    "nickname": "Palmeiras",
    "country": {
      "code": "BR",
      "name": "Brasil",
      "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
    },
    "state": "SP",
    "division": 1,
    "market_value": "96.80 M €",
    "profile": {
      "stadium": "Allianz Parque"
    },
    "frames": {
      "1emconversa": "1 - Em Conversa",
      "2descartados": "2 - Descartados",
      "3emnegociacao": "3 - Em Negociação",
      "4negociados": "4 - Negociados"
    },
    "arrivals_frames": {
      "1emconversa": "1 - Em Conversa",
      "2descartados": "2 - Descartados",
      "3emnegociacao": "3 - Em Negociação",
      "4negociados": "4 - Negociados"
    },
    "contract_high_risk": 9,
    "contract_warning_risk": 18
  },
  "social": {
    "wikipedia": "",
    "youtube": "",
    "instagram": "",
    "twitter": ""
  },
  "lists": [],
  "agency": null,
  "counts": {},
  "team_has_mensageria_access": false,
  "org_has_mensageria_access": false,
  "all_teams": null,
  "amateur": false,
  "birthdate": "2007-02-08",
  "cbf_code": null,
  "foot": "Esquerdo",
  "fullname": "Kone Zié Mohamed",
  "height": 0,
  "female": false,
  "link": null,
  "nickname": "Kone",
  "photo": null,
  "position1": null,
  "position2": "Zagueiro",
  "special_name": null,
  "under20": false,
  "weight": 0,
  "market_value": {
    "current": {
      "date": null,
      "value": null
    },
    "greatest": {
      "date": null,
      "value": null
    },
    "total_transfers_amount": null
  },
  "hash": null,
  "twitter": "",
  "instagram": "",
  "wikipedia": "",
  "youtube": "",
  "team": 1286
}

Avaliações

3.1 Lista dos atletas avaliados

Retorna as avaliações da organização com os dados do atleta avaliado, o clube na data da avaliação, a recomendação, a prioridade e a nota geral.

GET
https://api-v1.footlink.app/api/v1/evaluations?limit=20&offset=0&viewList=true
Exemplo de resposta
{
  "count": 7,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 3905,
      "author": {
        "id": 21,
        "name": "Admin longview",
        "email": "admin@longview.com.br"
      },
      "target_data": {
        "id": 61870,
        "contract_info": {
          "loaned": false,
          "current_contract_end": "2025-06-30",
          "src_contract_end": null
        },
        "age": 33,
        "birthyear": 1992,
        "counts": {},
        "position": "Atacante",
        "nationalities": [
          {
            "code": "BR",
            "name": "Brasil",
            "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
          }
        ],
        "country": {
          "code": "BR",
          "name": "Brasil",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
        },
        "src_team": null,
        "current_team": {
          "id": 626,
          "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1692359646493.0957.png",
          "nickname": "Al Hilal",
          "country": {
            "code": "SA",
            "name": "Arábia Saudita",
            "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/sa.svg"
          },
          "state": "",
          "division": 1,
          "market_value": "41.53 M €",
          "profile": {
            "stadium": "King Saud University Stadium"
          },
          "frames": null,
          "arrivals_frames": null,
          "contract_high_risk": null,
          "contract_warning_risk": null
        },
        "career_stats": {
          "total_goals": 1,
          "total_matches": 3
        },
        "lists": [
          4,
          81,
          154,
          157
        ],
        "agency": null,
        "transfermarket": [],
        "social": {
          "wikipedia": "",
          "youtube": "",
          "instagram": "",
          "twitter": ""
        },
        "current_team_org": null,
        "team_has_footlink_contract": false,
        "team_has_mensageria_access": false,
        "org_has_mensageria_access": false,
        "all_teams": [
          "al-hilal-riyadh",
          "paris-saint-germain-fc",
          "futbol-club-barcelona",
          "santos-futebol-clube-sao-paulo"
        ],
        "amateur": false,
        "birthdate": "1992-02-05",
        "cbf_code": 292791,
        "foot": "Direito",
        "fullname": "Neymar da Silva Santos Junior",
        "height": 174,
        "female": false,
        "link": "102697",
        "nickname": "Neymar",
        "is_retired": false,
        "photo": "https://storage.googleapis.com/rdf_dev/uploads/athletes/avatar/6/1/31716.jpeg",
        "position1": "Ataque",
        "position2": "Atacante",
        "special_name": "neymar-da-silva-santos-junior",
        "under20": false,
        "weight": 60,
        "market_value": {
          "current": {
            "date": "2023-03-27",
            "value": 70.0
          },
          "greatest": {
            "date": "2018-01-24",
            "value": 180.0
          }
        },
        "hash": "74e47289211506b3a4f24da1514b264545efcaabd6a4721802684de2d926d722",
        "last_team_division": 1,
        "last_team_country": "SA",
        "last_team_state": "",
        "twitter": "",
        "instagram": "",
        "wikipedia": "",
        "youtube": "",
        "team": 626
      },
      "team_data": {
        "id": 626,
        "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1692359646493.0957.png",
        "nickname": "Al Hilal",
        "country": {
          "code": "SA",
          "name": "Arábia Saudita",
          "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/sa.svg"
        },
        "state": "",
        "division": 1,
        "market_value": "41.53 M €",
        "profile": {
          "stadium": "King Saud University Stadium"
        },
        "frames": null,
        "arrivals_frames": null,
        "contract_high_risk": null,
        "contract_warning_risk": null
      },
      "evaluation_date": "2025-01-17T13:16:44.333023Z",
      "mode": "GERAL",
      "method_name": "Geral",
      "recommendation": "CONTRATAR",
      "priority": "",
      "details": "Observações da avaliação: <GERAL>",
      "general_evaluation": 4.5
    }
  ]
}

3.3 Dados das avaliações

Detalhe de uma avaliação específica: método aplicado, notas por critério, campos de contexto, parecer do avaliador, recomendação e média final.

GET
https://api-v1.footlink.app/api/v1/athletes/{id}/evaluations/{id}/
Exemplo de resposta
{
  "id": 3905,
  "created_by": "admin@longview.com.br",
  "lastmodified_by": "admin@longview.com.br",
  "author": {
    "id": 21,
    "name": "Admin longview",
    "email": "admin@longview.com.br"
  },
  "method_name": "Geral",
  "recommendation_name": "Contratar",
  "priority_name": "Indefinida",
  "org": 47,
  "generalEvaluation": 4.5,
  "team_data": {
    "id": 626,
    "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1692359646493.0957.png",
    "nickname": "Al Hilal",
    "country": {
      "code": "SA",
      "name": "Arábia Saudita",
      "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/sa.svg"
    },
    "state": "",
    "division": 1,
    "market_value": "41.53 M €",
    "profile": {
      "stadium": "King Saud University Stadium"
    },
    "frames": null,
    "arrivals_frames": null,
    "contract_high_risk": null,
    "contract_warning_risk": null
  },
  "target": 61870,
  "custom_target": null,
  "url": "https://api-v1.footlink.app/api/v1/athletes/61870/evaluations/3905",
  "details": "Observações da avaliação: <GERAL>",
  "evaluation_date": "2025-01-17T13:16:44.333023Z",
  "target_data": {
    "id": 61870,
    "url": "https://api-v1.footlink.app/api/v1/athletes/61870",
    "fullname": "Neymar da Silva Santos Junior",
    "nickname": "Neymar",
    "photo": "https://storage.googleapis.com/rdf_dev/uploads/athletes/avatar/6/1/31716.jpeg"
  },
  "created_at": "2025-01-17T10:16:44.333023-03:00",
  "lastmodified_at": "2025-01-17T10:16:44.333085-03:00",
  "mode": "GERAL",
  "method": "GERAL",
  "recommendation": "CONTRATAR",
  "priority": "",
  "data": {
    "teamId": 1286,
    "values": {
      "fields": [
        {
          "rate": 5,
          "title": "Projeção Física"
        },
        {
          "rate": 4.5,
          "title": "Velocidade"
        },
        {
          "rate": 5,
          "title": "Inteligência Esportiva"
        },
        {
          "rate": 4,
          "title": "Competividade"
        },
        {
          "rate": 4,
          "title": "Técnica Geral"
        }
      ],
      "context_fields": [
        {
          "name": "context_parecer",
          "type": "text_area",
          "label": "Contexto da equipe/liga em que atua",
          "value": "Texto de contexto preenchido pelo avaliador",
          "placeholder": "Insira sua avaliação"
        }
      ],
      "opinion_fields": [
        {
          "name": "parecer",
          "type": "text_area",
          "label": "Parecer",
          "value": "Parecer preenchido pelo avaliador",
          "placeholder": "Insira sua avaliação"
        }
      ]
    },
    "isNewEvaluation": true,
    "feedback": "Parecer preenchido pelo avaliador",
    "teamContext": "Texto de contexto preenchido pelo avaliador"
  },
  "match_position": null,
  "avg_rate": "4.50",
  "team": 626,
  "match_report": null,
  "general_evaluation": 4.5
}

4 Relatórios

Relatórios produzidos na plataforma pelo seu time, com autoria, data de geração e os atletas relacionados a cada documento.

4.1 Lista dos atletas vinculados a relatórios

Não existe um endpoint que liste atletas a partir dos relatórios. O caminho é consultar a listagem de relatórios (item 4.2) e ler os atletas relacionados em cada registro.

4.2 Lista dos relatórios gerados

Todos os relatórios da organização, com autor, data, projeto e time sombra vinculados, além dos nomes e fotos dos atletas incluídos.

GET
https://api-v1.footlink.app/api/v1/reports?limit=20&offset=0
Exemplo de resposta
{
  "count": 30,
  "next": "https://api-v1.footlink.app/api/v1/reports?limit=20&offset=20",
  "previous": null,
  "results": [
    {
      "id": 6507,
      "url": "https://api-v1.footlink.app/api/v1/reports/6507",
      "pdf_generated": false,
      "generated_date": "2025-01-17T10:17:38.686391-03:00",
      "name": "",
      "description": "",
      "author": {
        "name": "Admin longview",
        "email": "admin@longview.com.br"
      },
      "athletes_count": 1,
      "athletes": {
        "names": [
          "Neymar"
        ],
        "ids": [],
        "memberships_ids": [],
        "remaining": []
      },
      "athletes_photos": [
        "https://storage.googleapis.com/rdf_dev/uploads/athletes/avatar/6/1/31716.jpeg"
      ],
      "project": null,
      "shadow_team": null,
      "shadow_team_positions": "",
      "owner": 21
    },
    {
      "id": 6505,
      "url": "https://api-v1.footlink.app/api/v1/reports/6505",
      "pdf_generated": false,
      "generated_date": "2025-01-14T14:19:45.009264-03:00",
      "name": "",
      "description": "",
      "author": {
        "name": "Admin longview",
        "email": "admin@longview.com.br"
      },
      "athletes_count": 1,
      "athletes": {
        "names": [
          "Neymar"
        ],
        "ids": [],
        "memberships_ids": [],
        "remaining": []
      },
      "athletes_photos": [
        "https://storage.googleapis.com/rdf_dev/uploads/athletes/avatar/6/1/31716.jpeg"
      ],
      "project": null,
      "shadow_team": null,
      "shadow_team_positions": "",
      "owner": 21
    }
  ]
}

5 Projetos

Projetos de scouting da organização, com os usuários participantes, os quadros de workflow, os atletas em cada etapa, os times sombra e as anotações feitas dentro do projeto.

5.1 Lista dos atletas inseridos nos projetos

Não existe um endpoint que liste atletas a partir dos projetos. O caminho é consultar a listagem de projetos (item 5.2) e, no detalhe de cada projeto (item 5.3), ler os atletas inseridos.

5.2 Lista de projetos

Projetos da organização, com foto, usuários e permissões, contagem de atletas e status de arquivamento.

GET
https://api-v1.footlink.app/api/v1/projects?limit=20&offset=0&o=name&showArchived=false
Exemplo de resposta
{
  "count": 3,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 418,
      "name": "projeto no app",
      "photo": "https://storage.googleapis.com/rdf_dev/uploads/projects/images/1729633764793.jpeg",
      "users": [
        {
          "id": 1233,
          "permission": "Proprietário",
          "created_at": "2024-10-22T21:49:26.133832Z",
          "lastmodified_at": "2024-10-22T21:49:26.133912Z",
          "user": {
            "id": 21,
            "name": "Admin longview",
            "email": "admin@longview.com.br",
            "photo": "https://storage.googleapis.com/rdf_dev/uploads/users/avatar/21/1739971853509.webp"
          }
        }
      ],
      "athletes_count": 3,
      "created_at": "2024-10-22T18:49:24.793422-03:00",
      "lastmodified_at": "2024-10-22T18:50:40.338738-03:00",
      "is_archived": false
    }
  ]
}

5.3 Lista dos atletas por projeto (times sombra)

Detalhe do projeto: quadros (frames), o workflow com os atletas posicionados em cada etapa, os times sombra e os usuários com acesso.

GET
https://api-v1.footlink.app/api/v1/projects/{id}
Exemplo de resposta
{
  "id": 418,
  "frames": {
    "1paraobservar": "1 - Para observar",
    "3paraqualificar": "3 - Para qualificar",
    "4paracontratar": "4 - Para contratar"
  },
  "users": [
    {
      "id": 1233,
      "permission": "Proprietário",
      "created_at": "2024-10-22T21:49:26.133832Z",
      "lastmodified_at": "2024-10-22T21:49:26.133912Z",
      "user": {
        "id": 21,
        "name": "Admin longview",
        "email": "admin@longview.com.br",
        "photo": "https://storage.googleapis.com/rdf_dev/uploads/users/avatar/21/1739971853509.webp"
      }
    }
  ],
  "workflow": [
    {
      "id": 18197,
      "frame": "1paraobservar",
      "athlete": {
        "id": 1385941,
        "fullname": "Álvaro Nicolas Abarzúa Novoa",
        "nickname": "Á. Abarzúa",
        "foot": null,
        "age": 18,
        "birthdate": "2006-12-12",
        "position": "Meio-campo",
        "position1": "Meio-campo",
        "nationalities": [
          {
            "code": "CL",
            "name": "Chile",
            "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/cl.svg"
          }
        ],
        "photo": null,
        "current_team": {
          "id": 100,
          "name": "Huachipato",
          "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/Huachipato.png"
        },
        "lists": [],
        "last_evaluation": 0,
        "projects_count": 1,
        "transfer_market_negotiation_id": null
      },
      "order": 2
    },
    {
      "id": 16256,
      "frame": "1paraobservar",
      "athlete": {
        "id": 7363,
        "fullname": "Antolín Alcáraz Viveros",
        "nickname": "A. Alcáraz",
        "foot": "Direito",
        "age": 42,
        "birthdate": "1982-07-30",
        "position": "Zagueiro",
        "position1": "Defesa",
        "nationalities": [
          {
            "code": "PY",
            "name": "Paraguai",
            "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/py.svg"
          }
        ],
        "photo": "https://storage.googleapis.com/rdf_dev/uploads/athletes/avatar/3/7/7373.jpeg",
        "current_team": null,
        "lists": [
          4,
          48
        ],
        "last_evaluation": 0,
        "projects_count": 1,
        "transfer_market_negotiation_id": null
      },
      "order": 1
    },
    {
      "id": 16257,
      "frame": "1paraobservar",
      "athlete": {
        "id": 112711,
        "fullname": "Abner Felipe Souza De Almeida",
        "nickname": "Abner",
        "foot": null,
        "age": 28,
        "birthdate": "1996-05-30",
        "position": "Lateral Esquerdo",
        "position1": "Defesa",
        "nationalities": [
          {
            "code": "BR",
            "name": "Brasil",
            "flag": "https://storage.googleapis.com/rdf_static/flags/4x3/br.svg"
          }
        ],
        "photo": "https://storage.googleapis.com/rdf_dev/uploads/athletes/avatar/9/6/118869.jpeg",
        "current_team": {
          "id": 3937,
          "name": "RWD Molenbeek",
          "emblem": "https://storage.googleapis.com/rdf_dev/uploads/teams/emblems/1692540088802.4187.png"
        },
        "lists": [
          1025,
          4,
          131,
          55,
          125,
          64,
          413
        ],
        "last_evaluation": 0,
        "projects_count": 1,
        "transfer_market_negotiation_id": null
      },
      "order": 0
    }
  ],
  "shadow_teams": [],
  "created_by": 21,
  "created_by_user": {
    "id": 21,
    "name": "Admin longview",
    "email": "admin@longview.com.br",
    "photo": "https://storage.googleapis.com/rdf_dev/uploads/users/avatar/21/1739971853509.webp"
  },
  "created_at": "2024-10-22T18:49:24.793422-03:00",
  "lastmodified_at": "2024-10-22T21:49:49.329446Z",
  "name": "projeto no app",
  "photo": "https://storage.googleapis.com/rdf_dev/uploads/projects/images/1729633764793.jpeg",
  "is_archived": false
}

06 Guia rápido no Postman

Um roteiro curto para deixar sua coleção pronta e testar os endpoints em poucos minutos:

  1. Crie uma nova Collection chamada “Footlink”.
  2. Adicione a variável {{url}} com o valor https://api-v1.footlink.app/api/v1.
  3. Crie uma variável {{token}} para armazenar o JWT retornado pelo login.
  4. Organize as requisições em pastas por recurso: login, competitions, athletes, evaluations, reports, projects.
  5. Na aba Authorization da Collection, escolha Bearer Token e informe {{token}} — todas as requisições herdam essa configuração.
  6. Insira as requisições GET e POST conforme permitido por cada endpoint.

Para preencher o token automaticamente, adicione este script na aba Tests da requisição de login:

pm.collectionVariables.set("token", pm.response.json().access);

07 Boas práticas

  • Utilize limit e offset para paginar as consultas e evitar respostas muito grandes.
  • Percorra a paginação seguindo o campo next até ele retornar null.
  • Verifique os campos obrigatórios antes de enviar requisições via método POST.
  • Renove o token periodicamente e trate a resposta 401 com uma nova autenticação automática.
  • Guarde credenciais em variáveis de ambiente — nunca em código versionado ou no front-end.
  • Faça cache local dos dados que mudam pouco (clubes, competições) e sincronize com menos frequência.
  • Prefira sincronizações incrementais e agendadas a varreduras completas repetidas ao longo do dia.
  • Registre endpoint, status e horário das chamadas para facilitar o diagnóstico junto ao suporte.

08 Suporte e contato

Dúvidas técnicas sobre a integração, limites de uso ou liberação de credenciais? Fale com o nosso time:

E-mail support@footlink.app

Suporte técnico e dúvidas sobre endpoints.

WhatsApp Canal de suporte

Atendimento direto para clientes e assinantes da API.

Plataforma web.footlink.app

Acesse o Footlink e compare os dados da API com a interface.

🤝

Ao acionar o suporte, informe o endpoint, o horário da chamada e o código de status recebido. Isso acelera muito o diagnóstico.