Your open position in one market, with its orders, newest first. Use it when you know the market (the market_id you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as Get a position.
Only an open position is returned: a market you hold nothing in, or one whose position is closed, is a 404; read closed positions from List positions. The orders are every order on the position that was not cancelled, so a still-pending order can appear.
Your API key id. Keys are issued by Splash on request, never expire, and stay valid until Splash revokes them, which it does on request. See Authentication.
Echo of a limit query parameter when one was sent; absent otherwise. It does not page orders.
Example:
50
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Splash API","description":"Reference for the Splash prediction markets API.","colors":{"primary":"#00938A","light":"#4BEBE2","dark":"#00938A"},"logo":{"light":"https://mintcdn.com/splashsports/kcAVKCSKVe9QsybE/images/Black.png?fit=max\u0026auto=format\u0026n=kcAVKCSKVe9QsybE\u0026q=85\u0026s=e3ebef52faf215906edfadd8cb6b8f6c","dark":"https://mintcdn.com/splashsports/kcAVKCSKVe9QsybE/images/White.png?fit=max\u0026auto=format\u0026n=kcAVKCSKVe9QsybE\u0026q=85\u0026s=a8584598d170913784d340dade069923","href":"https://app.splashsports.com"},"favicon":{"light":"https://mintcdn.com/splashsports/1BB4AfLu_rKwvYf6/images/whale.png?fit=max\u0026auto=format\u0026n=1BB4AfLu_rKwvYf6\u0026q=85\u0026s=b75628cc9f5c8118e0b5ba38db00eed9","dark":"https://mintcdn.com/splashsports/1BB4AfLu_rKwvYf6/images/whale.png?fit=max\u0026auto=format\u0026n=1BB4AfLu_rKwvYf6\u0026q=85\u0026s=b75628cc9f5c8118e0b5ba38db00eed9"},"api":{"playground":{"display":"interactive"},"examples":{"languages":["curl","python","javascript","typescript","go"]}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"splashsports","hasAudioNarration":false,"actualSubdomain":"splashsports","customDomains":["docs.splashsports.com"],"gitSource":{"type":"github","owner":"betterpool","repo":"splash-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6ae8d2a45882bf25ccb849ef"},"chroma":{"latestBuiltDeploymentHistoryId":"6ae960ce8ff06975e05bdd21","collectionId":"8376c49e-6882-4070-be1c-ae3b565e9adc","liveDeploymentHistoryId":"6ae960ce8ff06975e05bdd21","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae96712b788bf0e78a62a70","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Predictions API","count":61},{"language":"default","tag":"Types","count":38},{"language":"default","tag":"Reference","count":16},{"language":"default","tag":"Getting started","count":7},{"language":"default","tag":"Positions","count":4},{"language":"default","tag":"Markets","count":3},{"language":"default","tag":"Orders","count":3},{"language":"default","tag":"Account","count":2},{"language":"default","tag":"Activity","count":1},{"language":"default","tag":"Discover","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"predictions/reference/positions/get-a-position-by-market","slug":"/predictions/reference/positions/get-a-position-by-market","pageMetadata":{"title":"Get a position by market","description":"Your open position in one market, with its orders, newest first. Use it when you know the market (the `market_id` you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as [Get a position](/predictions/reference/positions/get-a-position).\n\nOnly an **open** position is returned: a market you hold nothing in, or one whose position is closed, is a `404`; read closed positions from [List positions](/predictions/reference/positions/list-positions). The orders are every order on the position that was not cancelled, so a still-pending order can appear.","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /positions/market/{market_id}","href":"/predictions/reference/positions/get-a-position-by-market","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Your open position in one market, with its orders, newest first. Use it when you know the market (the \", _jsx(_components.code, {\n children: \"market_id\"\n }), \" you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as \", _jsx(_components.a, {\n href: \"/predictions/reference/positions/get-a-position\",\n children: \"Get a position\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Only an \", _jsx(_components.strong, {\n children: \"open\"\n }), \" position is returned: a market you hold nothing in, or one whose position is closed, is a \", _jsx(_components.code, {\n children: \"404\"\n }), \"; read closed positions from \", _jsx(_components.a, {\n href: \"/predictions/reference/positions/list-positions\",\n children: \"List positions\"\n }), \". The orders are every order on the position that was not cancelled, so a still-pending order can appear.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get a position by market","description":"Your open position in one market, with its orders, newest first. Use it when you know the market (the `market_id` you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as [Get a position](/predictions/reference/positions/get-a-position).\n\nOnly an **open** position is returned: a market you hold nothing in, or one whose position is closed, is a `404`; read closed positions from [List positions](/predictions/reference/positions/list-positions). The orders are every order on the position that was not cancelled, so a still-pending order can appear.","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /positions/market/{market_id}","href":"/predictions/reference/positions/get-a-position-by-market","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Positions"],"operationId":"getPositionByMarket","summary":"Get a position by market","security":["d08cca05-6881-471f-aa24-a08dbd81cbf4"],"description":"Your open position in one market, with its orders, newest first. Use it when you know the market (the `market_id` you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as [Get a position](/predictions/reference/positions/get-a-position).\n\nOnly an **open** position is returned: a market you hold nothing in, or one whose position is closed, is a `404`; read closed positions from [List positions](/predictions/reference/positions/list-positions). The orders are every order on the position that was not cancelled, so a still-pending order can appear.","parameters":["381f25ac-6725-4453-9e45-ef51fbeeb834"],"responses":{"200":"f31fedd2-b535-4668-8212-1f151a3c48b5","401":"d353e695-07e0-4d55-84b0-a86c86f1a6b7","404":"0a5242fd-f16f-47e0-9bdd-ca014f154244","429":"df5d0198-95b1-455e-8761-f81998d538bf","500":"958f508a-f422-44a2-94de-382aaf9f1692","503":"e5a985d3-78c5-4430-bbd0-610e8135910b"},"x-codeSamples":[{"lang":"bash","label":"cURL","source":"KEY=\"your-key-id\"\nSECRET=\"your-secret\"\nMETHOD=\"GET\"\nURLPATH=\"/predictions-service/api/positions/market/pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412\"\nBODY=\"\"\n\nTS=$(( $(date +%s) * 1000 ))\nSIG=$(printf '%s' \"$TS$METHOD$URLPATH$BODY\" | openssl dgst -sha256 -hmac \"$SECRET\" -binary | base64)\n\ncurl -X \"$METHOD\" \"https://api.splashsports.com$URLPATH\" \\\n -H \"SPLASH-ACCESS-KEY: $KEY\" \\\n -H \"SPLASH-ACCESS-TIMESTAMP: $TS\" \\\n -H \"SPLASH-ACCESS-SIGNATURE: $SIG\""},{"lang":"python","label":"Python","source":"import base64, hashlib, hmac, json, time\nimport requests\n\nKEY = \"your-key-id\"\nSECRET = \"your-secret\"\nHOST = \"https://api.splashsports.com\"\n\n\ndef sign(secret, timestamp, method, path, body):\n message = (timestamp + method + path + body).encode(\"utf-8\")\n digest = hmac.new(secret.encode(\"utf-8\"), message, hashlib.sha256).digest()\n return base64.b64encode(digest).decode(\"ascii\")\n\n\ndef request(method, path, payload=None):\n body = json.dumps(payload, separators=(\",\", \":\")) if payload is not None else \"\"\n timestamp = str(int(time.time() * 1000))\n headers = {\n \"Content-Type\": \"application/json\",\n \"SPLASH-ACCESS-KEY\": KEY,\n \"SPLASH-ACCESS-TIMESTAMP\": timestamp,\n \"SPLASH-ACCESS-SIGNATURE\": sign(SECRET, timestamp, method, path, body),\n }\n return requests.request(method, HOST + path, headers=headers, data=body.encode(\"utf-8\"))\n\n\nresponse = request(\"GET\", \"/predictions-service/api/positions/market/pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412\")\nprint(response.status_code, response.json())"},{"lang":"typescript","label":"TypeScript","source":"import { createHmac } from \"node:crypto\";\n\nconst KEY = \"your-key-id\";\nconst SECRET = \"your-secret\";\nconst HOST = \"https://api.splashsports.com\";\n\nfunction sign(secret: string, timestamp: string, method: string, path: string, body: string): string {\n return createHmac(\"sha256\", secret).update(timestamp + method + path + body, \"utf8\").digest(\"base64\");\n}\n\nconst method = \"GET\";\nconst path = \"/predictions-service/api/positions/market/pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412\";\nconst body = \"\";\nconst timestamp = Date.now().toString();\n\nconst response = await fetch(HOST + path, {\n method,\n headers: {\n \"SPLASH-ACCESS-KEY\": KEY,\n \"SPLASH-ACCESS-TIMESTAMP\": timestamp,\n \"SPLASH-ACCESS-SIGNATURE\": sign(SECRET, timestamp, method, path, body),\n },\n});\nconsole.log(response.status, await response.json());"},{"lang":"go","label":"Go","source":"package main\n\nimport (\n\t\"bytes\"\n\t\"crypto/hmac\"\n\t\"crypto/sha256\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tkey = \"your-key-id\"\n\tsecret = \"your-secret\"\n\thost = \"https://api.splashsports.com\"\n)\n\nfunc sign(secret, timestamp, method, path string, body []byte) string {\n\tmac := hmac.New(sha256.New, []byte(secret))\n\tmac.Write([]byte(timestamp + method + path))\n\tmac.Write(body)\n\treturn base64.StdEncoding.EncodeToString(mac.Sum(nil))\n}\n\nfunc main() {\n\tmethod := \"GET\"\n\tpath := \"/predictions-service/api/positions/market/pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412\"\n\n\tvar body []byte // no body: the signature covers the empty string\n\ttimestamp := strconv.FormatInt(time.Now().UnixMilli(), 10)\n\n\treq, err := http.NewRequest(method, host+path, bytes.NewReader(body))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treq.Header.Set(\"SPLASH-ACCESS-KEY\", key)\n\treq.Header.Set(\"SPLASH-ACCESS-TIMESTAMP\", timestamp)\n\treq.Header.Set(\"SPLASH-ACCESS-SIGNATURE\", sign(secret, timestamp, method, path, body))\n\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\tout, _ := io.ReadAll(resp.Body)\n\tfmt.Println(resp.StatusCode, string(out))\n}"}],"method":"get","type":"path","servers":["d7d3b42f-0ca4-43cd-8663-0e65fcf09fe8"],"path":"/positions/market/{market_id}","baseUrlOptions":["https://api.splashsports.com/predictions-service/api"],"title":"Get a position by market","codeSamples":[{"label":"cURL","lang":"bash","source":"KEY=\"your-key-id\"\nSECRET=\"your-secret\"\nMETHOD=\"GET\"\nURLPATH=\"/predictions-service/api/positions/market/pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412\"\nBODY=\"\"\n\nTS=$(( $(date +%s) * 1000 ))\nSIG=$(printf '%s' \"$TS$METHOD$URLPATH$BODY\" | openssl dgst -sha256 -hmac \"$SECRET\" -binary | base64)\n\ncurl -X \"$METHOD\" \"https://api.splashsports.com$URLPATH\" \\\n -H \"SPLASH-ACCESS-KEY: $KEY\" \\\n -H \"SPLASH-ACCESS-TIMESTAMP: $TS\" \\\n -H \"SPLASH-ACCESS-SIGNATURE: $SIG\""},{"label":"Python","lang":"python","source":"import base64, hashlib, hmac, json, time\nimport requests\n\nKEY = \"your-key-id\"\nSECRET = \"your-secret\"\nHOST = \"https://api.splashsports.com\"\n\n\ndef sign(secret, timestamp, method, path, body):\n message = (timestamp + method + path + body).encode(\"utf-8\")\n digest = hmac.new(secret.encode(\"utf-8\"), message, hashlib.sha256).digest()\n return base64.b64encode(digest).decode(\"ascii\")\n\n\ndef request(method, path, payload=None):\n body = json.dumps(payload, separators=(\",\", \":\")) if payload is not None else \"\"\n timestamp = str(int(time.time() * 1000))\n headers = {\n \"Content-Type\": \"application/json\",\n \"SPLASH-ACCESS-KEY\": KEY,\n \"SPLASH-ACCESS-TIMESTAMP\": timestamp,\n \"SPLASH-ACCESS-SIGNATURE\": sign(SECRET, timestamp, method, path, body),\n }\n return requests.request(method, HOST + path, headers=headers, data=body.encode(\"utf-8\"))\n\n\nresponse = request(\"GET\", \"/predictions-service/api/positions/market/pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412\")\nprint(response.status_code, response.json())"},{"label":"TypeScript","lang":"typescript","source":"import { createHmac } from \"node:crypto\";\n\nconst KEY = \"your-key-id\";\nconst SECRET = \"your-secret\";\nconst HOST = \"https://api.splashsports.com\";\n\nfunction sign(secret: string, timestamp: string, method: string, path: string, body: string): string {\n return createHmac(\"sha256\", secret).update(timestamp + method + path + body, \"utf8\").digest(\"base64\");\n}\n\nconst method = \"GET\";\nconst path = \"/predictions-service/api/positions/market/pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412\";\nconst body = \"\";\nconst timestamp = Date.now().toString();\n\nconst response = await fetch(HOST + path, {\n method,\n headers: {\n \"SPLASH-ACCESS-KEY\": KEY,\n \"SPLASH-ACCESS-TIMESTAMP\": timestamp,\n \"SPLASH-ACCESS-SIGNATURE\": sign(SECRET, timestamp, method, path, body),\n },\n});\nconsole.log(response.status, await response.json());"},{"label":"Go","lang":"go","source":"package main\n\nimport (\n\t\"bytes\"\n\t\"crypto/hmac\"\n\t\"crypto/sha256\"\n\t\"encoding/base64\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"strconv\"\n\t\"time\"\n)\n\nconst (\n\tkey = \"your-key-id\"\n\tsecret = \"your-secret\"\n\thost = \"https://api.splashsports.com\"\n)\n\nfunc sign(secret, timestamp, method, path string, body []byte) string {\n\tmac := hmac.New(sha256.New, []byte(secret))\n\tmac.Write([]byte(timestamp + method + path))\n\tmac.Write(body)\n\treturn base64.StdEncoding.EncodeToString(mac.Sum(nil))\n}\n\nfunc main() {\n\tmethod := \"GET\"\n\tpath := \"/predictions-service/api/positions/market/pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412\"\n\n\tvar body []byte // no body: the signature covers the empty string\n\ttimestamp := strconv.FormatInt(time.Now().UnixMilli(), 10)\n\n\treq, err := http.NewRequest(method, host+path, bytes.NewReader(body))\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treq.Header.Set(\"SPLASH-ACCESS-KEY\", key)\n\treq.Header.Set(\"SPLASH-ACCESS-TIMESTAMP\", timestamp)\n\treq.Header.Set(\"SPLASH-ACCESS-SIGNATURE\", sign(secret, timestamp, method, path, body))\n\n\tresp, err := http.DefaultClient.Do(req)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tdefer resp.Body.Close()\n\tout, _ := io.ReadAll(resp.Body)\n\tfmt.Println(resp.StatusCode, string(out))\n}"}],"requestExampleLanguages":["bash","python","javascript","typescript","go"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"381f25ac-6725-4453-9e45-ef51fbeeb834":{"name":"market_id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"The market's `id` (prefix `pm_`), the same value you sent as `market_id` when ordering.","uniqueKey":"","typeLabel":"string"},"description":"The market's `id` (prefix `pm_`), the same value you sent as `market_id` when ordering.","example":"pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412"}},"responses":{"f31fedd2-b535-4668-8212-1f151a3c48b5":{"description":"Your open position in the market, and its orders, newest first.","content":{"application/json":{"schema":{"type":"object","title":"PositionResponse","required":["status","position"],"properties":{"status":{"type":"string","const":"success","description":"Always `success` on a 200.","example":"success","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"position":{"type":"object","title":"PositionDetail","description":"The position and its orders.","required":["id","market_id","realized_pnl","created_at","updated_at","status","side","price","cost","quantity","order_count","market","cost_plus_fees","total_fees","closed_cost","closed_cost_plus_fees","closed_quantity","total_proceeds","orders"],"properties":{"id":{"type":"string","description":"The position id (prefix `pos_`). One position per market: a market you re-enter after closing reuses it.","example":"pos_6aedec66d4a9e2c7f1b05d38a6e2c9b1","isRequired":true,"uniqueKey":"position.id","typeLabel":"string"},"market_id":{"type":"string","description":"The market the position is in.","example":"pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412","isRequired":true,"uniqueKey":"position.market_id","typeLabel":"string"},"realized_pnl":{"type":"number","description":"Profit or loss locked in, in dollars after all fees, rounded to cents: on contracts sold, proceeds minus cost; once the market settles, the payout plus sale proceeds minus every cost and fee.","example":0.58,"isRequired":true,"uniqueKey":"position.realized_pnl","typeLabel":"number"},"created_at":{"type":"integer","format":"int64","description":"When the position was opened. Epoch milliseconds.","example":1793977446412,"isRequired":true,"uniqueKey":"position.created_at","typeLabel":"integer\u003cint64>"},"updated_at":{"type":"integer","format":"int64","description":"When the position last changed. Epoch milliseconds.","example":1794166871236,"isRequired":true,"uniqueKey":"position.updated_at","typeLabel":"integer\u003cint64>"},"status":{"type":"string","enum":["open","closed"],"title":"PositionStatus","description":"`open` while you hold contracts; `closed` once you hold none. See [Position statuses](/predictions/enums#position-statuses-status-on-a-position).","example":"closed","isRequired":true,"uniqueKey":"position.status","typeLabel":"enum\u003cstring>"},"side":{"type":"string","enum":["yes","no"],"title":"OrderSide","description":"The side you hold: `yes` or `no`. When nothing is open, the side of the first order. See [Order sides](/predictions/enums#order-sides-splash_side-and-side).","example":"yes","isRequired":true,"uniqueKey":"position.side","typeLabel":"enum\u003cstring>"},"price":{"type":"number","description":"Average price paid per open contract including fees, in dollars rounded to cents. 0 when nothing is open. Rounded, so it does not multiply back out to `cost_plus_fees`; read the dollar fields for amounts.","example":0.6,"isRequired":true,"uniqueKey":"position.price","typeLabel":"number"},"cost":{"type":"number","description":"Cost of the open contracts excluding fees, in dollars rounded to cents. 0 when nothing is open.","example":5.85,"isRequired":true,"uniqueKey":"position.cost","typeLabel":"number"},"quantity":{"type":"integer","description":"Contracts held now. 0 on a closed position.","example":10,"isRequired":true,"uniqueKey":"position.quantity","typeLabel":"integer"},"order_count":{"type":"integer","description":"The number of buy orders in `orders`. From `GET /positions/{id}` that is the executed buys; from `GET /positions/market/{market_id}`, whose `orders` include pending orders, a buy still pending is counted too. Sells are not counted.","example":1,"isRequired":true,"uniqueKey":"position.order_count","typeLabel":"integer"},"market":{"title":"Market","type":"object","description":"The market as it stands now, with `live_stat` on a player prop.","required":["id","provider_ticker","title","sub_category","type","price_yes","price_no","volume","liquidity","yes_liquidity","no_liquidity","status","updated_at","rules","market_group_id","event_start","yes_line_display","no_line_display"],"properties":{"id":{"type":"string","description":"The market id (prefix `pm_`). This is the instrument you trade, sent as `market_id` on `POST /trading/orders`, and the id to follow for price updates.","example":"pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412","isRequired":true,"uniqueKey":"position.market.id","typeLabel":"string"},"provider_ticker":{"type":"string","description":"The market's ticker on the exchange where it trades, in the exchange's own format. It identifies the market on the exchange and stays the same for the life of the market, so use it to match this market against the exchange's own data; to trade, use `id`. Always present.","example":"aec-nfl-kc-buf-2026-11-08","isRequired":true,"uniqueKey":"position.market.provider_ticker","typeLabel":"string"},"title":{"type":"string","description":"The exchange provider's title for the market, usually the YES side as a question. Display text that can change; never parse it or key on it.","example":"Kansas City Chiefs to win the game?","isRequired":true,"uniqueKey":"position.market.title","typeLabel":"string"},"sub_category":{"type":"string","description":"The league. See [Leagues](/predictions/enums#leagues-sub_category).","enum":["nfl","ncaaf","nba","wnba","ncaab","mlb","nhl","epl","mls","pga","wc"],"title":"SubCategoryId","example":"nfl","isRequired":true,"uniqueKey":"position.market.sub_category","typeLabel":"enum\u003cstring>"},"price_yes":{"type":"object","description":"What one YES contract costs right now: the best YES ask in the book Splash holds, in every display form. A YES contract pays $1 if the market resolves YES. `price_yes` and `price_no` are both asks, so their `numeric_price` values usually sum to a little more than 1; the excess is the spread. Reads 0 when nobody is offering YES, and while quotes are suspended during an exchange outage.","required":["american","decimal","percentage","price","numeric_price"],"properties":{"american":{"type":"string","description":"American odds for the price, rounded to a whole number, with a sign: `-144` for a favourite, `+138` for an underdog. `-10000` when the price is 0.","example":"-144","isRequired":true,"uniqueKey":"position.market.price_yes.american","typeLabel":"string"},"decimal":{"type":"string","description":"Decimal odds, `1 / numeric_price` to 2 places, with an `x` suffix: `1.69x`. `0x` when the price is 0.","example":"1.69x","isRequired":true,"uniqueKey":"position.market.price_yes.decimal","typeLabel":"string"},"percentage":{"type":"string","description":"The implied probability, `numeric_price` as a whole percentage: `59%`.","example":"59%","isRequired":true,"uniqueKey":"position.market.price_yes.percentage","typeLabel":"string"},"price":{"type":"string","description":"The per-contract price in dollars, rounded to cents and formatted with a dollar sign: `$0.59`.","example":"$0.59","isRequired":true,"uniqueKey":"position.market.price_yes.price","typeLabel":"string"},"numeric_price":{"type":"number","description":"The per-contract price in dollars as a number, up to 4 decimal places (the exchange quotes in tenths of a cent), capped at 0.99. 0 when nobody is offering this side. Use this field for arithmetic; the strings are for display.","example":0.59,"isRequired":true,"uniqueKey":"position.market.price_yes.numeric_price","typeLabel":"number"}},"title":"MarketPrice","example":{"american":"-144","decimal":"1.69x","percentage":"59%","price":"$0.59","numeric_price":0.59},"isRequired":true,"uniqueKey":"position.market.price_yes","typeLabel":"MarketPrice · object"},"price_no":{"type":"object","description":"What one NO contract costs right now: the best NO ask, in every display form. A NO contract pays $1 if the market resolves NO. Reads 0 when nobody is offering NO, and during an exchange outage.","required":["american","decimal","percentage","price","numeric_price"],"properties":{"american":{"type":"string","description":"American odds for the price, rounded to a whole number, with a sign: `-144` for a favourite, `+138` for an underdog. `-10000` when the price is 0.","example":"-144","isRequired":true,"uniqueKey":"position.market.price_no.american","typeLabel":"string"},"decimal":{"type":"string","description":"Decimal odds, `1 / numeric_price` to 2 places, with an `x` suffix: `1.69x`. `0x` when the price is 0.","example":"1.69x","isRequired":true,"uniqueKey":"position.market.price_no.decimal","typeLabel":"string"},"percentage":{"type":"string","description":"The implied probability, `numeric_price` as a whole percentage: `59%`.","example":"59%","isRequired":true,"uniqueKey":"position.market.price_no.percentage","typeLabel":"string"},"price":{"type":"string","description":"The per-contract price in dollars, rounded to cents and formatted with a dollar sign: `$0.59`.","example":"$0.59","isRequired":true,"uniqueKey":"position.market.price_no.price","typeLabel":"string"},"numeric_price":{"type":"number","description":"The per-contract price in dollars as a number, up to 4 decimal places (the exchange quotes in tenths of a cent), capped at 0.99. 0 when nobody is offering this side. Use this field for arithmetic; the strings are for display.","example":0.59,"isRequired":true,"uniqueKey":"position.market.price_no.numeric_price","typeLabel":"number"}},"title":"MarketPrice","example":{"american":"-144","decimal":"1.69x","percentage":"59%","price":"$0.59","numeric_price":0.59},"isRequired":true,"uniqueKey":"position.market.price_no","typeLabel":"MarketPrice · object"},"volume":{"type":"number","description":"Dollars traded on the exchange in this market, rounded to cents. It refreshes with order book updates rather than on every trade, so it can trail the latest trade by a few seconds.","example":184532.17,"isRequired":true,"uniqueKey":"position.market.volume","typeLabel":"number"},"liquidity":{"type":"number","description":"Dollars resting in the book Splash holds: each bid level's price times its quantity, summed over the YES and NO ladders and rounded to cents. A floor, since the feed carries at most ten levels a side. 0 whenever `orderbook` is absent.","example":9266.25,"isRequired":true,"uniqueKey":"position.market.liquidity","typeLabel":"number"},"yes_liquidity":{"type":"number","description":"Dollars of YES you could buy right now: the YES ask depth valued at the ask prices, rounded to cents. 0 means nobody is offering YES, so treat the YES side as closed. It is not a share of `liquidity`; buyable depth and resting depth are different measures and do not add up.","example":5378.8,"isRequired":true,"uniqueKey":"position.market.yes_liquidity","typeLabel":"number"},"no_liquidity":{"type":"number","description":"Dollars of NO you could buy right now: the NO ask depth valued at the ask prices, rounded to cents. 0 means nobody is offering NO.","example":4334.95,"isRequired":true,"uniqueKey":"position.market.no_liquidity","typeLabel":"number"},"status":{"type":"string","description":"`active` is tradeable. `expired` has stopped trading and has not settled. `settled` has resolved and carries `result`. See [Market statuses](/predictions/enums#market-statuses-status).","enum":["active","expired","settled"],"title":"MarketStatus","example":"active","isRequired":true,"uniqueKey":"position.market.status","typeLabel":"enum\u003cstring>"},"updated_at":{"type":"integer","format":"int64","description":"When Splash last refreshed this market, from an order book or status update. Epoch milliseconds.","example":1793977442118,"isRequired":true,"uniqueKey":"position.market.updated_at","typeLabel":"integer\u003cint64>"},"rules":{"type":"string","description":"The resolution rules the exchange provider publishes for this market, as plain text. They decide `result`.","example":"This market resolves to \"Yes\" if the Kansas City Chiefs win their game against the Buffalo Bills scheduled for November 8, 2026. It resolves to \"No\" if the Buffalo Bills win. If the game ends in a tie, is canceled, or is postponed past November 15, 2026, the market resolves 50-50.","isRequired":true,"uniqueKey":"position.market.rules","typeLabel":"string"},"market_group_id":{"type":"string","description":"The market group this market belongs to; `GET /prediction_markets/{id}` returns the whole group.","example":"pmgm_6ae1e3c0a3f19c0d7e2b4c58e61f9d02","isRequired":true,"uniqueKey":"position.market.market_group_id","typeLabel":"string"},"type":{"type":"string","enum":["spread","total","moneyline","future_team_champion","player_prop"],"description":"Which shape this market is, and so which fields below are present: `spread`, `total`, `moneyline`, `future_team_champion` or `player_prop`. See [Market types](/predictions/enums#market-types-type-on-a-market).","example":"moneyline","isRequired":true,"uniqueKey":"position.market.type","typeLabel":"enum\u003cstring>"},"event_start":{"type":"integer","format":"int64","description":"Scheduled start of the game, epoch milliseconds. On a future, the date the exchange provider gives the title event.","example":1794160800000,"isRequired":true,"uniqueKey":"position.market.event_start","typeLabel":"integer\u003cint64>"},"yes_line_display":{"type":"string","description":"The YES outcome as display text: `-2.5` (spread), `O 47.5` (total), `275+` (prop rung), `Yes` (future, pool leg). Absent on a moneyline.","example":"O 47.5","isRequired":true,"uniqueKey":"position.market.yes_line_display","typeLabel":"string"},"no_line_display":{"type":"string","description":"The NO outcome as display text: `+2.5`, `U 47.5`, `Under 275`, `No`. Absent on a moneyline.","example":"U 47.5","isRequired":true,"uniqueKey":"position.market.no_line_display","typeLabel":"string"},"orderbook":{"type":"object","description":"Splash's copy of the exchange provider's order book for this market, at most ten levels a side. Absent when the book is empty and while quotes are suspended during an exchange outage.","required":["bids","asks"],"properties":{"bids":{"title":"OrderbookSide","type":"object","description":"Bids: the YES bids and the NO bids, each ordered by price ascending, so the best bid is last.","required":["yes","no"],"properties":{"yes":{"type":"array","items":{"type":"object","description":"One level of the order book.","required":["p","q"],"properties":{"p":{"type":"number","description":"Price per contract in dollars, up to 4 decimal places.","example":0.58,"isRequired":true,"uniqueKey":"position.market.orderbook.bids.yes.items.[INDEX].p","typeLabel":"number"},"q":{"type":"number","description":"Contracts resting at that price. Can be fractional.","example":2650,"isRequired":true,"uniqueKey":"position.market.orderbook.bids.yes.items.[INDEX].q","typeLabel":"number"}},"title":"PriceLevel","example":{"q":2650,"p":0.58},"uniqueKey":"position.market.orderbook.bids.yes.items.[INDEX]","typeLabel":"PriceLevel · object"},"description":"Levels for the YES contract, price ascending.","isRequired":true,"uniqueKey":"position.market.orderbook.bids.yes","typeLabel":"PriceLevel · object[]"},"no":{"type":"array","items":{"type":"object","description":"One level of the order book.","required":["p","q"],"properties":{"p":{"type":"number","description":"Price per contract in dollars, up to 4 decimal places.","example":0.58,"isRequired":true,"uniqueKey":"position.market.orderbook.bids.no.items.[INDEX].p","typeLabel":"number"},"q":{"type":"number","description":"Contracts resting at that price. Can be fractional.","example":2650,"isRequired":true,"uniqueKey":"position.market.orderbook.bids.no.items.[INDEX].q","typeLabel":"number"}},"title":"PriceLevel","example":{"q":2650,"p":0.58},"uniqueKey":"position.market.orderbook.bids.no.items.[INDEX]","typeLabel":"PriceLevel · object"},"description":"Levels for the NO contract, price ascending.","isRequired":true,"uniqueKey":"position.market.orderbook.bids.no","typeLabel":"PriceLevel · object[]"}},"example":{"yes":[{"q":4210,"p":0.56},{"q":3185,"p":0.57},{"q":2650,"p":0.58}],"no":[{"q":3920,"p":0.39},{"q":2875,"p":0.4},{"q":2140,"p":0.41}]},"isRequired":true,"uniqueKey":"position.market.orderbook.bids","typeLabel":"OrderbookSide · object"},"asks":{"title":"OrderbookSide","type":"object","description":"Asks: what you can buy at. Each YES ask is the complement of a NO bid (a NO bid at 0.41 is a YES ask at 0.59) and each NO ask the complement of a YES bid, ordered by price ascending, so the best ask is first.","required":["yes","no"],"properties":{"yes":{"type":"array","items":{"type":"object","description":"One level of the order book.","required":["p","q"],"properties":{"p":{"type":"number","description":"Price per contract in dollars, up to 4 decimal places.","example":0.58,"isRequired":true,"uniqueKey":"position.market.orderbook.asks.yes.items.[INDEX].p","typeLabel":"number"},"q":{"type":"number","description":"Contracts resting at that price. Can be fractional.","example":2650,"isRequired":true,"uniqueKey":"position.market.orderbook.asks.yes.items.[INDEX].q","typeLabel":"number"}},"title":"PriceLevel","example":{"q":2650,"p":0.58},"uniqueKey":"position.market.orderbook.asks.yes.items.[INDEX]","typeLabel":"PriceLevel · object"},"description":"Levels for the YES contract, price ascending.","isRequired":true,"uniqueKey":"position.market.orderbook.asks.yes","typeLabel":"PriceLevel · object[]"},"no":{"type":"array","items":{"type":"object","description":"One level of the order book.","required":["p","q"],"properties":{"p":{"type":"number","description":"Price per contract in dollars, up to 4 decimal places.","example":0.58,"isRequired":true,"uniqueKey":"position.market.orderbook.asks.no.items.[INDEX].p","typeLabel":"number"},"q":{"type":"number","description":"Contracts resting at that price. Can be fractional.","example":2650,"isRequired":true,"uniqueKey":"position.market.orderbook.asks.no.items.[INDEX].q","typeLabel":"number"}},"title":"PriceLevel","example":{"q":2650,"p":0.58},"uniqueKey":"position.market.orderbook.asks.no.items.[INDEX]","typeLabel":"PriceLevel · object"},"description":"Levels for the NO contract, price ascending.","isRequired":true,"uniqueKey":"position.market.orderbook.asks.no","typeLabel":"PriceLevel · object[]"}},"example":{"yes":[{"q":4210,"p":0.56},{"q":3185,"p":0.57},{"q":2650,"p":0.58}],"no":[{"q":3920,"p":0.39},{"q":2875,"p":0.4},{"q":2140,"p":0.41}]},"isRequired":true,"uniqueKey":"position.market.orderbook.asks","typeLabel":"OrderbookSide · object"}},"title":"Orderbook","example":{"bids":{"yes":[{"q":4210,"p":0.56},{"q":3185,"p":0.57},{"q":2650,"p":0.58}],"no":[{"q":3920,"p":0.39},{"q":2875,"p":0.4},{"q":2140,"p":0.41}]},"asks":{"yes":[{"q":2140,"p":0.59},{"q":2875,"p":0.6},{"q":3920,"p":0.61}],"no":[{"q":2650,"p":0.42},{"q":3185,"p":0.43},{"q":4210,"p":0.44}]}},"uniqueKey":"position.market.orderbook","typeLabel":"Orderbook · object"},"last_price_yes":{"type":"number","description":"The most recent trade as a YES price per contract, up to 4 decimal places. Absent until the market has traded. Refreshes with order book updates, like `volume`.","example":0.585,"uniqueKey":"position.market.last_price_yes","typeLabel":"number"},"last_price_no":{"type":"number","description":"The same trade as a NO price: `1 - last_price_yes`, up to 4 decimal places. Present exactly when `last_price_yes` is.","example":0.415,"uniqueKey":"position.market.last_price_no","typeLabel":"number"},"result":{"type":"string","description":"How the market resolved: `yes`, `no`, or `scalar` (resolved to a value rather than a side). Absent until the market settles. See [Market results](/predictions/enums#market-results-result).","enum":["yes","no","scalar"],"title":"MarketResult","example":"yes","uniqueKey":"position.market.result","typeLabel":"enum\u003cstring>"},"event_id":{"type":"string","description":"All but `future_team_champion`: the game. Resolve it in `included.events`.","example":"4b1e9c2a-7d3f-4e5a-8b6c-9d0e1f2a3b4c","uniqueKey":"position.market.event_id","typeLabel":"string"},"line":{"type":"number","description":"Spread, total, and a player prop ladder rung (274.5 for \"275+\"). Absent on a moneyline, a future and a pool leg.","example":47.5,"uniqueKey":"position.market.line","typeLabel":"number"},"team_id":{"type":"string","description":"Spread, moneyline (not a `draw` leg), future and player prop: the team the market is about, or the player's team.","example":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","uniqueKey":"position.market.team_id","typeLabel":"string"},"yes_team_id":{"type":"string","description":"Spread, and `two_way` moneyline: the team whose side is YES.","example":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","uniqueKey":"position.market.yes_team_id","typeLabel":"string"},"no_team_id":{"type":"string","description":"Spread, and `two_way` moneyline: the team whose side is NO. Buying it is buying NO.","example":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","uniqueKey":"position.market.no_team_id","typeLabel":"string"},"moneyline_type":{"type":"string","enum":["two_way","one_way","draw"],"description":"Moneyline only: `two_way`, `one_way` or `draw`. See [Moneyline types](/predictions/enums#moneyline-types-moneyline_type).","example":"two_way","uniqueKey":"position.market.moneyline_type","typeLabel":"enum\u003cstring>"},"prop_type":{"type":"string","description":"Player prop only. See [Player prop types](/predictions/enums#player-prop-types-prop_type).","enum":["touchdowns","receiving_yards","receptions","rushing_yards","passing_yards","first_touchdown","team_first_touchdown","passing_touchdowns","fantasy_points_ppr","passing_completions","passing_attempts","rushing_attempts","scrimmage_yards","longest_reception","interceptions_thrown","most_passing_yards","points","rebounds","assists","points_rebounds_assists","three_points_made","steals","blocks","double_double","goals","goals_plus_assists","first_goal","hits","total_bases","hits_runs_rbis","home_runs","rbis","stolen_bases","strikeouts","outs","earned_runs_allowed","hits_allowed","walks_allowed"],"title":"PlayerPropType","example":"passing_yards","uniqueKey":"position.market.prop_type","typeLabel":"enum\u003cstring>"},"prop_type_display":{"type":"string","description":"Player prop only. Heading for `prop_type`, e.g. `Anytime TD`.","example":"Passing Yards","uniqueKey":"position.market.prop_type_display","typeLabel":"string"},"entity_id":{"type":"string","description":"Player prop only. The player; resolve it in `included.entities`.","example":"11cad59d-90dd-449c-a839-dddaba4fe16c","uniqueKey":"position.market.entity_id","typeLabel":"string"},"live_stat_key":{"type":"string","description":"Player prop only. Present when a live in-game stat streams for this prop type; its value is the key to read from the `player-activity-{event_id}-{entity_id}` channel payload.","example":"passing_yards","uniqueKey":"position.market.live_stat_key","typeLabel":"string"},"live_stat":{"type":"number","description":"Player prop only. The current value of `live_stat_key`: 0 until the player appears, the final figure once the game is over. Present exactly when `live_stat_key` is.","example":0,"uniqueKey":"position.market.live_stat","typeLabel":"number"},"alternate_lines":{"type":"array","description":"Player prop only. The whole ladder, this market included. Absent when there is a single line.","items":{"type":"object","description":"One rung of a ladder as the line picker shows it.","required":["id","provider_ticker","yes_line_display","no_line_display","price_yes","price_no","yes_liquidity","no_liquidity","status","rules"],"properties":{"id":{"type":"string","description":"The market id of this rung: the `market_id` to trade and the id to follow for price updates.","example":"pm_6aec4c985f2b7d0e6a3c81b4c9d5e159","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].id","typeLabel":"string"},"provider_ticker":{"type":"string","description":"The ticker of this line's market on the exchange where it trades, in the exchange's own format. Each line is its own market, so this identifies the line on the exchange and stays the same for the life of the market; use it to match the line against the exchange's own data, and `id` to trade it. The line the market leads with has the same `id` and ticker as the market. Always present.","example":"astatc-nfl-kc-buf-2026-11-08-passyds-patmah-gte300","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].provider_ticker","typeLabel":"string"},"yes_line_display":{"type":"string","description":"The YES outcome as display text, e.g. `300+`.","example":"300+","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].yes_line_display","typeLabel":"string"},"no_line_display":{"type":"string","description":"The NO outcome as display text, e.g. `Under 300`.","example":"Under 300","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].no_line_display","typeLabel":"string"},"price_yes":{"type":"object","description":"Best YES ask for this rung, in every display form.","required":["american","decimal","percentage","price","numeric_price"],"properties":{"american":{"type":"string","description":"American odds for the price, rounded to a whole number, with a sign: `-144` for a favourite, `+138` for an underdog. `-10000` when the price is 0.","example":"-144","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_yes.american","typeLabel":"string"},"decimal":{"type":"string","description":"Decimal odds, `1 / numeric_price` to 2 places, with an `x` suffix: `1.69x`. `0x` when the price is 0.","example":"1.69x","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_yes.decimal","typeLabel":"string"},"percentage":{"type":"string","description":"The implied probability, `numeric_price` as a whole percentage: `59%`.","example":"59%","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_yes.percentage","typeLabel":"string"},"price":{"type":"string","description":"The per-contract price in dollars, rounded to cents and formatted with a dollar sign: `$0.59`.","example":"$0.59","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_yes.price","typeLabel":"string"},"numeric_price":{"type":"number","description":"The per-contract price in dollars as a number, up to 4 decimal places (the exchange quotes in tenths of a cent), capped at 0.99. 0 when nobody is offering this side. Use this field for arithmetic; the strings are for display.","example":0.59,"isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_yes.numeric_price","typeLabel":"number"}},"title":"MarketPrice","example":{"american":"-144","decimal":"1.69x","percentage":"59%","price":"$0.59","numeric_price":0.59},"isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_yes","typeLabel":"MarketPrice · object"},"price_no":{"type":"object","description":"Best NO ask for this rung, in every display form.","required":["american","decimal","percentage","price","numeric_price"],"properties":{"american":{"type":"string","description":"American odds for the price, rounded to a whole number, with a sign: `-144` for a favourite, `+138` for an underdog. `-10000` when the price is 0.","example":"-144","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_no.american","typeLabel":"string"},"decimal":{"type":"string","description":"Decimal odds, `1 / numeric_price` to 2 places, with an `x` suffix: `1.69x`. `0x` when the price is 0.","example":"1.69x","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_no.decimal","typeLabel":"string"},"percentage":{"type":"string","description":"The implied probability, `numeric_price` as a whole percentage: `59%`.","example":"59%","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_no.percentage","typeLabel":"string"},"price":{"type":"string","description":"The per-contract price in dollars, rounded to cents and formatted with a dollar sign: `$0.59`.","example":"$0.59","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_no.price","typeLabel":"string"},"numeric_price":{"type":"number","description":"The per-contract price in dollars as a number, up to 4 decimal places (the exchange quotes in tenths of a cent), capped at 0.99. 0 when nobody is offering this side. Use this field for arithmetic; the strings are for display.","example":0.59,"isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_no.numeric_price","typeLabel":"number"}},"title":"MarketPrice","example":{"american":"-144","decimal":"1.69x","percentage":"59%","price":"$0.59","numeric_price":0.59},"isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].price_no","typeLabel":"MarketPrice · object"},"yes_liquidity":{"type":"number","description":"Dollars of YES buyable on this rung right now, rounded to cents. 0 means no YES offers.","example":529.1,"isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].yes_liquidity","typeLabel":"number"},"no_liquidity":{"type":"number","description":"Dollars of NO buyable on this rung right now, rounded to cents. 0 means no NO offers.","example":874,"isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].no_liquidity","typeLabel":"number"},"status":{"type":"string","description":"The rung's market status. See [Market statuses](/predictions/enums#market-statuses-status).","enum":["active","expired","settled"],"title":"MarketStatus","example":"active","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"rules":{"type":"string","description":"This rung's own resolution rules from the exchange provider.","example":"This market resolves to \"Yes\" if Patrick Mahomes records 300+ passing yards in the Kansas City Chiefs vs. Buffalo Bills game on November 8, 2026. If he does not play, it resolves to \"No\".","isRequired":true,"uniqueKey":"position.market.alternate_lines.items.[INDEX].rules","typeLabel":"string"},"line":{"type":"number","description":"The half-point strike: 299.5 for \"300+\". Absent on a pool leg.","example":299.5,"uniqueKey":"position.market.alternate_lines.items.[INDEX].line","typeLabel":"number"},"last_price_yes":{"type":"number","description":"Last trade on this rung as a YES price, up to 4 decimal places. Absent until it has traded.","example":0.285,"uniqueKey":"position.market.alternate_lines.items.[INDEX].last_price_yes","typeLabel":"number"},"last_price_no":{"type":"number","description":"`1 - last_price_yes`. Present exactly when `last_price_yes` is.","example":0.715,"uniqueKey":"position.market.alternate_lines.items.[INDEX].last_price_no","typeLabel":"number"},"result":{"type":"string","description":"How the rung resolved. Absent until it settles.","enum":["yes","no","scalar"],"title":"MarketResult","example":"no","uniqueKey":"position.market.alternate_lines.items.[INDEX].result","typeLabel":"enum\u003cstring>"}},"title":"PlayerPropLine","example":{"id":"pm_6aec4c985f2b7d0e6a3c81b4c9d5e159","provider_ticker":"astatc-nfl-kc-buf-2026-11-08-passyds-patmah-gte300","line":299.5,"yes_line_display":"300+","no_line_display":"Under 300","price_yes":{"american":"+245","decimal":"3.45x","percentage":"29%","price":"$0.29","numeric_price":0.29},"price_no":{"american":"-257","decimal":"1.39x","percentage":"72%","price":"$0.72","numeric_price":0.72},"last_price_yes":0.285,"last_price_no":0.715,"yes_liquidity":328.8,"no_liquidity":835,"status":"active","rules":"This market resolves to \"Yes\" if Patrick Mahomes records 300+ passing yards in the Kansas City Chiefs vs. Buffalo Bills game on November 8, 2026. If he does not play, it resolves to \"No\"."},"uniqueKey":"position.market.alternate_lines.items.[INDEX]","typeLabel":"PlayerPropLine · object"},"uniqueKey":"position.market.alternate_lines","typeLabel":"PlayerPropLine · object[]"}},"example":{"id":"pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412","provider_ticker":"aec-nfl-kc-buf-2026-11-08","title":"Kansas City Chiefs to win the game?","sub_category":"nfl","type":"moneyline","event_id":"4b1e9c2a-7d3f-4e5a-8b6c-9d0e1f2a3b4c","event_start":1794160800000,"moneyline_type":"two_way","team_id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","yes_team_id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","no_team_id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","price_yes":{"american":"-144","decimal":"1.69x","percentage":"59%","price":"$0.59","numeric_price":0.59},"price_no":{"american":"+138","decimal":"2.38x","percentage":"42%","price":"$0.42","numeric_price":0.42},"volume":184532.17,"liquidity":9266.25,"yes_liquidity":5378.8,"no_liquidity":4334.95,"last_price_yes":0.585,"last_price_no":0.415,"status":"active","updated_at":1793977442118,"rules":"This market resolves to \"Yes\" if the Kansas City Chiefs win their game against the Buffalo Bills scheduled for November 8, 2026. It resolves to \"No\" if the Buffalo Bills win. If the game ends in a tie, is canceled, or is postponed past November 15, 2026, the market resolves 50-50.","market_group_id":"pmgm_6ae1e3c0a3f19c0d7e2b4c58e61f9d02"},"isRequired":true,"uniqueKey":"position.market","typeLabel":"Market · object"},"cost_plus_fees":{"type":"number","description":"`cost` plus `total_fees`, rounded to cents. 0 when nothing is open.","example":5.97,"isRequired":true,"uniqueKey":"position.cost_plus_fees","typeLabel":"number"},"total_fees":{"type":"number","description":"Fees on all of the position's executed orders, buys and sells, in dollars rounded to cents.","example":0.12,"isRequired":true,"uniqueKey":"position.total_fees","typeLabel":"number"},"closed_cost":{"type":"number","description":"Cost of the contracts closed out (sold, or settled), excluding fees, in dollars rounded to cents.","example":5.85,"isRequired":true,"uniqueKey":"position.closed_cost","typeLabel":"number"},"closed_cost_plus_fees":{"type":"number","description":"`closed_cost` plus the fees paid when those contracts were bought, rounded to cents. Fees paid on the sale are not included.","example":5.97,"isRequired":true,"uniqueKey":"position.closed_cost_plus_fees","typeLabel":"number"},"closed_quantity":{"type":"integer","description":"Contracts closed out, by sale or settlement.","example":10,"isRequired":true,"uniqueKey":"position.closed_quantity","typeLabel":"integer"},"total_proceeds":{"type":"number","description":"Dollars you received: sale proceeds net of their fees, plus the settlement payout once the market settles. Rounded to cents.","example":6.55,"isRequired":true,"uniqueKey":"position.total_proceeds","typeLabel":"number"},"orders":{"type":"array","items":{"type":"object","title":"Order","description":"One order. Money fields are dollars; prices are per contract, between 0 and 1, with up to four decimal places. Timestamps are epoch milliseconds. Read the dollar fields for amounts; fills land on tenths of a cent, so a price times a quantity can differ from them by a cent.","required":["id","side","yes_price","no_price","quantity","status","fill_cost","updated_at","created_at","remaining_quantity","fill_quantity","fees","action","splash_action","proceeds","splash_side","trade_price","proceeds_minus_fees","fill_cost_plus_fees","request_id","time_in_force"],"properties":{"id":{"type":"string","description":"The order id (prefix `ord_`), as `order_id` was returned when you placed it.","example":"ord_6aedec658f3a61c2d94e07b5a1c6e2d9","isRequired":true,"uniqueKey":"position.orders.items.[INDEX].id","typeLabel":"string"},"side":{"type":"string","enum":["yes","no"],"title":"OrderSide","description":"The side as Splash routes the order to the exchange. Every order is recorded against the YES contract, so this is `yes`; read `splash_side` for the side you traded. See [Order sides](/predictions/enums#order-sides-splash_side-and-side).","example":"yes","isRequired":true,"uniqueKey":"position.orders.items.[INDEX].side","typeLabel":"enum\u003cstring>"},"yes_price":{"type":"number","description":"Price per contract in YES terms, up to 4 decimal places. Until the order fills it is your limit price expressed as a YES price; once it fills, the average fill price. Always `yes_price + no_price = 1`.","example":0.585,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].yes_price","typeLabel":"number"},"no_price":{"type":"number","description":"The same price in NO terms: `1 - yes_price`. On a NO buy this is what you paid per contract, before fees.","example":0.415,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].no_price","typeLabel":"number"},"quantity":{"type":"integer","description":"Contracts requested.","example":10,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].quantity","typeLabel":"integer"},"status":{"type":"string","enum":["pending","executed","cancelled","resting"],"title":"OrderStatus","description":"`pending` while queued or in flight, then `executed` (filled) or `cancelled` (not filled, or refused). A fill-or-kill order is never `resting`. See [Order statuses](/predictions/enums#order-statuses-status-on-an-order).","example":"executed","isRequired":true,"uniqueKey":"position.orders.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"fill_cost":{"type":"number","description":"Buys: dollars paid for the filled contracts, before fees, up to 4 decimal places. 0 on a sell and until the order fills.","example":5.85,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].fill_cost","typeLabel":"number"},"updated_at":{"type":"integer","format":"int64","description":"When the order last changed. Epoch milliseconds.","example":1793977446412,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].updated_at","typeLabel":"integer\u003cint64>"},"created_at":{"type":"integer","format":"int64","description":"When the order was recorded. Epoch milliseconds.","example":1793977445000,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].created_at","typeLabel":"integer\u003cint64>"},"remaining_quantity":{"type":"integer","description":"Contracts not filled. Equals `quantity` until the exchange reports on the order.","example":0,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].remaining_quantity","typeLabel":"integer"},"fill_quantity":{"type":"integer","description":"Contracts filled. 0 until the order fills; equal to `quantity` on an executed fill-or-kill order.","example":10,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].fill_quantity","typeLabel":"integer"},"fees":{"type":"number","description":"Total fees on the order, Splash's and the exchange provider's, in dollars rounded to cents. Charged on top of a buy and out of a sell's proceeds. Before the fill it holds only Splash's quoted fee.","example":0.12,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].fees","typeLabel":"number"},"action":{"type":"string","enum":["buy","sell"],"title":"OrderAction","description":"Buy or sell of the YES contract, as routed to the exchange: a YES buy or a NO close is `buy`, a NO buy or a YES close is `sell`. Read `splash_action` for what you did. See [Order actions](/predictions/enums#order-actions-splash_action-and-action).","example":"buy","isRequired":true,"uniqueKey":"position.orders.items.[INDEX].action","typeLabel":"enum\u003cstring>"},"splash_action":{"type":"string","enum":["buy","sell"],"title":"OrderAction","description":"What you did: `buy` opens or adds to a position, `sell` closes it. See [Order actions](/predictions/enums#order-actions-splash_action-and-action).","example":"buy","isRequired":true,"uniqueKey":"position.orders.items.[INDEX].splash_action","typeLabel":"enum\u003cstring>"},"proceeds":{"type":"number","description":"Sells: dollars received for the filled contracts, before fees, up to 4 decimal places. 0 on a buy and until the order fills.","example":0,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].proceeds","typeLabel":"number"},"splash_side":{"type":"string","enum":["yes","no"],"title":"OrderSide","description":"The side you traded: the side you bought on a buy, the side you sold on a sell. See [Order sides](/predictions/enums#order-sides-splash_side-and-side).","example":"yes","isRequired":true,"uniqueKey":"position.orders.items.[INDEX].splash_side","typeLabel":"enum\u003cstring>"},"trade_price":{"type":"number","description":"Your all-in price per contract, up to 4 decimal places: on a buy `(fill_cost + fees) / fill_quantity`, on a sell `(proceeds - fees) / fill_quantity`. 0 until the order fills.","example":0.597,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].trade_price","typeLabel":"number"},"proceeds_minus_fees":{"type":"number","description":"Sells: `proceeds - fees`, the dollars credited to you, rounded to cents. 0 on a buy.","example":0,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].proceeds_minus_fees","typeLabel":"number"},"fill_cost_plus_fees":{"type":"number","description":"Buys: `fill_cost + fees`, the dollars debited from you, rounded to cents. 0 on a sell.","example":5.97,"isRequired":true,"uniqueKey":"position.orders.items.[INDEX].fill_cost_plus_fees","typeLabel":"number"},"request_id":{"type":"string","description":"The `request_id` the order was placed with.","example":"3f1c2a9e-5b7d-4e0a-9c1d-8a6b2e4f7d10","isRequired":true,"uniqueKey":"position.orders.items.[INDEX].request_id","typeLabel":"string"},"time_in_force":{"type":"string","enum":["FOK","IOC"],"title":"TimeInForce","description":"`FOK` (fill or kill). Every order today is fill-or-kill. See [Time in force](/predictions/enums#time-in-force-time_in_force).","example":"FOK","isRequired":true,"uniqueKey":"position.orders.items.[INDEX].time_in_force","typeLabel":"enum\u003cstring>"},"executed_at":{"type":"integer","format":"int64","description":"When the order executed. Epoch milliseconds. Absent until it does.","example":1793977446412,"uniqueKey":"position.orders.items.[INDEX].executed_at","typeLabel":"integer\u003cint64>"}},"example":{"id":"ord_6aedec658f3a61c2d94e07b5a1c6e2d9","side":"yes","yes_price":0.585,"no_price":0.415,"quantity":10,"status":"executed","fill_cost":5.85,"updated_at":1793977446412,"created_at":1793977445000,"executed_at":1793977446412,"remaining_quantity":0,"fill_quantity":10,"fees":0.12,"action":"buy","splash_action":"buy","proceeds":0,"splash_side":"yes","trade_price":0.597,"proceeds_minus_fees":0,"fill_cost_plus_fees":5.97,"request_id":"3f1c2a9e-5b7d-4e0a-9c1d-8a6b2e4f7d10","time_in_force":"FOK"},"uniqueKey":"position.orders.items.[INDEX]","typeLabel":"Order · object"},"description":"The position's orders, newest first. From `GET /positions/{id}`, the orders that are neither pending nor cancelled. From `GET /positions/market/{market_id}`, every order that is not cancelled, so an order still pending appears.","isRequired":true,"uniqueKey":"position.orders","typeLabel":"Order · object[]"},"closed_at":{"type":"integer","format":"int64","description":"When the position closed. Epoch milliseconds. Absent while it has never closed, and cleared when a closed position reopens.","example":1794166871236,"uniqueKey":"position.closed_at","typeLabel":"integer\u003cint64>"},"closed_price":{"type":"number","description":"Average price per closed contract including the opening fees: `closed_cost_plus_fees / closed_quantity`, rounded to cents. Absent while nothing has closed.","example":0.6,"uniqueKey":"position.closed_price","typeLabel":"number"}},"example":{"id":"pos_6aedec66d4a9e2c7f1b05d38a6e2c9b1","market_id":"pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412","realized_pnl":0.58,"created_at":1793977446412,"updated_at":1794166871236,"status":"closed","side":"yes","price":0,"cost":0,"quantity":0,"order_count":1,"market":{"id":"pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412","provider_ticker":"aec-nfl-kc-buf-2026-11-08","title":"Kansas City Chiefs to win the game?","sub_category":"nfl","type":"moneyline","event_id":"4b1e9c2a-7d3f-4e5a-8b6c-9d0e1f2a3b4c","event_start":1794160800000,"moneyline_type":"two_way","team_id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","yes_team_id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","no_team_id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","price_yes":{"american":"-144","decimal":"1.69x","percentage":"59%","price":"$0.59","numeric_price":0.59},"price_no":{"american":"+138","decimal":"2.38x","percentage":"42%","price":"$0.42","numeric_price":0.42},"volume":184532.17,"liquidity":9266.25,"yes_liquidity":5378.8,"no_liquidity":4334.95,"last_price_yes":0.585,"last_price_no":0.415,"status":"active","updated_at":1793977442118,"rules":"This market resolves to \"Yes\" if the Kansas City Chiefs win their game against the Buffalo Bills scheduled for November 8, 2026. It resolves to \"No\" if the Buffalo Bills win. If the game ends in a tie, is canceled, or is postponed past November 15, 2026, the market resolves 50-50.","market_group_id":"pmgm_6ae1e3c0a3f19c0d7e2b4c58e61f9d02"},"cost_plus_fees":0,"total_fees":0.22,"closed_cost":5.85,"closed_cost_plus_fees":5.97,"closed_quantity":10,"closed_at":1794166871236,"closed_price":0.6,"total_proceeds":6.55,"orders":[{"id":"ord_6af0d056c50d27e8a6b19f34d0e8c3a1","side":"yes","yes_price":0.665,"no_price":0.335,"quantity":10,"status":"executed","fill_cost":0,"updated_at":1794166871236,"created_at":1794166870000,"executed_at":1794166871236,"remaining_quantity":0,"fill_quantity":10,"fees":0.1,"action":"sell","splash_action":"sell","proceeds":6.65,"splash_side":"yes","trade_price":0.655,"proceeds_minus_fees":6.55,"fill_cost_plus_fees":0,"request_id":"c47b19e2-0f6d-4b8a-a3e5-71d9f2c08a56","time_in_force":"FOK"},{"id":"ord_6aedec658f3a61c2d94e07b5a1c6e2d9","side":"yes","yes_price":0.585,"no_price":0.415,"quantity":10,"status":"executed","fill_cost":5.85,"updated_at":1793977446412,"created_at":1793977445000,"executed_at":1793977446412,"remaining_quantity":0,"fill_quantity":10,"fees":0.12,"action":"buy","splash_action":"buy","proceeds":0,"splash_side":"yes","trade_price":0.597,"proceeds_minus_fees":0,"fill_cost_plus_fees":5.97,"request_id":"3f1c2a9e-5b7d-4e0a-9c1d-8a6b2e4f7d10","time_in_force":"FOK"}]},"isRequired":true,"uniqueKey":"position","typeLabel":"PositionDetail · object"},"included":{"type":"object","description":"The game, teams, player and league the position's market references.","required":["events","teams","entities","sub_categories"],"properties":{"events":{"type":"array","items":{"type":"object","description":"A game (or a golf tournament) referenced by a market's `event_id`.","required":["id","name","league","start_date","status","state"],"properties":{"id":{"type":"string","description":"The game id: what a market's `event_id` refers to.","example":"4b1e9c2a-7d3f-4e5a-8b6c-9d0e1f2a3b4c","isRequired":true,"uniqueKey":"included.events.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","description":"Display name of the game or tournament.","example":"Kansas City Chiefs at Buffalo Bills","isRequired":true,"uniqueKey":"included.events.items.[INDEX].name","typeLabel":"string"},"league":{"type":"string","description":"The league. See [Leagues](/predictions/enums#leagues-sub_category).","enum":["nfl","ncaaf","nba","wnba","ncaab","mlb","nhl","epl","mls","pga","wc"],"title":"SubCategoryId","example":"nfl","isRequired":true,"uniqueKey":"included.events.items.[INDEX].league","typeLabel":"enum\u003cstring>"},"start_date":{"type":"integer","format":"int64","description":"Scheduled start, epoch milliseconds.","example":1794160800000,"isRequired":true,"uniqueKey":"included.events.items.[INDEX].start_date","typeLabel":"integer\u003cint64>"},"status":{"type":"string","enum":["SCHEDULED","IN_PROGRESS","FINISHED","FINALIZED","CANCELED"],"title":"GameStatus","description":"`SCHEDULED`, `IN_PROGRESS`, `FINISHED`, `FINALIZED` or `CANCELED`. See [Game status](/predictions/enums#game-status-status-on-a-game).","example":"SCHEDULED","isRequired":true,"uniqueKey":"included.events.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"state":{"type":"object","description":"Live state, shaped by `state.sport`.","required":["sport","league"],"properties":{"sport":{"type":"string","enum":["basketball","football","hockey","baseball","golf","soccer"],"description":"The sport, which decides the fields below: `football`, `basketball`, `hockey`, `baseball`, `soccer` or `golf`.","example":"football","isRequired":true,"uniqueKey":"included.events.items.[INDEX].state.sport","typeLabel":"enum\u003cstring>"},"league":{"type":"string","description":"The league. See [Leagues](/predictions/enums#leagues-sub_category).","enum":["nfl","ncaaf","nba","wnba","ncaab","mlb","nhl","epl","mls","pga","wc"],"title":"SubCategoryId","example":"nfl","isRequired":true,"uniqueKey":"included.events.items.[INDEX].state.league","typeLabel":"enum\u003cstring>"},"clock":{"type":"string","description":"Football, basketball, hockey and soccer: the game clock as display text.","example":"15:00","uniqueKey":"included.events.items.[INDEX].state.clock","typeLabel":"string"},"phase":{"type":"string","enum":["pregame","regulation","overtime","shootout"],"description":"Football, basketball and hockey: `pregame`, `regulation`, `overtime`, or for hockey `shootout`. See [Game phase](/predictions/enums#game-phase-state-phase).","example":"pregame","uniqueKey":"included.events.items.[INDEX].state.phase","typeLabel":"enum\u003cstring>"},"quarter":{"type":"integer","description":"Football and NBA/WNBA: the current quarter.","example":1,"uniqueKey":"included.events.items.[INDEX].state.quarter","typeLabel":"integer"},"half":{"type":"integer","description":"NCAAB only: the current half.","example":2,"uniqueKey":"included.events.items.[INDEX].state.half","typeLabel":"integer"},"period":{"type":"integer","description":"Hockey: the current period. Above 3 is overtime.","example":3,"uniqueKey":"included.events.items.[INDEX].state.period","typeLabel":"integer"},"balls":{"type":"integer","description":"Baseball: balls in the count.","example":2,"uniqueKey":"included.events.items.[INDEX].state.balls","typeLabel":"integer"},"strikes":{"type":"integer","description":"Baseball: strikes in the count.","example":1,"uniqueKey":"included.events.items.[INDEX].state.strikes","typeLabel":"integer"},"outs":{"type":"integer","description":"Baseball: outs in the half-inning.","example":1,"uniqueKey":"included.events.items.[INDEX].state.outs","typeLabel":"integer"},"current_inning":{"type":"integer","description":"Baseball: the inning in progress.","example":6,"uniqueKey":"included.events.items.[INDEX].state.current_inning","typeLabel":"integer"},"current_inning_phase":{"type":"string","enum":["top","bottom"],"description":"Baseball: `top` or `bottom` of `current_inning`.","example":"bottom","uniqueKey":"included.events.items.[INDEX].state.current_inning_phase","typeLabel":"enum\u003cstring>"},"last_inning":{"type":"integer","description":"Baseball: the last inning played.","example":5,"uniqueKey":"included.events.items.[INDEX].state.last_inning","typeLabel":"integer"},"last_inning_phase":{"type":"string","enum":["top","bottom"],"description":"Baseball: `top` or `bottom` of `last_inning`.","example":"bottom","uniqueKey":"included.events.items.[INDEX].state.last_inning_phase","typeLabel":"enum\u003cstring>"},"double_header":{"type":"boolean","description":"Baseball: whether the game is part of a doubleheader.","example":false,"uniqueKey":"included.events.items.[INDEX].state.double_header","typeLabel":"boolean"},"game_number":{"type":"integer","description":"Baseball: 1, or 2 for the second game of a doubleheader.","example":1,"uniqueKey":"included.events.items.[INDEX].state.game_number","typeLabel":"integer"},"home_score":{"type":"integer","description":"Soccer: home team goals.","example":1,"uniqueKey":"included.events.items.[INDEX].state.home_score","typeLabel":"integer"},"away_score":{"type":"integer","description":"Soccer: away team goals.","example":0,"uniqueKey":"included.events.items.[INDEX].state.away_score","typeLabel":"integer"},"match_status":{"type":"string","enum":["not_started","1st_half","2nd_half","1st_extra","2nd_extra","penalties","interrupted","halftime","extra_time_halftime","ended"],"description":"Soccer: the match status. See [Soccer match status](/predictions/enums#soccer-match-status-state-match_status).","example":"2nd_half","uniqueKey":"included.events.items.[INDEX].state.match_status","typeLabel":"enum\u003cstring>"},"home_penalties":{"type":"integer","description":"Soccer: home team goals in a penalty shootout. Absent unless there is one.","example":4,"uniqueKey":"included.events.items.[INDEX].state.home_penalties","typeLabel":"integer"},"away_penalties":{"type":"integer","description":"Soccer: away team goals in a penalty shootout. Absent unless there is one.","example":3,"uniqueKey":"included.events.items.[INDEX].state.away_penalties","typeLabel":"integer"},"rounds":{"type":"array","description":"Golf only: the tournament rounds and their status.","items":{"title":"GolfRound","type":"object","description":"One round of a golf tournament.","required":["number","status"],"properties":{"number":{"type":"integer","description":"Round number, from 1.","example":2,"isRequired":true,"uniqueKey":"included.events.items.[INDEX].state.rounds.items.[INDEX].number","typeLabel":"integer"},"status":{"type":"string","enum":["SCHEDULED","IN_PROGRESS","FINISHED","FINALIZED","CANCELED"],"title":"GameStatus","description":"The round's status, with the same values as a game's `status`.","example":"IN_PROGRESS","isRequired":true,"uniqueKey":"included.events.items.[INDEX].state.rounds.items.[INDEX].status","typeLabel":"enum\u003cstring>"}},"example":{"number":2,"status":"IN_PROGRESS"},"uniqueKey":"included.events.items.[INDEX].state.rounds.items.[INDEX]","typeLabel":"GolfRound · object"},"uniqueKey":"included.events.items.[INDEX].state.rounds","typeLabel":"GolfRound · object[]"},"weather":{"type":"object","required":["condition"],"properties":{"condition":{"type":"string","description":"Conditions at the venue as the game data feed describes them.","example":"Partly Cloudy","isRequired":true,"uniqueKey":"included.events.items.[INDEX].state.weather.condition","typeLabel":"string"},"humidity":{"type":"number","description":"Relative humidity, percent.","example":62,"uniqueKey":"included.events.items.[INDEX].state.weather.humidity","typeLabel":"number"},"temp":{"type":"number","description":"Temperature at the venue as the game data feed reports it.","example":41,"uniqueKey":"included.events.items.[INDEX].state.weather.temp","typeLabel":"number"},"wind_direction":{"type":"string","description":"Wind direction as the game data feed reports it.","example":"WNW","uniqueKey":"included.events.items.[INDEX].state.weather.wind_direction","typeLabel":"string"},"wind_speed":{"type":"number","description":"Wind speed as the game data feed reports it.","example":12,"uniqueKey":"included.events.items.[INDEX].state.weather.wind_speed","typeLabel":"number"}},"title":"Weather","description":"Conditions at the venue, when the game feed has them.","example":{"condition":"Partly Cloudy","humidity":62,"temp":41,"wind_direction":"WNW","wind_speed":12},"uniqueKey":"included.events.items.[INDEX].state.weather","typeLabel":"Weather · object"},"weather_icon":{"type":"string","enum":["rain","snow","wind","cloud","night","indoor","clear","unknown"],"description":"An icon key for the conditions, when the game feed has them: `rain`, `snow`, `wind`, `cloud`, `night`, `indoor`, `clear` or `unknown`.","example":"cloud","uniqueKey":"included.events.items.[INDEX].state.weather_icon","typeLabel":"enum\u003cstring>"}},"title":"GameState","example":{"sport":"football","league":"nfl","clock":"15:00","quarter":1,"phase":"pregame","weather":{"condition":"Partly Cloudy","humidity":62,"temp":41,"wind_direction":"WNW","wind_speed":12},"weather_icon":"cloud"},"isRequired":true,"uniqueKey":"included.events.items.[INDEX].state","typeLabel":"GameState · object"},"home":{"type":"object","description":"The home team and its live score. Absent on a golf tournament.","required":["id","alias"],"properties":{"id":{"type":"string","description":"The team. Resolve it in `included.teams`.","example":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","isRequired":true,"uniqueKey":"included.events.items.[INDEX].home.id","typeLabel":"string"},"alias":{"type":"string","example":"BUF","description":"Team abbreviation, upper case.","isRequired":true,"uniqueKey":"included.events.items.[INDEX].home.alias","typeLabel":"string"},"points":{"type":"integer","description":"The team's score. Absent on an MLB game, which reports `runs`.","example":0,"uniqueKey":"included.events.items.[INDEX].home.points","typeLabel":"integer"},"primary_color":{"type":"string","description":"MLB games only: the team's primary color as a hex string. Other leagues' games currently carry it under `primaryColor`; read colors from `included.teams[].primary_color` instead.","example":"#00338D","uniqueKey":"included.events.items.[INDEX].home.primary_color","typeLabel":"string"},"runs":{"type":"integer","description":"Baseball: runs scored.","example":3,"uniqueKey":"included.events.items.[INDEX].home.runs","typeLabel":"integer"},"hits":{"type":"integer","description":"Baseball: hits. MLB games do not currently carry it.","example":7,"uniqueKey":"included.events.items.[INDEX].home.hits","typeLabel":"integer"},"errors":{"type":"integer","description":"Baseball: errors. MLB games do not currently carry it.","example":0,"uniqueKey":"included.events.items.[INDEX].home.errors","typeLabel":"integer"},"record":{"title":"TeamRecord","type":"object","required":["wins","losses"],"properties":{"wins":{"type":"integer","description":"Wins this season.","example":7,"isRequired":true,"uniqueKey":"included.events.items.[INDEX].home.record.wins","typeLabel":"integer"},"losses":{"type":"integer","description":"Losses this season.","example":1,"isRequired":true,"uniqueKey":"included.events.items.[INDEX].home.record.losses","typeLabel":"integer"},"ties":{"type":"integer","description":"Ties this season. Only in leagues that can tie.","example":0,"uniqueKey":"included.events.items.[INDEX].home.record.ties","typeLabel":"integer"}},"description":"The team's season record, when the game feed has one.","example":{"wins":7,"losses":1},"uniqueKey":"included.events.items.[INDEX].home.record","typeLabel":"TeamRecord · object"}},"title":"TeamState","example":{"id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","alias":"BUF","points":0,"record":{"wins":6,"losses":2}},"uniqueKey":"included.events.items.[INDEX].home","typeLabel":"TeamState · object"},"away":{"type":"object","description":"The away team and its live score. Absent on a golf tournament.","required":["id","alias"],"properties":{"id":{"type":"string","description":"The team. Resolve it in `included.teams`.","example":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","isRequired":true,"uniqueKey":"included.events.items.[INDEX].away.id","typeLabel":"string"},"alias":{"type":"string","example":"BUF","description":"Team abbreviation, upper case.","isRequired":true,"uniqueKey":"included.events.items.[INDEX].away.alias","typeLabel":"string"},"points":{"type":"integer","description":"The team's score. Absent on an MLB game, which reports `runs`.","example":0,"uniqueKey":"included.events.items.[INDEX].away.points","typeLabel":"integer"},"primary_color":{"type":"string","description":"MLB games only: the team's primary color as a hex string. Other leagues' games currently carry it under `primaryColor`; read colors from `included.teams[].primary_color` instead.","example":"#00338D","uniqueKey":"included.events.items.[INDEX].away.primary_color","typeLabel":"string"},"runs":{"type":"integer","description":"Baseball: runs scored.","example":3,"uniqueKey":"included.events.items.[INDEX].away.runs","typeLabel":"integer"},"hits":{"type":"integer","description":"Baseball: hits. MLB games do not currently carry it.","example":7,"uniqueKey":"included.events.items.[INDEX].away.hits","typeLabel":"integer"},"errors":{"type":"integer","description":"Baseball: errors. MLB games do not currently carry it.","example":0,"uniqueKey":"included.events.items.[INDEX].away.errors","typeLabel":"integer"},"record":{"title":"TeamRecord","type":"object","required":["wins","losses"],"properties":{"wins":{"type":"integer","description":"Wins this season.","example":7,"isRequired":true,"uniqueKey":"included.events.items.[INDEX].away.record.wins","typeLabel":"integer"},"losses":{"type":"integer","description":"Losses this season.","example":1,"isRequired":true,"uniqueKey":"included.events.items.[INDEX].away.record.losses","typeLabel":"integer"},"ties":{"type":"integer","description":"Ties this season. Only in leagues that can tie.","example":0,"uniqueKey":"included.events.items.[INDEX].away.record.ties","typeLabel":"integer"}},"description":"The team's season record, when the game feed has one.","example":{"wins":7,"losses":1},"uniqueKey":"included.events.items.[INDEX].away.record","typeLabel":"TeamRecord · object"}},"title":"TeamState","example":{"id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","alias":"BUF","points":0,"record":{"wins":6,"losses":2}},"uniqueKey":"included.events.items.[INDEX].away","typeLabel":"TeamState · object"}},"title":"Game","example":{"id":"4b1e9c2a-7d3f-4e5a-8b6c-9d0e1f2a3b4c","name":"Kansas City Chiefs at Buffalo Bills","league":"nfl","start_date":1794160800000,"status":"SCHEDULED","home":{"id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","alias":"BUF","points":0,"record":{"wins":6,"losses":2}},"away":{"id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","alias":"KC","points":0,"record":{"wins":7,"losses":1}},"state":{"sport":"football","league":"nfl","clock":"15:00","quarter":1,"phase":"pregame","weather":{"condition":"Partly Cloudy","humidity":62,"temp":41,"wind_direction":"WNW","wind_speed":12},"weather_icon":"cloud"}},"uniqueKey":"included.events.items.[INDEX]","typeLabel":"Game · object"},"description":"Every game the primary data references.","isRequired":true,"uniqueKey":"included.events","typeLabel":"Game · object[]"},"teams":{"type":"array","items":{"type":"object","required":["id","name","league","alias","market","official_logo"],"properties":{"id":{"type":"string","description":"The team id, as `team_id`, `yes_team_id` and `no_team_id` refer to it.","example":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","isRequired":true,"uniqueKey":"included.teams.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","example":"Chiefs","description":"The team name without its city, e.g. `Chiefs`.","isRequired":true,"uniqueKey":"included.teams.items.[INDEX].name","typeLabel":"string"},"league":{"type":"string","description":"The league. See [Leagues](/predictions/enums#leagues-sub_category).","enum":["nfl","ncaaf","nba","wnba","ncaab","mlb","nhl","epl","mls","pga","wc"],"title":"SubCategoryId","example":"nfl","isRequired":true,"uniqueKey":"included.teams.items.[INDEX].league","typeLabel":"enum\u003cstring>"},"alias":{"type":"string","example":"KC","description":"Team abbreviation, upper case.","isRequired":true,"uniqueKey":"included.teams.items.[INDEX].alias","typeLabel":"string"},"market":{"type":"string","example":"Kansas City","description":"The team's city or region, e.g. `Kansas City`.","isRequired":true,"uniqueKey":"included.teams.items.[INDEX].market","typeLabel":"string"},"official_logo":{"type":"boolean","description":"`true` when `icon_url` is the league's official logo (NHL, MLB, NBA, WNBA, EPL, MLS), `false` when Splash drew it (NFL and NCAAF helmets, NCAAB crests). A drawn icon faces one way, so mirror the away team's icon in a matchup; never mirror an official logo. Always present.","example":false,"isRequired":true,"uniqueKey":"included.teams.items.[INDEX].official_logo","typeLabel":"boolean"},"primary_color":{"type":"string","description":"The team's primary color as a hex string. Absent when the game feed has none.","example":"#E31837","uniqueKey":"included.teams.items.[INDEX].primary_color","typeLabel":"string"},"secondary_color":{"type":"string","description":"The team's secondary color as a hex string. Absent when the game feed has none.","example":"#FFB81C","uniqueKey":"included.teams.items.[INDEX].secondary_color","typeLabel":"string"},"icon_url":{"type":"string","format":"uri","description":"The team's icon on Cloudinary, falling back to the league's default icon. The URL is version-pinned, so it is safe to cache indefinitely. Absent when neither icon exists.","example":"https://res.cloudinary.com/splashsports/image/upload/v1791500102/static/icons/teams/nfl/kc.png","uniqueKey":"included.teams.items.[INDEX].icon_url","typeLabel":"string\u003curi>"}},"title":"Team","description":"A team referenced by a market or a game.","example":{"id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","name":"Chiefs","league":"nfl","alias":"KC","market":"Kansas City","primary_color":"#E31837","secondary_color":"#FFB81C","icon_url":"https://res.cloudinary.com/splashsports/image/upload/v1791500102/static/icons/teams/nfl/kc.png","official_logo":false},"uniqueKey":"included.teams.items.[INDEX]","typeLabel":"Team · object"},"description":"Every team the primary data references, plus both teams of each included game.","isRequired":true,"uniqueKey":"included.teams","typeLabel":"Team · object[]"},"entities":{"type":"array","items":{"type":"object","description":"A player referenced by a market's `entity_id`.","required":["id","name","league","player_details"],"properties":{"id":{"type":"string","description":"The player id, as a market's `entity_id` refers to it.","example":"11cad59d-90dd-449c-a839-dddaba4fe16c","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].id","typeLabel":"string"},"name":{"type":"string","description":"The player's full name.","example":"Patrick Mahomes","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].name","typeLabel":"string"},"league":{"type":"string","description":"The league. See [Leagues](/predictions/enums#leagues-sub_category).","enum":["nfl","ncaaf","nba","wnba","ncaab","mlb","nhl","epl","mls","pga","wc"],"title":"SubCategoryId","example":"nfl","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].league","typeLabel":"enum\u003cstring>"},"player_details":{"type":"object","required":["league","first_name","last_name","abbreviated_name","status"],"properties":{"league":{"type":"string","description":"The league. See [Leagues](/predictions/enums#leagues-sub_category).","enum":["nfl","ncaaf","nba","wnba","ncaab","mlb","nhl","epl","mls","pga","wc"],"title":"SubCategoryId","example":"nfl","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.league","typeLabel":"enum\u003cstring>"},"first_name":{"type":"string","description":"The player's first name.","example":"Patrick","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.first_name","typeLabel":"string"},"last_name":{"type":"string","description":"The player's last name.","example":"Mahomes","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.last_name","typeLabel":"string"},"abbreviated_name":{"type":"string","description":"Short display name, as the game feed abbreviates it.","example":"P.Mahomes","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.abbreviated_name","typeLabel":"string"},"status":{"type":"string","description":"The player's roster status code as the game feed reports it.","example":"ACT","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.status","typeLabel":"string"},"position":{"type":"string","description":"Team sports only: position abbreviation.","example":"QB","uniqueKey":"included.entities.items.[INDEX].player_details.position","typeLabel":"string"},"jersey_number":{"type":"string","description":"Team sports only: jersey number, as a string.","example":"15","uniqueKey":"included.entities.items.[INDEX].player_details.jersey_number","typeLabel":"string"},"throw_hand":{"type":"string","enum":["L","R"],"description":"MLB only: `L` or `R`.","example":"R","uniqueKey":"included.entities.items.[INDEX].player_details.throw_hand","typeLabel":"enum\u003cstring>"},"bat_hand":{"type":"string","enum":["L","R","B"],"description":"MLB only: `L`, `R`, or `B` for a switch hitter.","example":"R","uniqueKey":"included.entities.items.[INDEX].player_details.bat_hand","typeLabel":"enum\u003cstring>"},"statistics":{"title":"MLBSeasonStatistics","type":"object","description":"MLB only: season statistics.","properties":{"hitting":{"title":"MLBSeasonHittingStatistics","type":"object","description":"Season hitting. Present for a hitter, and for a two-way player.","required":["at_bats_per_game","hits_per_game","runs_per_game","rbi_per_game","total_bases_per_game","home_runs_per_game","total_strikeouts_per_game","stolen_bases_per_game","at_bats","hits","walks","home_runs","runs","rbi","stolen_bases","doubles","games_played","games_started","grounded_into_double_play","hit_by_pitch","intentional_walks","plate_appearances","reached_on_error","sacrifice_flys","singles","slugging_percentage","total_bases","total_strikeouts","triples","on_base_plus_slugging_percentage","on_base_percentage","batting_average"],"properties":{"at_bats_per_game":{"type":"number","description":"At-bats per game played.","example":3.62,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.at_bats_per_game","typeLabel":"number"},"hits_per_game":{"type":"number","description":"Hits per game played.","example":1.07,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.hits_per_game","typeLabel":"number"},"runs_per_game":{"type":"number","description":"Runs scored per game played.","example":0.85,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.runs_per_game","typeLabel":"number"},"rbi_per_game":{"type":"number","description":"Runs batted in per game played.","example":0.9,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.rbi_per_game","typeLabel":"number"},"total_bases_per_game":{"type":"number","description":"Total bases per game played.","example":2.24,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.total_bases_per_game","typeLabel":"number"},"home_runs_per_game":{"type":"number","description":"Home runs per game played.","example":0.33,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.home_runs_per_game","typeLabel":"number"},"total_strikeouts_per_game":{"type":"number","description":"Strikeouts per game played.","example":1.04,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.total_strikeouts_per_game","typeLabel":"number"},"stolen_bases_per_game":{"type":"number","description":"Stolen bases per game played.","example":0.06,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.stolen_bases_per_game","typeLabel":"number"},"at_bats":{"type":"number","description":"At-bats this season.","example":543,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.at_bats","typeLabel":"number"},"hits":{"type":"number","description":"Hits this season.","example":160,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.hits","typeLabel":"number"},"walks":{"type":"number","description":"Walks this season.","example":112,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.walks","typeLabel":"number"},"home_runs":{"type":"number","description":"Home runs this season.","example":50,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.home_runs","typeLabel":"number"},"runs":{"type":"number","description":"Runs scored this season.","example":128,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.runs","typeLabel":"number"},"rbi":{"type":"number","description":"Runs batted in this season.","example":135,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.rbi","typeLabel":"number"},"stolen_bases":{"type":"number","description":"Stolen bases this season.","example":9,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.stolen_bases","typeLabel":"number"},"doubles":{"type":"number","description":"Doubles this season.","example":26,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.doubles","typeLabel":"number"},"games_played":{"type":"number","description":"Games played this season.","example":150,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.games_played","typeLabel":"number"},"games_started":{"type":"number","description":"Games started this season.","example":148,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.games_started","typeLabel":"number"},"grounded_into_double_play":{"type":"number","description":"Times grounded into a double play.","example":14,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.grounded_into_double_play","typeLabel":"number"},"hit_by_pitch":{"type":"number","description":"Times hit by a pitch.","example":6,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.hit_by_pitch","typeLabel":"number"},"intentional_walks":{"type":"number","description":"Intentional walks received.","example":18,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.intentional_walks","typeLabel":"number"},"plate_appearances":{"type":"number","description":"Plate appearances this season.","example":671,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.plate_appearances","typeLabel":"number"},"reached_on_error":{"type":"number","description":"Times reached base on an error.","example":3,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.reached_on_error","typeLabel":"number"},"sacrifice_flys":{"type":"number","description":"Sacrifice flies.","example":7,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.sacrifice_flys","typeLabel":"number"},"singles":{"type":"number","description":"Singles this season.","example":82,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.singles","typeLabel":"number"},"slugging_percentage":{"type":"number","description":"Slugging percentage, as a decimal.","example":0.637,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.slugging_percentage","typeLabel":"number"},"total_bases":{"type":"number","description":"Total bases this season.","example":336,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.total_bases","typeLabel":"number"},"total_strikeouts":{"type":"number","description":"Strikeouts this season.","example":156,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.total_strikeouts","typeLabel":"number"},"triples":{"type":"number","description":"Triples this season.","example":2,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.triples","typeLabel":"number"},"on_base_plus_slugging_percentage":{"type":"number","description":"On-base plus slugging (OPS), as a decimal.","example":1.071,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.on_base_plus_slugging_percentage","typeLabel":"number"},"on_base_percentage":{"type":"number","description":"On-base percentage, as a decimal.","example":0.434,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.on_base_percentage","typeLabel":"number"},"batting_average":{"type":"string","example":".295","description":"Batting average as display text, e.g. `.295`.","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting.batting_average","typeLabel":"string"}},"example":{"at_bats_per_game":3.62,"hits_per_game":1.07,"runs_per_game":0.85,"rbi_per_game":0.9,"total_bases_per_game":2.24,"home_runs_per_game":0.33,"total_strikeouts_per_game":1.04,"stolen_bases_per_game":0.06,"at_bats":543,"hits":160,"walks":112,"home_runs":50,"runs":128,"rbi":135,"stolen_bases":9,"doubles":26,"games_played":150,"games_started":148,"grounded_into_double_play":14,"hit_by_pitch":6,"intentional_walks":18,"plate_appearances":671,"reached_on_error":3,"sacrifice_flys":7,"singles":82,"slugging_percentage":0.637,"total_bases":336,"total_strikeouts":156,"triples":2,"on_base_plus_slugging_percentage":1.071,"on_base_percentage":0.434,"batting_average":".295"},"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.hitting","typeLabel":"MLBSeasonHittingStatistics · object"},"pitching":{"title":"MLBSeasonPitchingStatistics","type":"object","description":"Season pitching. Present for a pitcher, and for a two-way player.","required":["innings_pitched","pitch_count","hits_allowed","earned_runs","base_on_balls","strikeouts","home_runs_allowed","earned_run_average","shutout","complete_game","win","loss","save","hold","blown_save","quality_start","total_outs"],"properties":{"innings_pitched":{"type":"number","description":"Innings pitched, in baseball notation: `.1` and `.2` are one and two outs.","example":186.2,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.innings_pitched","typeLabel":"number"},"pitch_count":{"type":"number","description":"Pitches thrown this season.","example":2985,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.pitch_count","typeLabel":"number"},"hits_allowed":{"type":"number","description":"Hits allowed.","example":151,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.hits_allowed","typeLabel":"number"},"earned_runs":{"type":"number","description":"Earned runs allowed.","example":58,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.earned_runs","typeLabel":"number"},"base_on_balls":{"type":"number","description":"Walks issued.","example":44,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.base_on_balls","typeLabel":"number"},"strikeouts":{"type":"number","description":"Strikeouts recorded.","example":221,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.strikeouts","typeLabel":"number"},"home_runs_allowed":{"type":"number","description":"Home runs allowed.","example":19,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.home_runs_allowed","typeLabel":"number"},"earned_run_average":{"type":"number","description":"Earned run average.","example":2.8,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.earned_run_average","typeLabel":"number"},"shutout":{"type":"number","description":"Shutouts.","example":1,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.shutout","typeLabel":"number"},"complete_game":{"type":"number","description":"Complete games.","example":2,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.complete_game","typeLabel":"number"},"win":{"type":"number","description":"Wins.","example":15,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.win","typeLabel":"number"},"loss":{"type":"number","description":"Losses.","example":7,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.loss","typeLabel":"number"},"save":{"type":"number","description":"Saves.","example":0,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.save","typeLabel":"number"},"hold":{"type":"number","description":"Holds.","example":0,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.hold","typeLabel":"number"},"blown_save":{"type":"number","description":"Blown saves.","example":0,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.blown_save","typeLabel":"number"},"quality_start":{"type":"number","description":"Quality starts.","example":21,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.quality_start","typeLabel":"number"},"total_outs":{"type":"number","description":"Outs recorded.","example":560,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching.total_outs","typeLabel":"number"}},"example":{"innings_pitched":186.2,"pitch_count":2985,"hits_allowed":151,"earned_runs":58,"base_on_balls":44,"strikeouts":221,"home_runs_allowed":19,"earned_run_average":2.8,"shutout":1,"complete_game":2,"win":15,"loss":7,"save":0,"hold":0,"blown_save":0,"quality_start":21,"total_outs":560},"uniqueKey":"included.entities.items.[INDEX].player_details.statistics.pitching","typeLabel":"MLBSeasonPitchingStatistics · object"}},"example":{"hitting":{"at_bats_per_game":3.62,"hits_per_game":1.07,"runs_per_game":0.85,"rbi_per_game":0.9,"total_bases_per_game":2.24,"home_runs_per_game":0.33,"total_strikeouts_per_game":1.04,"stolen_bases_per_game":0.06,"at_bats":543,"hits":160,"walks":112,"home_runs":50,"runs":128,"rbi":135,"stolen_bases":9,"doubles":26,"games_played":150,"games_started":148,"grounded_into_double_play":14,"hit_by_pitch":6,"intentional_walks":18,"plate_appearances":671,"reached_on_error":3,"sacrifice_flys":7,"singles":82,"slugging_percentage":0.637,"total_bases":336,"total_strikeouts":156,"triples":2,"on_base_plus_slugging_percentage":1.071,"on_base_percentage":0.434,"batting_average":".295"}},"uniqueKey":"included.entities.items.[INDEX].player_details.statistics","typeLabel":"MLBSeasonStatistics · object"},"splits":{"title":"MLBPlayerSplits","type":"object","description":"MLB only: hitting splits by opposing pitcher hand.","properties":{"hitting":{"title":"MLBPlayerHittingSplits","type":"object","required":["pitching_hand"],"properties":{"pitching_hand":{"type":"array","description":"One entry per opposing pitcher hand, `L` and `R`.","items":{"title":"MLBSeasonHittingSplitStatistics","type":"object","description":"Season hitting against one pitching hand.","required":["value","at_bats","hits","walks","home_runs","runs","rbi","stolen_bases","doubles","hit_by_pitch","intentional_walks","singles","slugging_percentage","total_strikeouts","triples","on_base_plus_slugging_percentage","on_base_percentage","batting_average"],"properties":{"value":{"type":"string","enum":["L","R"],"description":"The opposing pitcher's hand: `L` or `R`.","example":"L","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].value","typeLabel":"enum\u003cstring>"},"at_bats":{"type":"number","description":"At-bats against this hand.","example":131,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].at_bats","typeLabel":"number"},"hits":{"type":"number","description":"Hits against this hand.","example":41,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].hits","typeLabel":"number"},"walks":{"type":"number","description":"Walks against this hand.","example":31,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].walks","typeLabel":"number"},"home_runs":{"type":"number","description":"Home runs against this hand.","example":13,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].home_runs","typeLabel":"number"},"runs":{"type":"number","description":"Runs scored against this hand.","example":33,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].runs","typeLabel":"number"},"rbi":{"type":"number","description":"Runs batted in against this hand.","example":36,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].rbi","typeLabel":"number"},"stolen_bases":{"type":"number","description":"Stolen bases against this hand.","example":2,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].stolen_bases","typeLabel":"number"},"doubles":{"type":"number","description":"Doubles against this hand.","example":7,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].doubles","typeLabel":"number"},"hit_by_pitch":{"type":"number","description":"Times hit by a pitch.","example":2,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].hit_by_pitch","typeLabel":"number"},"intentional_walks":{"type":"number","description":"Intentional walks received.","example":5,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].intentional_walks","typeLabel":"number"},"singles":{"type":"number","description":"Singles against this hand.","example":21,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].singles","typeLabel":"number"},"slugging_percentage":{"type":"number","description":"Slugging percentage, as a decimal.","example":0.672,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].slugging_percentage","typeLabel":"number"},"total_strikeouts":{"type":"number","description":"Strikeouts against this hand.","example":35,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].total_strikeouts","typeLabel":"number"},"triples":{"type":"number","description":"Triples against this hand.","example":0,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].triples","typeLabel":"number"},"on_base_plus_slugging_percentage":{"type":"number","description":"On-base plus slugging (OPS), as a decimal.","example":1.122,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].on_base_plus_slugging_percentage","typeLabel":"number"},"on_base_percentage":{"type":"number","description":"On-base percentage, as a decimal.","example":0.45,"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].on_base_percentage","typeLabel":"number"},"batting_average":{"type":"string","description":"Batting average as display text, e.g. `.295`.","example":".313","isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX].batting_average","typeLabel":"string"}},"example":{"value":"L","at_bats":131,"hits":41,"walks":31,"home_runs":13,"runs":33,"rbi":36,"stolen_bases":2,"doubles":7,"hit_by_pitch":2,"intentional_walks":5,"singles":21,"slugging_percentage":0.672,"total_strikeouts":35,"triples":0,"on_base_plus_slugging_percentage":1.122,"on_base_percentage":0.45,"batting_average":".313"},"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand.items.[INDEX]","typeLabel":"MLBSeasonHittingSplitStatistics · object"},"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting.pitching_hand","typeLabel":"MLBSeasonHittingSplitStatistics · object[]"}},"description":"Hitting splits. Present for a hitter.","example":{"pitching_hand":[{"value":"L","at_bats":131,"hits":41,"walks":31,"home_runs":13,"runs":33,"rbi":36,"stolen_bases":2,"doubles":7,"hit_by_pitch":2,"intentional_walks":5,"singles":21,"slugging_percentage":0.672,"total_strikeouts":35,"triples":0,"on_base_plus_slugging_percentage":1.122,"on_base_percentage":0.45,"batting_average":".313"},{"value":"R","at_bats":412,"hits":119,"walks":81,"home_runs":37,"runs":95,"rbi":99,"stolen_bases":2,"doubles":19,"hit_by_pitch":2,"intentional_walks":5,"singles":61,"slugging_percentage":0.626,"total_strikeouts":121,"triples":2,"on_base_plus_slugging_percentage":1.056,"on_base_percentage":0.43,"batting_average":".289"}]},"uniqueKey":"included.entities.items.[INDEX].player_details.splits.hitting","typeLabel":"MLBPlayerHittingSplits · object"}},"example":{"hitting":{"pitching_hand":[{"value":"L","at_bats":131,"hits":41,"walks":31,"home_runs":13,"runs":33,"rbi":36,"stolen_bases":2,"doubles":7,"hit_by_pitch":2,"intentional_walks":5,"singles":21,"slugging_percentage":0.672,"total_strikeouts":35,"triples":0,"on_base_plus_slugging_percentage":1.122,"on_base_percentage":0.45,"batting_average":".313"},{"value":"R","at_bats":412,"hits":119,"walks":81,"home_runs":37,"runs":95,"rbi":99,"stolen_bases":2,"doubles":19,"hit_by_pitch":2,"intentional_walks":5,"singles":61,"slugging_percentage":0.626,"total_strikeouts":121,"triples":2,"on_base_plus_slugging_percentage":1.056,"on_base_percentage":0.43,"batting_average":".289"}]}},"uniqueKey":"included.entities.items.[INDEX].player_details.splits","typeLabel":"MLBPlayerSplits · object"},"country":{"type":"string","description":"PGA only: country name.","example":"United States","uniqueKey":"included.entities.items.[INDEX].player_details.country","typeLabel":"string"},"country_abb":{"type":"string","description":"PGA only: country abbreviation.","example":"USA","uniqueKey":"included.entities.items.[INDEX].player_details.country_abb","typeLabel":"string"},"amateur":{"type":"boolean","description":"PGA only: whether the player is an amateur.","example":false,"uniqueKey":"included.entities.items.[INDEX].player_details.amateur","typeLabel":"boolean"}},"title":"PlayerDetails","description":"Biographical details, and season statistics in MLB.","example":{"league":"nfl","first_name":"Patrick","last_name":"Mahomes","abbreviated_name":"P.Mahomes","status":"ACT","position":"QB","jersey_number":"15"},"isRequired":true,"uniqueKey":"included.entities.items.[INDEX].player_details","typeLabel":"PlayerDetails · object"},"current_team_id":{"type":"string","description":"The player's current team. Absent for PGA.","example":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","uniqueKey":"included.entities.items.[INDEX].current_team_id","typeLabel":"string"},"icon_url":{"type":"string","format":"uri","description":"Team sports: the player's jersey in their current team's colors with their number (no number in MLB), rendered by Cloudinary. Version-pinned and safe to cache. Absent for PGA.","example":"https://res.cloudinary.com/splashsports/image/upload/e_tint:100:3a0610:0p:8f0f1f:45p:e31837:72p:eb5a6a:100p/l_static:nfl:jersey_grey_stripe/e_colorize:100,co_rgb:ffb81c/fl_layer_apply/l_static:nfl:jersey_white_stripe/fl_layer_apply/l_text:Saira%20Condensed_820_black:15,co_white/fl_layer_apply,g_center,y_40/c_scale,w_255,dpr_2.0/c_mpad,w_300,h_300,b_transparent,dpr_2.0/e_sharpen:60/v1791500312/static/nfl/jersey.png","uniqueKey":"included.entities.items.[INDEX].icon_url","typeLabel":"string\u003curi>"}},"title":"Entity","example":{"id":"11cad59d-90dd-449c-a839-dddaba4fe16c","name":"Patrick Mahomes","league":"nfl","current_team_id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","player_details":{"league":"nfl","first_name":"Patrick","last_name":"Mahomes","abbreviated_name":"P.Mahomes","status":"ACT","position":"QB","jersey_number":"15"},"icon_url":"https://res.cloudinary.com/splashsports/image/upload/e_tint:100:3a0610:0p:8f0f1f:45p:e31837:72p:eb5a6a:100p/l_static:nfl:jersey_grey_stripe/e_colorize:100,co_rgb:ffb81c/fl_layer_apply/l_static:nfl:jersey_white_stripe/fl_layer_apply/l_text:Saira%20Condensed_820_black:15,co_white/fl_layer_apply,g_center,y_40/c_scale,w_255,dpr_2.0/c_mpad,w_300,h_300,b_transparent,dpr_2.0/e_sharpen:60/v1791500312/static/nfl/jersey.png"},"uniqueKey":"included.entities.items.[INDEX]","typeLabel":"Entity · object"},"description":"Every player the primary data references. On a `group_by=prop_type` response, only the players shown.","isRequired":true,"uniqueKey":"included.entities","typeLabel":"Entity · object[]"},"sub_categories":{"type":"array","items":{"type":"object","description":"A league referenced by an `included` block. Identity only: `active` and `filters` describe what is tradeable service-wide, which a list derived from one response's resources cannot speak to. Those come from `GET /sub_categories`.","required":["id","name","icon_url"],"properties":{"id":{"type":"string","description":"The league id. See [Leagues](/predictions/enums#leagues-sub_category).","enum":["nfl","ncaaf","nba","wnba","ncaab","mlb","nhl","epl","mls","pga","wc"],"title":"SubCategoryId","example":"nfl","isRequired":true,"uniqueKey":"included.sub_categories.items.[INDEX].id","typeLabel":"enum\u003cstring>"},"name":{"type":"string","description":"The league's display-ready label.","example":"NFL","isRequired":true,"uniqueKey":"included.sub_categories.items.[INDEX].name","typeLabel":"string"},"icon_url":{"type":"string","format":"uri","description":"The league's icon.","example":"https://res.cloudinary.com/splashsports/image/upload/v1786629706/pro_football.png","isRequired":true,"uniqueKey":"included.sub_categories.items.[INDEX].icon_url","typeLabel":"string\u003curi>"}},"title":"IncludedSubCategory","example":{"id":"nfl","name":"NFL","icon_url":"https://res.cloudinary.com/splashsports/image/upload/v1786629706/pro_football.png"},"uniqueKey":"included.sub_categories.items.[INDEX]","typeLabel":"IncludedSubCategory · object"},"description":"The distinct leagues of the included events, teams and entities, ordered by `name`. Identity only: `active` and `filters` come from `GET /sub_categories`.","isRequired":true,"uniqueKey":"included.sub_categories","typeLabel":"IncludedSubCategory · object[]"}},"title":"Included","example":{"events":[{"id":"4b1e9c2a-7d3f-4e5a-8b6c-9d0e1f2a3b4c","name":"Kansas City Chiefs at Buffalo Bills","league":"nfl","start_date":1794160800000,"status":"SCHEDULED","home":{"id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","alias":"BUF","points":0,"record":{"wins":6,"losses":2}},"away":{"id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","alias":"KC","points":0,"record":{"wins":7,"losses":1}},"state":{"sport":"football","league":"nfl","clock":"15:00","quarter":1,"phase":"pregame","weather":{"condition":"Partly Cloudy","humidity":62,"temp":41,"wind_direction":"WNW","wind_speed":12},"weather_icon":"cloud"}}],"teams":[{"id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","name":"Bills","league":"nfl","alias":"BUF","market":"Buffalo","primary_color":"#00338D","secondary_color":"#C60C30","icon_url":"https://res.cloudinary.com/splashsports/image/upload/v1791500098/static/icons/teams/nfl/buf.png","official_logo":false},{"id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","name":"Chiefs","league":"nfl","alias":"KC","market":"Kansas City","primary_color":"#E31837","secondary_color":"#FFB81C","icon_url":"https://res.cloudinary.com/splashsports/image/upload/v1791500102/static/icons/teams/nfl/kc.png","official_logo":false}],"entities":[{"id":"11cad59d-90dd-449c-a839-dddaba4fe16c","name":"Patrick Mahomes","league":"nfl","current_team_id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","player_details":{"league":"nfl","first_name":"Patrick","last_name":"Mahomes","abbreviated_name":"P.Mahomes","status":"ACT","position":"QB","jersey_number":"15"},"icon_url":"https://res.cloudinary.com/splashsports/image/upload/e_tint:100:3a0610:0p:8f0f1f:45p:e31837:72p:eb5a6a:100p/l_static:nfl:jersey_grey_stripe/e_colorize:100,co_rgb:ffb81c/fl_layer_apply/l_static:nfl:jersey_white_stripe/fl_layer_apply/l_text:Saira%20Condensed_820_black:15,co_white/fl_layer_apply,g_center,y_40/c_scale,w_255,dpr_2.0/c_mpad,w_300,h_300,b_transparent,dpr_2.0/e_sharpen:60/v1791500312/static/nfl/jersey.png"}],"sub_categories":[{"id":"nfl","name":"NFL","icon_url":"https://res.cloudinary.com/splashsports/image/upload/v1786629706/pro_football.png"}]},"uniqueKey":"included","typeLabel":"Included · object"},"offset":{"type":"integer","description":"Echo of an `offset` query parameter when one was sent; absent otherwise. It does not page `orders`.","example":0,"uniqueKey":"offset","typeLabel":"integer"},"limit":{"type":"integer","description":"Echo of a `limit` query parameter when one was sent; absent otherwise. It does not page `orders`.","example":50,"uniqueKey":"limit","typeLabel":"integer"}},"description":"One position with its orders.","uniqueKey":"","typeLabel":"PositionResponse · object"},"examples":{"An open position in a market":{"title":"An open position in a market","description":"`included` carries the game, teams and league the market references.","value":{"status":"success","position":{"id":"pos_6aedec66d4a9e2c7f1b05d38a6e2c9b1","market_id":"pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412","realized_pnl":0,"created_at":1793977446412,"updated_at":1793977446412,"status":"open","side":"yes","price":0.6,"cost":5.85,"quantity":10,"order_count":1,"market":{"id":"pm_6ae1e3c09e1d4c7a2b5f80e3d6a9c412","provider_ticker":"aec-nfl-kc-buf-2026-11-08","title":"Kansas City Chiefs to win the game?","sub_category":"nfl","type":"moneyline","event_id":"4b1e9c2a-7d3f-4e5a-8b6c-9d0e1f2a3b4c","event_start":1794160800000,"moneyline_type":"two_way","team_id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","yes_team_id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","no_team_id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","price_yes":{"american":"-144","decimal":"1.69x","percentage":"59%","price":"$0.59","numeric_price":0.59},"price_no":{"american":"+138","decimal":"2.38x","percentage":"42%","price":"$0.42","numeric_price":0.42},"volume":184532.17,"liquidity":9266.25,"yes_liquidity":5378.8,"no_liquidity":4334.95,"last_price_yes":0.585,"last_price_no":0.415,"status":"active","updated_at":1793977442118,"rules":"This market resolves to \"Yes\" if the Kansas City Chiefs win their game against the Buffalo Bills scheduled for November 8, 2026. It resolves to \"No\" if the Buffalo Bills win. If the game ends in a tie, is canceled, or is postponed past November 15, 2026, the market resolves 50-50.","market_group_id":"pmgm_6ae1e3c0a3f19c0d7e2b4c58e61f9d02"},"cost_plus_fees":5.97,"total_fees":0.12,"closed_cost":0,"closed_cost_plus_fees":0,"closed_quantity":0,"total_proceeds":0,"orders":[{"id":"ord_6aedec658f3a61c2d94e07b5a1c6e2d9","side":"yes","yes_price":0.585,"no_price":0.415,"quantity":10,"status":"executed","fill_cost":5.85,"updated_at":1793977446412,"created_at":1793977445000,"executed_at":1793977446412,"remaining_quantity":0,"fill_quantity":10,"fees":0.12,"action":"buy","splash_action":"buy","proceeds":0,"splash_side":"yes","trade_price":0.597,"proceeds_minus_fees":0,"fill_cost_plus_fees":5.97,"request_id":"3f1c2a9e-5b7d-4e0a-9c1d-8a6b2e4f7d10","time_in_force":"FOK"}]},"included":{"events":[{"id":"4b1e9c2a-7d3f-4e5a-8b6c-9d0e1f2a3b4c","name":"Kansas City Chiefs at Buffalo Bills","league":"nfl","start_date":1794160800000,"status":"SCHEDULED","home":{"id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","alias":"BUF","points":0,"record":{"wins":6,"losses":2}},"away":{"id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","alias":"KC","points":0,"record":{"wins":7,"losses":1}},"state":{"sport":"football","league":"nfl","clock":"15:00","quarter":1,"phase":"pregame","weather":{"condition":"Partly Cloudy","humidity":62,"temp":41,"wind_direction":"WNW","wind_speed":12},"weather_icon":"cloud"}}],"teams":[{"id":"768c92aa-75ff-4a43-bcc0-f2fe5c1f0a3e","name":"Bills","league":"nfl","alias":"BUF","market":"Buffalo","primary_color":"#00338D","secondary_color":"#C60C30","icon_url":"https://res.cloudinary.com/splashsports/image/upload/v1791500098/static/icons/teams/nfl/buf.png","official_logo":false},{"id":"6680b4e0-5b6c-4bd1-8f6a-0b4f3b7d9a21","name":"Chiefs","league":"nfl","alias":"KC","market":"Kansas City","primary_color":"#E31837","secondary_color":"#FFB81C","icon_url":"https://res.cloudinary.com/splashsports/image/upload/v1791500102/static/icons/teams/nfl/kc.png","official_logo":false}],"entities":[],"sub_categories":[{"id":"nfl","name":"NFL","icon_url":"https://res.cloudinary.com/splashsports/image/upload/v1786629706/pro_football.png"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"d353e695-07e0-4d55-84b0-a86c86f1a6b7":{"description":"The signature check failed, or the request had no `SPLASH-ACCESS-KEY` header. A failed check's `message` is one of `Unknown API key`, `API key revoked`, `Timestamp outside the allowed window` or `Invalid signature`. `API key revoked` is reported only when the signature is correct, so a wrong secret always reads `Invalid signature`. A request without the `SPLASH-ACCESS-KEY` header is not an API request and is refused with `You are not authorized to perform the requested action.` See [Authentication errors](/predictions/authentication#authentication-errors).","content":{"application/json":{"schema":{"type":"object","title":"TradingError","description":"The error body of the signed order and position routes. Same shape as the public `Error`, with the codes those routes can return. Branch on `error`; `message` is for people. See [Errors](/predictions/trading#errors).","required":["status","error","message"],"properties":{"status":{"type":"string","const":"error","description":"Always `error` on an error response.","example":"error","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"error":{"type":"string","description":"Machine-readable code; branch on this. A string: the values below are the ones these routes return today, and a code not listed here should be handled by its HTTP status. See [Trading error codes](/predictions/enums#trading-error-codes-error).\n\n- `BAD_REQUEST` (400): invalid body or query, or an order check failed.\n- `NOT_AUTHORIZED` (401): the signature check failed, the request had no `SPLASH-ACCESS-KEY` header, or `user_id` was passed to `GET /orders`, `GET /orders/{id}`, `GET /positions`, `GET /positions/{id}` or `GET /transactions`.\n- `FOBIDDEN` (403): `Not authorized to trade`, the account may not trade. `FOBIDDEN` is the literal value the API returns (not `FORBIDDEN`); match it exactly.\n- `NOT_FOUND` (404): no such order, position or market on your account.\n- `DUPLICATE_REQUEST_ID` (409): another account used this `request_id`.\n- `UNSUPPORTED_MEDIA_TYPE` (415): a signed body that is not JSON.\n- `INTERNAL_ERROR` (500): the request could not be handled. On `POST /trading/orders` the order was not placed; poll the `request_id`, then try again with a new one.\n- `TRADING_API_UNAVAILABLE` (503): the Trading API is not taking signed requests; retry later.\n- `EXCHANGE_UNAVAILABLE`, `SERVICE_UNAVAILABLE` (503): the order could not be placed right now; retry later with a new `request_id`. On `GET /balance`, `SERVICE_UNAVAILABLE` means your balance could not be read; retry shortly.\n\nA `429 Too Many Requests` is the rate limit, not one of these codes; see [Rate limits](/predictions/rate-limits). Whether an order's `request_id` can be reused after an error: see [Order outcomes and retries](/predictions/trading#order-outcomes-and-retries).","example":"FOBIDDEN","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable detail. For `BAD_REQUEST` and `NOT_AUTHORIZED` it names the cause, e.g. `Invalid price` or `Invalid signature`. Do not branch on it.","example":"Not authorized to trade","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"example":{"status":"error","error":"FOBIDDEN","message":"Not authorized to trade"},"uniqueKey":"","typeLabel":"TradingError · object"},"examples":{"Invalid signature":{"title":"Invalid signature","description":"The signature does not match what Splash computed. Check that you signed the exact body bytes and the full path including `/predictions-service/api` and the query string.","value":{"status":"error","error":"NOT_AUTHORIZED","message":"Invalid signature"}},"Timestamp outside the allowed window":{"title":"Timestamp outside the allowed window","description":"`SPLASH-ACCESS-TIMESTAMP` is more than 30 seconds from server time. Check your clock.","value":{"status":"error","error":"NOT_AUTHORIZED","message":"Timestamp outside the allowed window"}},"Unknown API key":{"title":"Unknown API key","value":{"status":"error","error":"NOT_AUTHORIZED","message":"Unknown API key"}},"API key revoked":{"title":"API key revoked","value":{"status":"error","error":"NOT_AUTHORIZED","message":"API key revoked"}},"Missing or misspelled key header":{"title":"Missing or misspelled key header","description":"The request carried no `SPLASH-ACCESS-KEY` header, because it was not signed or the header name is misspelled. A request without the `SPLASH-ACCESS-KEY` header is not an API request and is refused. Send all three `SPLASH-ACCESS-*` headers.","value":{"status":"error","error":"NOT_AUTHORIZED","message":"You are not authorized to perform the requested action."}}},"exampleType":"examples"}},"exampleType":"examples"},"0a5242fd-f16f-47e0-9bdd-ca014f154244":{"description":"No such order or position for this account.","content":{"application/json":{"schema":{"type":"object","title":"TradingError","description":"The error body of the signed order and position routes. Same shape as the public `Error`, with the codes those routes can return. Branch on `error`; `message` is for people. See [Errors](/predictions/trading#errors).","required":["status","error","message"],"properties":{"status":{"type":"string","const":"error","description":"Always `error` on an error response.","example":"error","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"error":{"type":"string","description":"Machine-readable code; branch on this. A string: the values below are the ones these routes return today, and a code not listed here should be handled by its HTTP status. See [Trading error codes](/predictions/enums#trading-error-codes-error).\n\n- `BAD_REQUEST` (400): invalid body or query, or an order check failed.\n- `NOT_AUTHORIZED` (401): the signature check failed, the request had no `SPLASH-ACCESS-KEY` header, or `user_id` was passed to `GET /orders`, `GET /orders/{id}`, `GET /positions`, `GET /positions/{id}` or `GET /transactions`.\n- `FOBIDDEN` (403): `Not authorized to trade`, the account may not trade. `FOBIDDEN` is the literal value the API returns (not `FORBIDDEN`); match it exactly.\n- `NOT_FOUND` (404): no such order, position or market on your account.\n- `DUPLICATE_REQUEST_ID` (409): another account used this `request_id`.\n- `UNSUPPORTED_MEDIA_TYPE` (415): a signed body that is not JSON.\n- `INTERNAL_ERROR` (500): the request could not be handled. On `POST /trading/orders` the order was not placed; poll the `request_id`, then try again with a new one.\n- `TRADING_API_UNAVAILABLE` (503): the Trading API is not taking signed requests; retry later.\n- `EXCHANGE_UNAVAILABLE`, `SERVICE_UNAVAILABLE` (503): the order could not be placed right now; retry later with a new `request_id`. On `GET /balance`, `SERVICE_UNAVAILABLE` means your balance could not be read; retry shortly.\n\nA `429 Too Many Requests` is the rate limit, not one of these codes; see [Rate limits](/predictions/rate-limits). Whether an order's `request_id` can be reused after an error: see [Order outcomes and retries](/predictions/trading#order-outcomes-and-retries).","example":"FOBIDDEN","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable detail. For `BAD_REQUEST` and `NOT_AUTHORIZED` it names the cause, e.g. `Invalid price` or `Invalid signature`. Do not branch on it.","example":"Not authorized to trade","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"example":{"status":"error","error":"FOBIDDEN","message":"Not authorized to trade"},"uniqueKey":"","typeLabel":"TradingError · object"},"examples":{"No such order or position on your account":{"title":"No such order or position on your account","description":"Also what a position or market with no open holding answers. An order placed a moment ago does not 404: it answers with a PendingOrder until it is recorded.","value":{"status":"error","error":"NOT_FOUND","message":"The requested resource was not found."}}},"exampleType":"examples"}},"exampleType":"examples"},"df5d0198-95b1-455e-8761-f81998d538bf":{"description":"Too Many Requests: more than 10 requests per second from your IP address. The request was not handled and nothing was recorded. If the response has a `Retry-After` header, wait that many seconds; otherwise back off (about 1 second, with jitter). Then send the same request again; on `POST /trading/orders` reuse the same `request_id`. See [Rate limits](/predictions/rate-limits).","headers":{"Retry-After":{"description":"Optional, and may be absent. When present, the number of seconds to wait before retrying; when absent, back off about 1 second with jitter.","required":false,"schema":{"type":"integer"},"example":1}},"content":{"application/json":{"schema":{"type":"object","title":"TooManyRequestsError","description":"The body of a `429 Too Many Requests`: more than 10 requests per second from your IP address. It is not a `TradingError`; branch on the `429` status. See [Rate limits](/predictions/rate-limits).","required":["status","error","message"],"properties":{"status":{"type":"string","const":"error","description":"Always `error`.","example":"error","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"error":{"type":"string","const":"TOO_MANY_REQUESTS","description":"Always `TOO_MANY_REQUESTS` on a rate-limited request.","example":"TOO_MANY_REQUESTS","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable detail. Do not branch on it.","example":"Too many requests, try again later","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"example":{"status":"error","error":"TOO_MANY_REQUESTS","message":"Too many requests, try again later"},"uniqueKey":"","typeLabel":"TooManyRequestsError · object"},"examples":{"Over the limit":{"title":"Over the limit","description":"More than 10 requests per second from your IP address. Nothing was recorded; wait about a second (or the `Retry-After` seconds when that header is present) and send the same request again.","value":{"status":"error","error":"TOO_MANY_REQUESTS","message":"Too many requests, try again later"}}},"exampleType":"examples"}},"exampleType":"examples"},"958f508a-f422-44a2-94de-382aaf9f1692":{"description":"The request could not be handled. On `POST /trading/orders` the order was not placed: poll `GET /orders?request_id=` before trying again. If the poll returns the order, follow it; otherwise send the order again with a new `request_id`, because this one now reads `cancelled`. See [Order outcomes and retries](/predictions/trading#order-outcomes-and-retries).","content":{"application/json":{"schema":{"type":"object","required":["status","error","message"],"properties":{"status":{"type":"string","const":"error","description":"Always `error` on an error response.","example":"error","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"error":{"type":"string","enum":["BAD_REQUEST","NOT_FOUND","INTERNAL_ERROR"],"description":"Machine-readable code; branch on this. `BAD_REQUEST` (400), `NOT_FOUND` (404) or `INTERNAL_ERROR` (500). See [Error codes](/predictions/enums#error-codes-error).","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable detail for logs and people. Wording can change; do not branch on it.","example":"Invalid request parameters","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"title":"Error","example":{"status":"error","error":"BAD_REQUEST","message":"Invalid request parameters"},"uniqueKey":"","typeLabel":"Error · object"},"examples":{"The request could not be handled":{"title":"The request could not be handled","description":"The message is spelled `occured` on the wire. On `POST /trading/orders`, poll the `request_id` before trying again, then send the order with a new `request_id`.","value":{"status":"error","error":"INTERNAL_ERROR","message":"An internal error has occured and the request could not be handled."}}},"exampleType":"examples"}},"exampleType":"examples"},"e5a985d3-78c5-4430-bbd0-610e8135910b":{"description":"The Trading API cannot take signed requests right now (`TRADING_API_UNAVAILABLE`). Nothing was read or recorded. Retry later.","content":{"application/json":{"schema":{"type":"object","title":"TradingError","description":"The error body of the signed order and position routes. Same shape as the public `Error`, with the codes those routes can return. Branch on `error`; `message` is for people. See [Errors](/predictions/trading#errors).","required":["status","error","message"],"properties":{"status":{"type":"string","const":"error","description":"Always `error` on an error response.","example":"error","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"error":{"type":"string","description":"Machine-readable code; branch on this. A string: the values below are the ones these routes return today, and a code not listed here should be handled by its HTTP status. See [Trading error codes](/predictions/enums#trading-error-codes-error).\n\n- `BAD_REQUEST` (400): invalid body or query, or an order check failed.\n- `NOT_AUTHORIZED` (401): the signature check failed, the request had no `SPLASH-ACCESS-KEY` header, or `user_id` was passed to `GET /orders`, `GET /orders/{id}`, `GET /positions`, `GET /positions/{id}` or `GET /transactions`.\n- `FOBIDDEN` (403): `Not authorized to trade`, the account may not trade. `FOBIDDEN` is the literal value the API returns (not `FORBIDDEN`); match it exactly.\n- `NOT_FOUND` (404): no such order, position or market on your account.\n- `DUPLICATE_REQUEST_ID` (409): another account used this `request_id`.\n- `UNSUPPORTED_MEDIA_TYPE` (415): a signed body that is not JSON.\n- `INTERNAL_ERROR` (500): the request could not be handled. On `POST /trading/orders` the order was not placed; poll the `request_id`, then try again with a new one.\n- `TRADING_API_UNAVAILABLE` (503): the Trading API is not taking signed requests; retry later.\n- `EXCHANGE_UNAVAILABLE`, `SERVICE_UNAVAILABLE` (503): the order could not be placed right now; retry later with a new `request_id`. On `GET /balance`, `SERVICE_UNAVAILABLE` means your balance could not be read; retry shortly.\n\nA `429 Too Many Requests` is the rate limit, not one of these codes; see [Rate limits](/predictions/rate-limits). Whether an order's `request_id` can be reused after an error: see [Order outcomes and retries](/predictions/trading#order-outcomes-and-retries).","example":"FOBIDDEN","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"Human-readable detail. For `BAD_REQUEST` and `NOT_AUTHORIZED` it names the cause, e.g. `Invalid price` or `Invalid signature`. Do not branch on it.","example":"Not authorized to trade","isRequired":true,"uniqueKey":"message","typeLabel":"string"}},"example":{"status":"error","error":"FOBIDDEN","message":"Not authorized to trade"},"uniqueKey":"","typeLabel":"TradingError · object"},"examples":{"The Trading API is not available":{"title":"The Trading API is not available","value":{"status":"error","error":"TRADING_API_UNAVAILABLE","message":"The trading API is not available."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"d08cca05-6881-471f-aa24-a08dbd81cbf4":{"SplashAccessKey":{"type":"apiKey","in":"header","name":"SPLASH-ACCESS-KEY","description":"Your API key id. Keys are issued by Splash on request, never expire, and stay valid until Splash revokes them, which it does on request. See [Authentication](/predictions/authentication).","scopes":[],"schemeName":"SplashAccessKey"},"SplashAccessTimestamp":{"type":"apiKey","in":"header","name":"SPLASH-ACCESS-TIMESTAMP","description":"Unix milliseconds, within 30 seconds of server time.","scopes":[],"schemeName":"SplashAccessTimestamp"},"SplashAccessSignature":{"type":"apiKey","in":"header","name":"SPLASH-ACCESS-SIGNATURE","description":"`base64(HMAC-SHA256(secret, timestamp + METHOD + path + body))`. See [Authentication](/predictions/authentication).","scopes":[],"schemeName":"SplashAccessSignature"}}},"servers":{"d7d3b42f-0ca4-43cd-8663-0e65fcf09fe8":{"url":"https://api.splashsports.com/predictions-service/api","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"SPLASH-ACCESS-KEY","description":"Your API key id. Keys are issued by Splash on request, never expire, and stay valid until Splash revokes them, which it does on request. See [Authentication](/predictions/authentication).","scopes":[],"schemeName":"SplashAccessKey"},"schema":{"title":"SPLASH-ACCESS-KEY","type":"string","description":"Your API key id. Keys are issued by Splash on request, never expire, and stay valid until Splash revokes them, which it does on request. See [Authentication](/predictions/authentication).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"SplashAccessKey","name":"SPLASH-ACCESS-KEY"},{"scheme":{"type":"apiKey","in":"header","name":"SPLASH-ACCESS-TIMESTAMP","description":"Unix milliseconds, within 30 seconds of server time.","scopes":[],"schemeName":"SplashAccessTimestamp"},"schema":{"title":"SPLASH-ACCESS-TIMESTAMP","type":"string","description":"Unix milliseconds, within 30 seconds of server time.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"SplashAccessTimestamp","name":"SPLASH-ACCESS-TIMESTAMP"},{"scheme":{"type":"apiKey","in":"header","name":"SPLASH-ACCESS-SIGNATURE","description":"`base64(HMAC-SHA256(secret, timestamp + METHOD + path + body))`. See [Authentication](/predictions/authentication).","scopes":[],"schemeName":"SplashAccessSignature"},"schema":{"title":"SPLASH-ACCESS-SIGNATURE","type":"string","description":"`base64(HMAC-SHA256(secret, timestamp + METHOD + path + body))`. See [Authentication](/predictions/authentication).","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"SplashAccessSignature","name":"SPLASH-ACCESS-SIGNATURE"}],"title":"SplashAccessKey \u0026 SplashAccessTimestamp \u0026 SplashAccessSignature"}]},"originalFileLocation":"predictions/openapi.json"},"subdomain":"splashsports","siteName":"Splash API","title":"Get a position by market - Splash API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T04:46:16.431Z","originalFileLocation":"predictions/reference/positions/get-a-position-by-market.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Your open position in one market, with its orders, newest first. Use it when you know the market (the market_id you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as Get a position. Only an open position is returned: a market you hold nothing in, or one whose position is closed, is a 404; read closed positions from List positions. The orders are every order on the position that was not cancelled, so a still-pending order can appear.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Splash API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get a position by market - Splash API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Your open position in one market, with its orders, newest first. Use it when you know the market (the market_id you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as Get a position. Only an open position is returned: a market you hold nothing in, or one whose position is closed, is a 404; read closed positions from List positions. The orders are every order on the position that was not cancelled, so a still-pending order can appear.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Splash API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://splashsports.mintlify.app/_mintlify/api/og/v2?division=Positions\u0026amp;title=Get+a+position+by+market\u0026amp;description=Your+open+position+in+one+market%2C+with+its+orders%2C+newest+first.+Use+it+when+you+know+the+market+%28the+%60market_id%60+you+ordered+against%29+but+not+the+position+id%2C+\u0026amp;theme=9004f4974dec995f2169f042\u0026amp;signature=19c3b0e83078c7db5b9ad23f348586b28741520bc2693b8115fb88f14bbb5dc1\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get a position by market - Splash API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Your open position in one market, with its orders, newest first. Use it when you know the market (the market_id you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as Get a position. Only an open position is returned: a market you hold nothing in, or one whose position is closed, is a 404; read closed positions from List positions. The orders are every order on the position that was not cancelled, so a still-pending order can appear.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://splashsports.mintlify.app/_mintlify/api/og/v2?division=Positions\u0026amp;title=Get+a+position+by+market\u0026amp;description=Your+open+position+in+one+market%2C+with+its+orders%2C+newest+first.+Use+it+when+you+know+the+market+%28the+%60market_id%60+you+ordered+against%29+but+not+the+position+id%2C+\u0026amp;theme=9004f4974dec995f2169f042\u0026amp;signature=19c3b0e83078c7db5b9ad23f348586b28741520bc2693b8115fb88f14bbb5dc1\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/splashsports/PRNnoWEL4Q64I1hT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Splash API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00938A\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/predictions/reference/positions/get-a-position-by-market.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.splashsports.com/#organization\",\"name\":\"Splash API\",\"url\":\"https://docs.splashsports.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/splashsports/kcAVKCSKVe9QsybE/images/Black.png?fit=max\u0026auto=format\u0026n=kcAVKCSKVe9QsybE\u0026q=85\u0026s=e3ebef52faf215906edfadd8cb6b8f6c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.splashsports.com#website\",\"name\":\"Splash API\",\"url\":\"https://docs.splashsports.com\",\"publisher\":{\"@id\":\"https://docs.splashsports.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market#webpage\",\"url\":\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market\",\"name\":\"Get a position by market\",\"description\":\"Your open position in one market, with its orders, newest first. Use it when you know the market (the market_id you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as Get a position. Only an open position is returned: a market you hold nothing in, or one whose position is closed, is a 404; read closed positions from List positions. The orders are every order on the position that was not cancelled, so a still-pending order can appear.\",\"dateModified\":\"2026-11-03T04:46:16.431Z\",\"isPartOf\":{\"@id\":\"https://docs.splashsports.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reference\",\"item\":\"https://docs.splashsports.com/predictions/reference/discover/discover-feed\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Positions\",\"item\":\"https://docs.splashsports.com/predictions/reference/positions/list-positions\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get a position by market\",\"item\":\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market#apireference\",\"headline\":\"Get a position by market\",\"name\":\"Get a position by market\",\"description\":\"Your open position in one market, with its orders, newest first. Use it when you know the market (the market_id you ordered against) but not the position id, for example to check what you hold before placing another order or to decide whether to sell. The body is the same shape as Get a position. Only an open position is returned: a market you hold nothing in, or one whose position is closed, is a 404; read closed positions from List positions. The orders are every order on the position that was not cancelled, so a still-pending order can appear.\",\"url\":\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market\",\"mainEntityOfPage\":{\"@id\":\"https://docs.splashsports.com/predictions/reference/positions/get-a-position-by-market#webpage\"},\"dateModified\":\"2026-11-03T04:46:16.431Z\",\"publisher\":{\"@id\":\"https://docs.splashsports.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.splashsports.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Splash API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Splash API","nav":{"global":null,"tabs":[{"tab":"Predictions API","groups":[{"group":"Getting started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Overview","href":"/predictions/overview"},{"title":"Trading","href":"/predictions/trading"},{"title":"Authentication","href":"/predictions/authentication"},{"title":"Rate limits","href":"/predictions/rate-limits"},{"title":"Fees and order cost","href":"/predictions/fees"},{"title":"Enumerations","href":"/predictions/enums"}]},{"group":"Reference","pages":[{"group":"Discover","pages":[{"title":"Discover feed","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /discover","href":"/predictions/reference/discover/discover-feed"}]},{"group":"Sub-categories","pages":[{"title":"List sub-categories","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /sub_categories","href":"/predictions/reference/sub-categories/list-sub-categories"}]},{"group":"Markets","pages":[{"title":"List market groups","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /prediction_markets","href":"/predictions/reference/markets/list-market-groups"},{"title":"List promoted market groups","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /prediction_markets/promoted","href":"/predictions/reference/markets/list-promoted-market-groups"},{"title":"Get a market group","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /prediction_markets/{id}","href":"/predictions/reference/markets/get-a-market-group"}]},{"group":"Events","pages":[{"title":"Get a game's markets","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /events/{event_id}/details","href":"/predictions/reference/events/get-a-games-markets"}]},{"group":"Orders","pages":[{"title":"Place an order","deprecated":null,"version":null,"openapi":"/predictions/openapi.json post /trading/orders","href":"/predictions/reference/orders/place-an-order"},{"title":"List orders","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /orders","href":"/predictions/reference/orders/list-orders"},{"title":"Get an order","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /orders/{id}","href":"/predictions/reference/orders/get-an-order"}]},{"group":"Positions","pages":[{"title":"List positions","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /positions","href":"/predictions/reference/positions/list-positions"},{"title":"Get a position","description":"One position with its orders, newest first. Use it when you hold a position's `id` (prefix `pos_`, from [List positions](/predictions/reference/positions/list-positions)) and want the full history behind it: every executed order that opened, added to or closed it, with fills, fees and the average price.\n\nThe position fields are the same as in the list: `status` is `open` while you hold contracts and `closed` once you hold none, `quantity` and `cost` describe what is open, `closed_quantity`, `closed_cost` and `total_proceeds` describe what is closed out, and `realized_pnl` is the profit or loss locked in after all fees. The orders are the position's orders that are neither pending nor cancelled.\n\nAnother account's position is a `404`, the same as an id that does not exist. To look a position up by market instead of by position id, use [Get a position by market](/predictions/reference/positions/get-a-position-by-market).\n\nWhen a position's market settles, its payout is recorded as a settlement transaction; for the settlement record, see [List transactions](/predictions/reference/activity/list-transactions).","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /positions/{id}","href":"/predictions/reference/positions/get-a-position"},{"title":"Get a position by market","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /positions/market/{market_id}","href":"/predictions/reference/positions/get-a-position-by-market"},{"title":"Get portfolio summary","description":"The total value and cost basis of all your open positions, in one call. Use it for a portfolio headline without paging through [List positions](/predictions/reference/positions/list-positions).\n\n`value` marks each open position at the current ask on the side you hold (contracts held times that ask), summed. `cost_basis` is what those same contracts cost plus the fees on every executed order on each open position, including sells and earlier round trips in the same market. The difference, `value` minus `cost_basis`, is your unrealized profit or loss; profit already locked in by sales and settlements is `realized_pnl` on each position, not part of this summary. Both are dollars rounded to cents, and both are 0 when you hold nothing.","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /portfolio/summary","href":"/predictions/reference/positions/get-portfolio-summary"}]},{"group":"Activity","pages":[{"title":"List transactions","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /transactions","href":"/predictions/reference/activity/list-transactions"}]},{"group":"Account","pages":[{"title":"Get account","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /account","href":"/predictions/reference/account/get-account"},{"title":"Get balance","deprecated":null,"version":null,"openapi":"/predictions/openapi.json get /balance","href":"/predictions/reference/account/get-balance"}]}]},{"group":"Types","pages":[{"title":"Market","href":"/predictions/types/market"},{"title":"GamelineMarket","href":"/predictions/types/gameline-market"},{"title":"SpreadMarket","href":"/predictions/types/spread-market"},{"title":"TotalMarket","href":"/predictions/types/total-market"},{"title":"MoneylineMarket","href":"/predictions/types/moneyline-market"},{"title":"FutureTeamChampionMarket","href":"/predictions/types/future-team-champion-market"},{"title":"PlayerPropMarket","href":"/predictions/types/player-prop-market"},{"title":"PlayerPropLine","href":"/predictions/types/player-prop-line"},{"title":"GamelineLine","href":"/predictions/types/gameline-line"},{"title":"MarketGroup","href":"/predictions/types/market-group"},{"title":"GamelineMarketGroup","href":"/predictions/types/gameline-market-group"},{"title":"FutureTeamChampionMarketGroup","href":"/predictions/types/future-team-champion-market-group"},{"title":"PlayerPropMarketGroup","href":"/predictions/types/player-prop-market-group"},{"title":"MarketPrice","href":"/predictions/types/market-price"},{"title":"Orderbook","href":"/predictions/types/orderbook"},{"title":"Included","href":"/predictions/types/included"},{"title":"Game","href":"/predictions/types/game"},{"title":"GameState","href":"/predictions/types/game-state"},{"title":"TeamState","href":"/predictions/types/team-state"},{"title":"Team","href":"/predictions/types/team"},{"title":"Entity","href":"/predictions/types/entity"},{"title":"PlayerDetails","href":"/predictions/types/player-details"},{"title":"SubCategory","href":"/predictions/types/sub-category"},{"title":"GameTab","href":"/predictions/types/game-tab"},{"title":"PlayerPropSection","href":"/predictions/types/player-prop-section"},{"title":"GamelineSection","href":"/predictions/types/gameline-section"},{"title":"Order","href":"/predictions/types/order"},{"title":"OrderWithMarket","href":"/predictions/types/order-with-market"},{"title":"OrderDetail","href":"/predictions/types/order-detail"},{"title":"PendingOrder","href":"/predictions/types/pending-order"},{"title":"OriginalBuy","href":"/predictions/types/original-buy"},{"title":"PlaceOrderRequest","href":"/predictions/types/place-order-request"},{"title":"PlaceOrderResponse","href":"/predictions/types/place-order-response"},{"title":"Position","href":"/predictions/types/position"},{"title":"PositionDetail","href":"/predictions/types/position-detail"},{"title":"Transaction","href":"/predictions/types/transaction"},{"title":"Settlement","href":"/predictions/types/settlement"},{"title":"FeeInfo","href":"/predictions/types/fee-info"}]}]}]},"basePath":"","title":"Get a position by market - Splash API","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}