Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/realtimesportsapi-com:realtimesportsapi-com-injuries-availability-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Realtimesportsapi Com Injuries & Availability API
version: 1.0.0
contact:
name: Realtime Sports API support
email: austin@elcodev.com
url: https://www.realtimesportsapi.com/?utm_source=openapi
license:
name: Proprietary
url: https://www.realtimesportsapi.com/terms?utm_source=openapi
termsOfService: https://www.realtimesportsapi.com/terms?utm_source=openapi
description: 'Operations tagged Injuries & Availability across 2 of this provider''s published API definitions: original.json, realtimesportsapi-com-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://www.realtimesportsapi.com/api/v1
description: Production
security:
- BearerAuth: []
- ApiKeyHeader: []
tags:
- name: Injuries & Availability
description: Injury reports and normalized player availability
paths:
/sports/{sport}/leagues/{league}/athletes/{athleteId}/availability-history:
get:
operationId: getAthleteAvailabilityHistory
tags:
- Injuries & Availability
summary: Get athlete availability history
description: Time series of a player's injury/availability designations, newest first, as observed by our snapshots (every 5 minutes).
parameters:
- name: sport
in: path
required: true
description: 'Sport slug: football, basketball, baseball, hockey, soccer.'
schema:
type: string
example: football
- name: league
in: path
required: true
description: League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.
schema:
type: string
example: nfl
- name: athleteId
in: path
required: true
description: Athlete id, as returned by the athletes endpoints.
schema:
type: string
example: '3139477'
- name: limit
in: query
required: false
description: Maximum transitions to return (default 100, max 500).
schema:
type: integer
example: 100
default: 100
minimum: 1
maximum: 500
- name: from
in: query
required: false
description: Only items on or after this ISO-8601 timestamp.
schema:
type: string
example: '2026-09-01T00:00:00Z'
format: date-time
- name: to
in: query
required: false
description: Only items on or before this ISO-8601 timestamp.
schema:
type: string
example: '2026-10-01T00:00:00Z'
format: date-time
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
type: object
properties:
athleteId:
type: string
current:
type:
- object
- 'null'
allOf:
- $ref: '#/components/schemas/AvailabilityState'
history:
type: array
items:
$ref: '#/components/schemas/AvailabilityTransition'
meta:
type: object
properties:
rateLimit:
$ref: '#/components/schemas/RateLimit'
count:
type: integer
required:
- success
- data
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'500':
$ref: '#/components/responses/ServerError'
servers:
- url: https://www.realtimesportsapi.com/api/v1
description: Production
/sports/{sport}/leagues/{league}/injuries:
get:
operationId: getInjuries
tags:
- Injuries & Availability
summary: Get injury report
description: Current injuries grouped by team. Without `team` the league-wide feed is truncated by the source to the 25 most recent records per team; with `team` the complete current report is returned. Empty in the off-season.
parameters:
- name: sport
in: path
required: true
description: 'Sport slug: football, basketball, baseball, hockey, soccer.'
schema:
type: string
example: football
- name: league
in: path
required: true
description: League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.
schema:
type: string
example: nfl
- name: team
in: query
required: false
description: Filter to one team id.
schema:
type: string
example: '12'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
$ref: '#/components/schemas/InjuryReport'
meta:
type: object
properties:
rateLimit:
$ref: '#/components/schemas/RateLimit'
note:
type: string
required:
- success
- data
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'500':
$ref: '#/components/responses/ServerError'
servers:
- url: https://www.realtimesportsapi.com/api/v1
description: Production
/sports/{sport}/leagues/{league}/player-availability:
get:
operationId: getPlayerAvailability
tags:
- Injuries & Availability
summary: Get normalized player availability
description: One normalized `availability` value per player (OUT, DOUBTFUL, QUESTIONABLE, PROBABLE, DAY_TO_DAY, INJURED_RESERVE, SUSPENDED, AVAILABLE, UNKNOWN).
parameters:
- name: sport
in: path
required: true
description: 'Sport slug: football, basketball, baseball, hockey, soccer.'
schema:
type: string
example: football
- name: league
in: path
required: true
description: League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.
schema:
type: string
example: nfl
- name: team
in: query
required: false
description: Filter to one team id.
schema:
type: string
example: '12'
- name: status
in: query
required: false
description: Filter to one normalized availability value.
schema:
type: string
example: OUT
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
$ref: '#/components/schemas/PlayerAvailabilityReport'
meta:
type: object
properties:
rateLimit:
$ref: '#/components/schemas/RateLimit'
required:
- success
- data
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'500':
$ref: '#/components/responses/ServerError'
servers:
- url: https://www.realtimesportsapi.com/api/v1
description: Production
/sports/{sport}/leagues/{league}/player-availability/history:
get:
operationId: getPlayerAvailabilityHistory
tags:
- Injuries & Availability
summary: Get availability changes feed
description: League-wide feed of availability designation changes, newest first.
parameters:
- name: sport
in: path
required: true
description: 'Sport slug: football, basketball, baseball, hockey, soccer.'
schema:
type: string
example: football
- name: league
in: path
required: true
description: League slug, e.g. nfl, college-football, nba, mens-college-basketball, mlb, nhl, eng.1, usa.1.
schema:
type: string
example: nfl
- name: team
in: query
required: false
description: Filter to one team id.
schema:
type: string
example: '12'
- name: since
in: query
required: false
description: Only changes at or after this time.
schema:
type: string
example: '2026-09-01T00:00:00Z'
format: date-time
- name: status
in: query
required: false
description: Filter to one normalized availability value.
schema:
type: string
example: OUT
- name: limit
in: query
required: false
description: Maximum changes to return (default 100, max 500).
schema:
type: integer
example: 100
default: 100
minimum: 1
maximum: 500
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
example: true
data:
type: array
items:
$ref: '#/components/schemas/AvailabilityTransition'
meta:
type: object
properties:
rateLimit:
$ref: '#/components/schemas/RateLimit'
count:
type: integer
required:
- success
- data
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimitExceeded'
'500':
$ref: '#/components/responses/ServerError'
servers:
- url: https://www.realtimesportsapi.com/api/v1
description: Production
components:
schemas:
Injury:
type: object
properties:
athlete:
type: object
properties:
id:
type: string
displayName:
type: string
position:
type: string
team:
type: object
properties:
id:
type: string
displayName:
type: string
status:
type: string
example: Out
statusType:
type: string
fantasyStatus:
type: string
type:
type: string
bodyPart:
type: string
location:
type: string
detail:
type: string
side:
type: string
injuryId:
type: string
example: '-2041554'
returnDate:
type: string
example: '2026-10-18'
practice:
$ref: '#/components/schemas/PracticeParticipation'
date:
type: string
shortComment:
type: string
longComment:
type: string
AvailabilityState:
type: object
properties:
athleteId:
type: string
name:
type: string
position:
type: string
teamId:
type: string
teamName:
type: string
availability:
type: string
example: QUESTIONABLE
enum:
- OUT
- DOUBTFUL
- QUESTIONABLE
- PROBABLE
- DAY_TO_DAY
- INJURED_RESERVE
- SUSPENDED
- AVAILABLE
- UNKNOWN
status:
type: string
example: Questionable
reason:
type: string
example: Hamstring
detail:
type: string
reportDate:
type: string
observedAt:
type: string
format: date-time
injuryId:
type: string
returnDate:
type: string
example: '2026-10-18'
practice:
type: string
example: LIMITED
enum:
- DNP
- LIMITED
- FULL
description: Parsed from the news note (derived, not a structured provider field).
practiceDay:
type: string
example: Wednesday
seasonYear:
type: integer
example: 2026
seasonType:
type: integer
example: 2
week:
type: integer
example: 5
Error:
type: object
properties:
success:
type: boolean
example: false
error:
type: object
properties:
code:
type: string
example: MISSING_TOKEN
message:
type: string
example: Authorization required
hint:
type: string
example: 'Use Authorization: Bearer <your-api-key> or X-API-Key: <your-api-key>.'
required:
- code
- message
required:
- success
- error
AvailabilityTransition:
allOf:
- $ref: '#/components/schemas/AvailabilityState'
- type: object
properties:
sport:
type: string
example: football
league:
type: string
example: nfl
previousAvailability:
type: string
previousStatus:
type: string
changeType:
type: string
example: change
enum:
- new
- change
- cleared
PlayerAvailabilityReport:
type: object
properties:
count:
type: integer
groups:
type: array
items:
type: object
properties:
team:
type: object
properties:
id:
type: string
displayName:
type: string
players:
type: array
items:
$ref: '#/components/schemas/PlayerAvailability'
players:
type: array
items:
$ref: '#/components/schemas/PlayerAvailability'
PracticeParticipation:
type: object
properties:
status:
type: string
example: LIMITED
enum:
- DNP
- LIMITED
- FULL
day:
type: string
example: Wednesday
estimated:
type: boolean
example: false
derived:
type: boolean
example: true
description: Practice participation parsed from the latest news note. Derived, not an official injury-report field; absent when the note does not state it.
InjuryReport:
type: object
properties:
count:
type: integer
groups:
type: array
items:
type: object
properties:
team:
type: object
properties:
id:
type: string
displayName:
type: string
injuries:
type: array
items:
$ref: '#/components/schemas/Injury'
injuries:
type: array
items:
$ref: '#/components/schemas/Injury'
RateLimit:
type: object
properties:
limit:
type: integer
example: 10000
description: Calls included this month.
remaining:
type: integer
example: 9876
description: Calls remaining this month (approximate; updated asynchronously).
reset:
type: integer
example: 1767225600000
description: Quota reset time, Unix epoch milliseconds.
PlayerAvailability:
type: object
properties:
athlete:
type: object
properties:
id:
type: string
displayName:
type: string
position:
type: string
team:
type: object
properties:
id:
type: string
displayName:
type: string
availability:
type: string
example: OUT
enum:
- OUT
- DOUBTFUL
- QUESTIONABLE
- PROBABLE
- DAY_TO_DAY
- INJURED_RESERVE
- SUSPENDED
- AVAILABLE
- UNKNOWN
status:
type: string
statusType:
type: string
reason:
type: string
detail:
type: string
injuryId:
type: string
returnDate:
type: string
practice:
$ref: '#/components/schemas/PracticeParticipation'
date:
type: string
responses:
RateLimitExceeded:
description: 'Too many requests: either the monthly quota is exhausted (code RATE_LIMIT_EXCEEDED; upgrade or enable overage) or the plan''s per-second rate was exceeded (code RATE_LIMIT_PER_SECOND; Free 1/s, Starter 5/s, Growth 10/s, Pro 20/s, Scale 100/s). Wait for `Retry-After` seconds.'
headers:
Retry-After:
description: Seconds until you may retry.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: 'Missing, malformed, unknown or expired API key (codes: MISSING_TOKEN, USER_NOT_FOUND, TRIAL_EXPIRED).'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ServerError:
description: Unexpected error. Safe to retry with backoff.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: 'Your API key from the dashboard: `Authorization: Bearer <api key>`. Keys are opaque strings, not JWTs.'
ApiKeyHeader:
type: apiKey
in: header
name: X-API-Key
description: Alternative to the Authorization header (useful behind proxies that strip Authorization).
externalDocs:
description: Guides, WebSocket and webhook docs
url: https://www.realtimesportsapi.com/docs?utm_source=openapi
x-refined-from:
- original.json
- realtimesportsapi-com-openapi.json