On3 APIon3.com ↗
Access NCAA transfer portal data from On3.com. Retrieve player profiles, transfer statuses, school info, physical measurements, and ratings by cycle year.
What is the On3 API?
The On3 Transfer Portal API exposes one endpoint — get_transfer_portal_2026 — that returns paginated lists of NCAA transfer portal players, up to 50 per page, with 12+ fields per player including name, position, school, entry date, height, weight, current status, and rating information. It covers the 2026 recruiting cycle and is suited for tracking player movement across college programs.
curl -X GET 'https://api.parse.bot/scraper/e7af8bec-a6c8-4726-8d93-da0aea185cb3/get_transfer_portal_2026?max_pages=2' \ -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 on3-com-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.
from parse_apis.on3_transfer_portal_api import On3, Player
client = On3()
# Retrieve players from the 2026 transfer portal (2 pages = ~100 players)
for player in client.players.list_2026(max_pages=2):
print(player.name, player.position, player.school_name, player.current_status, player.player_rating)
Retrieve players from the NCAA Transfer Portal wire for the 2026 football recruiting cycle. Returns a paginated, reverse-chronological list of portal entries with 50 players per page. Each player includes position, school, transfer status, physical measurements, rating, and entry date. Pagination is server-side; the max_pages parameter controls how many pages to fetch (each page = 50 players).
| Param | Type | Description |
|---|---|---|
| max_pages | integer | Maximum number of pages to fetch (50 players per page). Each page adds ~50 players to the response. |
{
"type": "object",
"fields": {
"players": "array of player objects with name, position, school_name, school_location, school_mascot, current_status, entry_date, height, weight, graduation_year, player_rating, slug",
"cycle_year": "string representing the transfer portal cycle year",
"total_players_found": "integer count of players returned"
},
"sample": {
"data": {
"players": [
{
"name": "Karson Gordon",
"slug": "karson-gordon-71371",
"height": "6-0",
"weight": 175,
"position": "QB",
"entry_date": "2026-05-28",
"school_name": "UCLA",
"player_rating": 85.62,
"school_mascot": "Bruins",
"current_status": "Committed",
"graduation_year": 2024,
"school_location": "Missouri City, TX"
}
],
"cycle_year": "2026",
"total_players_found": 100
},
"status": "success"
}
}About the On3 API
What the API Returns
The get_transfer_portal_2026 endpoint returns structured data on players currently listed in the NCAA Transfer Portal for the 2026 cycle. Each response includes cycle_year, total_players_found, and a players array. Each player object carries identifying fields (name, position), school context (school_name, school_location, school_mascot), portal activity (current_status, entry_date), physical measurements (height, weight), and recruiting evaluation data (rating information).
Pagination and Volume
Results are paginated at 50 players per page. The optional max_pages integer parameter lets you cap how many pages are fetched in a single request, which is useful for sampling the portal or staying within a processing budget. Omitting max_pages returns the full available dataset up to the portal's current roster.
Data Scope
Coverage is scoped to the 2026 transfer portal cycle. The current_status field reflects where a player stands in the portal process — for example, whether they are still available, committed, or withdrawn. entry_date lets you sort or filter players chronologically by when they entered the portal, which is useful for tracking recent activity.
The On3 API is a managed, monitored endpoint for on3.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when on3.com 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 on3.com 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?+
- Track daily transfer portal entries by monitoring
entry_dateandcurrent_statusacross cycles. - Build a positional breakdown of portal availability using
positionandschool_namefields. - Analyze recruiting activity by filtering players by
current_statusto separate committed from available prospects. - Map transfer trends geographically using
school_locationto see which regions produce or lose portal players. - Integrate player
height,weight, and rating data into a prospect ranking or scouting tool. - Alert systems that notify when new players matching a target
positionappear in the portal. - Populate a team roster management tool with real-time transfer portal additions by school mascot and name.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does On3 have an official public developer API?+
What does `current_status` represent in the player response?+
current_status field reflects a player's current standing in the transfer portal — such as whether they remain available, have committed to a new program, or have withdrawn from the portal entirely. It is a point-in-time value based on when the data was last retrieved.Does the API cover transfer portal cycles other than 2026?+
get_transfer_portal_2026). Historical cycles such as 2024 or 2025 are not covered by a separate endpoint at this time. You can fork this API on Parse and revise it to add endpoints targeting other cycle years.Can I filter players by position or school directly in the API request?+
get_transfer_portal_2026 endpoint does not expose server-side filter parameters for position or school. The response returns the full paginated dataset and filtering can be applied client-side using the position, school_name, or school_mascot fields. You can fork this API on Parse and revise it to add server-side filtering if needed.