247Sports API247sports.com ↗
Access 247Sports recruit rankings, team recruiting rankings, and message board topics and posts via a structured REST API. Supports Football and Basketball.
What is the 247Sports API?
The 247Sports API exposes 4 endpoints covering recruit rankings, team recruiting class rankings, message board topics, and individual thread posts. The get_rankings endpoint returns paginated recruit lists with fields like rank, position, location, rating, and metrics for Football and Basketball recruiting classes dating back multiple years. Whether you're tracking top prospects or monitoring community discussion, the API delivers structured data from one of college sports' primary recruiting databases.
curl -X GET 'https://api.parse.bot/scraper/ab5fa7c3-6639-49f1-8ea7-ee4289dca2f7/get_rankings?page=1&year=2026&sport=Football' \ -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 247sports-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.
"""Walkthrough: 247Sports SDK — recruit & team rankings, board discussions."""
from parse_apis.two_four_seven_sports_api import (
TwoFourSevenSports, Sport, SportId, TopicNotFound
)
client = TwoFourSevenSports()
# List top football recruits for 2026; limit caps total items fetched.
for recruit in client.recruits.list(sport=Sport.FOOTBALL, year="2026", limit=5):
print(recruit.name, recruit.position, recruit.rating)
# Team rankings — basketball recruiting class strength.
for team in client.teamrankings.list(sport_id=SportId.FOOTBALL, year=2026, limit=3):
print(team.full_name, team.rank, team.five_stars, team.commits)
# Navigate a message board: construct a Board by id, list its topics.
board = client.board(id="30")
topic = board.topics(limit=1).first()
if topic:
print(topic.title, topic.is_vip)
# Drill into the topic's posts.
try:
for post in topic.content(limit=3):
print(post.username, post.is_vip)
except TopicNotFound as exc:
print(f"Topic gone: {exc}")
print("exercised: recruits.list / teamrankings.list / board.topics / topic.content")
Retrieve paginated recruit rankings for a sport and recruiting class year. Each page returns approximately 50 recruits ordered by overall rank. Supports Football and Basketball sports.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number to fetch. |
| year | string | Recruiting class year (e.g. 2025, 2026). |
| sport | string | Sport name. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"count": "integer total number of recruits on this page",
"rankings": "array of recruit objects with name, profile_url, rank, location, position, metrics, and rating"
},
"sample": {
"data": {
"page": 1,
"count": 247,
"rankings": [
{
"name": "Keisean Henderson",
"rank": "1",
"rating": "100",
"metrics": "6-3 / 185",
"location": "Legacy the School of Sport Sciences (Spring, TX)",
"position": "QB",
"profile_url": "/player/keisean-henderson-46129516/"
}
]
},
"status": "success"
}
}About the 247Sports API
Recruit and Team Rankings
The get_rankings endpoint returns up to 50 recruits per page, each with fields including name, profile_url, rank, location, position, metrics, and rating. You can filter by year (e.g. 2025, 2026) and sport (Football or Basketball). The get_team_rankings endpoint returns team recruiting class data — including rank, rating, fiveStars, fourStars, threeStars, and commits counts — with server-side pagination controlled by year and sport_id. The pagination object includes count, currentPage, pageCount, and itemsPerPage, making it straightforward to page through all ranked programs.
Message Board Access
The get_board_topics endpoint lists topics from any 247Sports message board identified by a numeric board_id. Each topic object carries title, url, author, replies, views, and an is_vip flag that indicates premium-only threads. Up to 50 topics are returned per page. Be aware that invalid or restricted board IDs return an empty topics array rather than an error, so validating your board_id before looping is worth doing.
Thread-Level Post Data
The get_topic_content endpoint accepts a full topic URL (e.g. https://247sports.com/board/30/contents/message-board-rules-128528768/) and returns all posts in that thread. Each post object includes username, content, upvotes, timestamp, and is_vip. VIP-only topics may return limited content depending on access level. This endpoint is useful for capturing community sentiment around specific recruits or coaching decisions at the post level.
The 247Sports API is a managed, monitored endpoint for 247sports.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 247sports.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 247sports.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?+
- Build a recruit tracking dashboard that aggregates rank, rating, and position from get_rankings across multiple class years
- Compare team recruiting class strength by pulling fiveStars, fourStars, threeStars, and commits from get_team_rankings
- Monitor message board activity by polling get_board_topics for new threads and flagging VIP-only content via the is_vip field
- Analyze fan and analyst sentiment on a specific recruit by fetching all posts from a thread using get_topic_content
- Identify the most-discussed topics on a board by sorting get_board_topics results by the replies and views fields
- Track year-over-year changes in team recruiting rank by requesting get_team_rankings for consecutive years
- Aggregate author activity across message board topics to identify prolific contributors by querying multiple board IDs
| 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.