Crex APIcrex.com ↗
Access live cricket scores, scorecards, ball-by-ball commentary, ICC rankings, fixtures, and news from crex.com via 7 structured JSON endpoints.
What is the Crex API?
The Crex.com API covers 7 endpoints that expose live match data, full scorecards, ball-by-ball commentary, ICC rankings, fixtures, and cricket news. The get_live_matches endpoint returns every currently live and recently completed match with team names, scores, venue, format, and series name in a single call — no match ID required to start.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/92abcb7e-38a3-4b91-97f1-5728b10e53ee/get_live_matches' \ -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 crex-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: Crex Cricket API — live matches, scorecards, commentary, rankings, and news."""
from parse_apis.Crex_Cricket_API import Crex, NotFoundError
client = Crex()
# Get all live/recent matches
for match in client.matches.list_live(limit=3):
print(match.team1, "vs", match.team2, "-", match.status)
print(" Series:", match.series, "| Venue:", match.venue, "| Format:", match.format)
# Drill into a single match's scorecard via constructible Match
match = client.match("11EN")
for innings in match.scorecard.list(limit=4):
print(f" Innings {innings.innings_no}: {innings.team} - {innings.total}")
for batter in innings.batting[:2]:
print(f" {batter.player}: {batter.runs}({batter.balls})")
# Get match info (weather, venue stats)
info = match.info.get()
print(" Format:", info.fo, "| Head-to-head:", info.hth)
if info.weather:
print(" Weather:", info.weather)
# Get commentary events
for event in match.commentary.list(limit=3):
print(f" [{event.type}] id={event.id} inning={event.inning}")
# Get ICC rankings
ranking = client.rankings.get()
for team in ranking.test[:3]:
print(team.team_name, "- Rank:", team.rank, "Points:", team.points)
# Get news articles (auto-paginated)
try:
for article in client.articles.list(limit=3):
print(article.header, "|", article.news_url)
except NotFoundError as exc:
print(f"Not found: {exc}")
print("Exercised: matches.list_live / scorecard.list / info.get / commentary.list / rankings.get / articles.list")
Returns all currently live and recently completed cricket matches, including team names, current scores, match status, tournament/series name, venue, and match timestamps. Results reflect real-time state and include matches from all formats (T20, ODI, Test, T20I). No filtering or pagination — the full set of active matches is returned in one call.
No input parameters required.
{
"type": "object",
"fields": {
"matches": "array of match objects with team names, scores, venue, format, status, and start_time"
},
"sample": {
"data": {
"matches": [
{
"team1": "Rewa Jaguars",
"team2": "Indore Pink Panthers",
"venue": "Daly College Ground, Indore",
"format": "T20",
"score1": "209/5(20.0",
"score2": "178/10(19.3",
"series": "Madhya Pradesh T20 League 2026",
"status": "Rewa Jaguars won by 31 runs",
"match_id": "1238",
"score1_2nd": null,
"score2_2nd": null,
"start_time": 1781083800000,
"team1_short": "RJ",
"team2_short": "IPP"
}
]
},
"status": "success"
}
}About the Crex API
Live Matches, Scorecards, and Commentary
get_live_matches requires no inputs and returns a list of active and recently finished matches. Each object includes match_id, team1, team2, venue, format (T20, ODI, Test, T20I, or null), series, status, and both first- and second-innings scores via score1, score2, and score1_2nd. The match_id returned here is the key parameter you pass to downstream endpoints. get_match_scorecard takes that match_id and returns per-innings batting lines (player, runs, balls, fours, sixes, dismissal) and bowling figures (player, overs, runs, wickets, extras), along with the innings total and extras breakdown. get_match_live_commentary accepts a match_id and an optional last_doc_id for cursor-based pagination through older events. Each commentary entry carries a type field — b (ball), o (over summary), w (wicket), tm (team milestone), dh (day header), or wc (win confirmation) — plus over number, current score, primary text (c1), and detailed text (c2).
Match Info, Fixtures, and Rankings
get_match_info returns venue metadata, head-to-head records (hth), weather conditions (wU object with condition, temperature, and wind speed), and playing XIs encoded in the tp field. Venue average scores at various over marks are available in va. get_fixtures accepts a page index and grouping mode (wise: '1' groups by date) and returns scheduled and completed matches with team IDs, series IDs, scores, result text, and match format. get_rankings requires no inputs and returns ICC rankings across all three formats — test, odi, and t20 — with team names, rating points, and match counts.
News
get_news_list returns paginated cricket news articles. Each article object includes header, excerpt, newsUrl, cover_image_url, tags_array, and an optional attachedMatch field linking the article to a specific match. The next and prev boolean fields make it straightforward to walk through pages. The page and limit parameters control pagination.
The Crex API is a managed, monitored endpoint for crex.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when crex.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 crex.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 live cricket score ticker using
get_live_matchesfor real-time team scores and match status. - Render a full match scorecard with batting and bowling figures for any completed or in-progress innings via
get_match_scorecard. - Implement ball-by-ball commentary feeds with wicket and milestone event filtering using the
typefield fromget_match_live_commentary. - Display weather and venue stats on a fantasy cricket app's match preview page using data from
get_match_info. - Populate a fixtures calendar grouped by date using
get_fixtureswithwise: '1'and paginated page inputs. - Show ICC team rankings tables for Test, ODI, and T20 formats from
get_rankingswithout any filtering parameters. - Attach breaking cricket news to match pages by cross-referencing
attachedMatchfields fromget_news_list.
| 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 crex.com offer an official developer API?+
What event types appear in ball-by-ball commentary, and how do I distinguish them?+
get_match_live_commentary includes a type field. The values are: b for individual ball events (which carry c1 and c2 text fields), o for over summaries, w for wicket events, tm for team milestones, dh for day headers, and wc for win confirmation events. You filter on type to route events to the appropriate UI component or data handler.How do I paginate through older commentary entries?+
get_match_live_commentary endpoint uses cursor-based pagination. Each response entry includes an id integer field. Pass that value as last_doc_id in the next POST request for the same match_id to retrieve older entries. Omitting last_doc_id returns the most recent commentary.Does the API cover player profiles, career statistics, or historical match archives?+
Are series-level standings or points tables available?+
get_rankings and fixture metadata via get_fixtures, but tournament-level points tables and group standings are not included. You can fork the API on Parse and revise it to add a series standings endpoint.