Properties
| Name | Type | Description |
|---|---|---|
| away | string | |
| awayId | integer | |
| bookmakerIds | object | |
| bookmakers | object | |
| date | string | |
| home | string | |
| homeId | integer | |
| id | integer | |
| league | object | |
| scores | object | |
| sport | object | |
| status | string | Whether the match is under way: pending, live, settled or cancelled. Can read live before the listed start, or while /events still lists the event as pending. A pending event never carries in-play pri |
| urls | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/odds-api-io/json-schema/odds-api-io-controllers-event-response-schema.json",
"title": "controllers.EventResponse",
"x-generated": "2026-11-06",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/odds-api-io-openapi.json#/components/schemas/controllers.EventResponse",
"type": "object",
"properties": {
"away": {
"type": "string"
},
"awayId": {
"type": "integer"
},
"bookmakerIds": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"bookmakers": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/$defs/dto.MultiMarketDto"
}
}
},
"date": {
"type": "string"
},
"home": {
"type": "string"
},
"homeId": {
"type": "integer"
},
"id": {
"type": "integer"
},
"league": {
"$ref": "#/$defs/controllers.League"
},
"scores": {
"$ref": "#/$defs/dto.Score"
},
"sport": {
"$ref": "#/$defs/controllers.Sport"
},
"status": {
"description": "Whether the match is under way: pending, live, settled or cancelled. Can read live before the listed start, or while /events still lists the event as pending. A pending event never carries in-play prices.",
"type": "string"
},
"urls": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"$defs": {
"controllers.League": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
}
},
"controllers.Sport": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
}
},
"dto.MultiMarketDto": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"odds": {
"type": "array",
"items": {
"$ref": "#/$defs/dto.Odds"
}
},
"updatedAt": {
"type": "string"
}
}
},
"dto.Odds": {
"type": "object",
"properties": {
"12": {
"type": "string"
},
"1X": {
"description": "Specialty market fields\nDouble Chance: 1X (home or draw), 12 (home or away), X2 (draw or away)",
"type": "string"
},
"X2": {
"type": "string"
},
"away": {
"type": "string"
},
"awayLink": {
"type": "string"
},
"depthAway": {
"type": "string"
},
"depthDraw": {
"type": "string"
},
"depthHome": {
"type": "string"
},
"depthLayAway": {
"type": "string"
},
"depthLayDraw": {
"type": "string"
},
"depthLayHome": {
"type": "string"
},
"depthLayNo": {
"description": "Available liquidity to lay no. Yes/no markets only (currently Both Teams To Score on exchange-style books).",
"type": "string"
},
"depthLayOver": {
"description": "Available liquidity to lay over. On yes/no markets this repeats depthLayYes, kept for compatibility.",
"type": "string"
},
"depthLayUnder": {
"description": "Available liquidity to lay under. On yes/no markets this repeats depthLayNo, kept for compatibility.",
"type": "string"
},
"depthLayYes": {
"description": "Available liquidity to lay yes. Yes/no markets only (currently Both Teams To Score on exchange-style books).",
"type": "string"
},
"depthNo": {
"description": "Available liquidity to back no. Yes/no markets only (currently Both Teams To Score on exchange-style books).",
"type": "string"
},
"depthOver": {
"description": "Available liquidity to back over. On yes/no markets this repeats depthYes, kept for compatibility.",
"type": "string"
},
"depthUnder": {
"description": "Available liquidity to back under. On yes/no markets this repeats depthNo, kept for compatibility.",
"type": "string"
},
"depthYes": {
"description": "Available liquidity to back yes. Yes/no markets only (currently Both Teams To Score on exchange-style books).",
"type": "string"
},
"draw": {
"type": "string"
},
"drawLink": {
"type": "string"
},
"even": {
"type": "string"
},
"exactly": {
"description": "Three-way corner lines only (Corners, Alternative Corners, 1st Half Corners): price for the count landing exactly on hdp. When present, Over and Under both lose on that number.",
"type": "string"
},
"hdp": {
"type": "number"
},
"home": {
"type": "string"
},
"homeLink": {
"type": "string"
},
"label": {
"type": "string"
},
"layAway": {
"type": "string"
},
"layDraw": {
"type": "string"
},
"layHome": {
"type": "string"
},
"layNo": {
"type": "string"
},
"layOver": {
"type": "string"
},
"layUnder": {
"type": "string"
},
"layYes": {
"type": "string"
},
"max": {
"type": "integer"
},
"neither": {
"description": "Corners Race: neither team reaches the target",
"type": "string"
},
"no": {
"type": "string"
},
"none": {
"description": "First Team To Score: none option",
"type": "string"
},
"odd": {
"description": "Odd/Even market",
"type": "string"
},
"odds": {
"description": "Labeled markets (Half Time / Full Time, Correct Score) - single odds value per outcome",
"type": "string"
},
"over": {
"type": "string"
},
"under": {
"type": "string"
},
"yes": {
"type": "string"
}
}
},
"dto.PeriodScore": {
"type": "object",
"properties": {
"away": {
"type": "integer"
},
"home": {
"type": "integer"
},
"overs": {
"allOf": [
{
"$ref": "#/$defs/dto.SideFloats"
}
],
"description": "Cricket only. Overs bowled by each side in this innings."
},
"wickets": {
"allOf": [
{
"$ref": "#/$defs/dto.SideInts"
}
],
"description": "Cricket only. Wickets lost by each side in this innings."
}
}
},
"dto.Score": {
"type": "object",
"properties": {
"away": {
"type": "integer"
},
"home": {
"description": "Headline result: includes overtime, never a penalty shootout.",
"type": "integer"
},
"periods": {
"description": "Keyed p1..pN (that period only), ft, ot and ap (running totals after regulation, overtime and a penalty shootout), currentgame, mapN, inningN. See https://docs.odds-api.io/guides/live-events#period-scores",
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/dto.PeriodScore"
}
}
}
},
"dto.SideFloats": {
"type": "object",
"description": "Home/away pair that can be fractional. Cricket overs use cricket notation: 19.3 means nineteen overs and three balls.",
"properties": {
"away": {
"type": "number"
},
"home": {
"type": "number"
}
}
},
"dto.SideInts": {
"type": "object",
"description": "Home/away pair of whole numbers (cricket wickets).",
"properties": {
"away": {
"type": "integer"
},
"home": {
"type": "integer"
}
}
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/odds-api-io-controllers-event-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.