Stats API · v1 pilot
Build with NPL data
Teams, players, fixtures and the numbers behind each recorded innings.
Start with your API key
Access is by invitation. Each approved integration receives a key and request allowance. Send your key in the Authorization: Bearer header from your server.
curl --fail-with-body 'https://nepalcric.com/api/v1/stats/batting?year=2025&team=pokhara-avengers&limit=10' \
-H "Authorization: Bearer $NPL_API_KEY"Teams and players
- GET
/teams - GET
/teams/{slug} - GET
/teams/{slug}/roster?year=2025 - GET
/players?team=pokhara-avengers&year=2025 - GET
/players/{slug} - GET
/players/{slug}/rosters
Games and standings
- GET
/seasons - GET
/matches?year=2026 - GET
/matches/{id} - GET
/standings?year=2026
NPL archive statistics
- GET
/stats/batting?year=2025 - GET
/stats/bowling?year=2025 - GET
/stats/fielding?year=2025 - GET
/players/{slug}/stats?year=2025 - GET
/teams/{slug}/stats?year=2025
Cricsheet scorecards and deliveries
- GET
/archive/players?year=2025 - GET
/archive/players/{personId}/stats?year=2025 - GET
/archive/matches?year=2025 - GET
/archive/matches/{sourceId} - GET
/archive/matches/{sourceId}/deliveries?innings=1&limit=60&after=0
Read the response
Successful requests return data, meta and requestId. Lists accept limit and offset; follow meta.pagination.nextOffset until it is null. Most lists return 25 rows by default, up to 100.
Deliveries use an after cursor and return nextAfter. Their limit is 200 events. Wides and no-balls are individual events, so a delivery sequence is different from a legal-ball count.
Statistics require a year. Begin with /seasons to discover which seasons have imported ball-by-ball records. Profiles expose verified Cricsheet identities; players without a confirmed link return STATS_NOT_LINKED for profile statistics.
Coverage and sources
Fixtures and results follow the records maintained by Nepal Cric. The API does not promise live ball-by-ball updates. Cricsheet statistics cover imported NPL matches and do not represent complete player careers.
Super Overs are excluded from summary totals and appear separately in scorecards. Undefined rates are null. Overs use cricket notation: 9.5 means 59 legal balls. Season rosters include recorded jersey numbers and roles.
Archive responses include meta.attribution with Cricsheet and ODC-By 1.0 links. Keep the attribution with downstream data.
Limits and errors
Your minute and daily allowances are returned in X-RateLimit-* and X-DailyLimit-* headers. Daily windows reset at 00:00 UTC. Authenticated GET attempts count toward your allowance, including invalid queries.
- 400: Check the parameters and required season.
- 401: Supply a valid key; keys can expire or be revoked.
- 404: Resource unavailable, or player statistics have no verified link.
- 409: Choose an explicit archive identity.
- 429: Wait for the number of seconds in
Retry-After. - 503: Service temporarily unavailable; retry with backoff.
