Ogol APIogol.com.br ↗
Access Brazilian women's football player profiles, match logs, season stats, honours, and club squads via the ogol.com.br API. 6 endpoints.
What is the Ogol API?
The ogol.com.br API provides 6 endpoints covering Brazilian women's football, including player search, biographical profiles, match-by-match logs, career statistics, titles, and club squads. The player_match_log endpoint returns per-game data with fields like minutes played, goals, assists, and starter status for any given season. Player IDs returned by search_player serve as the primary key across all other endpoints.
curl -X GET 'https://api.parse.bot/scraper/8ca53bd8-548e-425c-8969-2e2e7e8a2201/search_player?name=Marta' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ogol-com-br-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Ogol Football Player Stats API SDK — bounded, re-runnable; every call capped."""
from parse_apis.Ogol_Football_Player_Stats_API import Ogol, PlayerNotFound
client = Ogol()
# Search for a player by name
for player in client.players.search(name="Marta", limit=3):
print(player.full_name, player.position, player.nationality)
# Get full profile for the first match
hit = client.players.search(name="Marta", limit=1).first()
try:
profile = client.players.get(player_id=hit.player_id)
print(profile.full_name, profile.birth_date, profile.position)
print(profile.national_team_stats.senior_caps, "caps,", profile.national_team_stats.senior_goals, "goals")
except PlayerNotFound as e:
print(f"Player gone: {e.player_id}")
# Season-by-season career stats
if hit:
full = client.players.get(player_id=hit.player_id)
stats = full.season_by_season()
for rec in stats.seasons[:3]:
print(rec.season, rec.club, rec.squad_level, rec.jogos, rec.gols)
# Match log for current season
if hit:
full = client.players.get(player_id=hit.player_id)
log = full.match_log(season="155")
print(log.data_status)
for match in log.matches[:3]:
print(match.date, match.competition, match.opponent, match.goals, match.unused_substitute)
for total in log.resumo_totals[:2]:
print(total.competition, total.jogos, total.gols_marcados)
# Honours / titles
if hit:
full = client.players.get(player_id=hit.player_id)
for title in full.honours(limit=3):
print(title.competition, title.club, title.season)
# Club squad
corinthians = client.club(team_id="31546")
for member in corinthians.squad(season="155", limit=3):
print(member.shirt_number, member.name, member.age, member.position)
print("exercised: players.search / players.get / season_by_season / match_log / honours / club.squad")
Search for football players by name across all ogol.com.br listings (men/women, senior/youth, all leagues). Returns a list of matching players with their IDs, positions, and nationalities. Results are ordered by popularity.
| Param | Type | Description |
|---|---|---|
| namerequired | string | Player name or partial name to search for. |
{
"type": "object",
"fields": {
"players": "array of player search results with player_id, full_name, position, nationality, href"
},
"sample": {
"players": [
{
"href": "/jogador/marta/86678?search=1",
"position": "ATA, MEI",
"full_name": "Marta",
"player_id": "86678",
"nationality": "BR"
}
]
}
}About the Ogol API
Player Discovery and Profiles
Use search_player with a full or partial name to retrieve a ranked list of players, each carrying a player_id, position, nationality, and href. Pass any player_id into player_profile to get biographical details: birth_date (ISO YYYY-MM-DD), birthplace, preferred foot, height_weight, current club, and situacao — the active/retired status recorded in Portuguese as *Em atividade* or *Retirado*. Dual nationalities are exposed in the nationality field when applicable.
Match Logs and Career Statistics
player_match_log accepts a player_id and a season parameter (the epoca_id, e.g. 155 for the 2025/2026 season) and returns a chronological array of match entries. Each entry includes date, competition, club, opponent, score, minutes, goals, assists, result, round, home_away, and substitution status. For aggregated career data, player_season_by_season returns one record per club-season with jogos, gols, and assistencias, plus a separate national_team array covering international appearances.
Honours and Club Squads
player_honours returns all recorded titles for a player as an array of competition, club, and season entries. Competition names are preserved in Portuguese as they appear on the source. club_squad accepts a team_id and season and returns the full squad list with shirt_number, name, age, nationality, player_id, and position group — making it straightforward to iterate over a squad and call player_profile or player_season_by_season for each member.
The Ogol API is a managed, monitored endpoint for ogol.com.br — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ogol.com.br changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ogol.com.br API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a career timeline for any Brazilian women's footballer using
player_season_by_seasongoals and appearances data. - Track match-level performance (minutes, goals, assists) across a full season using
player_match_log. - Compare squad compositions across clubs and seasons using
club_squadnationality and position data. - Identify active vs. retired players programmatically via the
situacaofield inplayer_profile. - Aggregate titles by club or competition from
player_honoursto analyse historic trophy distributions. - Cross-reference national team caps from
player_season_by_seasonwith club stats to evaluate dual-role workloads. - Seed a player database by iterating
search_playerresults and enriching each entry with full profile and career data.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ogol.com.br have an official developer API?+
What does the `player_match_log` endpoint distinguish about a player's role in each match?+
status field that records whether the player started, came on as a substitute, or was unused. It also captures minutes played, goals, assists, home_away context, and the result of the match, so you can filter logs to starting appearances or substitute contributions specifically.How do I find a team_id to use with `club_squad`?+
team_id is a numeric identifier. It appears in player_profile results under the current club reference, and can also be extracted from player profile href links returned by search_player. There is no dedicated club search endpoint currently. You can fork this API on Parse and revise it to add a club search endpoint that returns team_id values directly.Does the API cover men's football or other competitions on ogol.com.br?+
Are historical seasons available in `player_match_log`, or only the current season?+
season parameter accepts any valid epoca_id, not just the current season. The value 155 maps to the 2025/2026 season. Passing other epoca_id values will return logs for those seasons, provided the player has recorded activity in that period on ogol.com.br. A full mapping of epoca_id values to season labels is not exposed by the current endpoints. You can fork this API on Parse and revise it to add a seasons lookup endpoint.