{"openapi":"3.1.0","info":{"title":"Gematria Numbers API","description":"\nPublic read-only API for gematria calculation, reverse lookup and sports\nresearch. Every endpoint the website uses is available here, backed by the\nsame service layer, so the site and the API can never drift apart.\n\n## MCP\n\nAI clients can discover these capabilities as tools through the free,\nread-only [Gematria Numbers MCP server](https://gematrianumbers.com/mcp).\nIt uses Streamable HTTP and requires no authentication.\n\n## Authentication\n\nAuthentication is **optional**. Anonymous requests are allowed at the\nanonymous quota; sending an API key raises the quota and makes usage visible\non your account page.\n\n```\ncurl -H \"X-API-Key: gn_live_...\" https://gematrianumbers.com/api/v1/calculate?text=Aaron+Judge\n```\n\nCreate and revoke keys at `/account/api-keys` while signed in.\n\n## Quotas\n\n| Tier | Requests/minute | Requests/day |\n|------|-----------------|--------------|\n| anonymous | 30 | 1,000 |\n| free | 120 | 25,000 |\n| paid | 1,200 | 1,000,000 |\n\nAll tiers are free of charge today. Exceeding a quota returns `429` with an\n`error.code` of `rate_limited`.\n\n## Errors\n\nEvery non-2xx response uses one envelope:\n\n```json\n{\"error\": {\"code\": \"validation_error\", \"message\": \"...\", \"details\": {},\n           \"request_id\": \"...\"}}\n```\n\nBranch on `error.code`, not on the HTTP status. Quote `request_id` (also\nreturned in the `X-Request-ID` header on every response) when reporting a\nproblem.\n\n## Pagination\n\nList endpoints accept `limit` and `cursor` and return a `page` block:\n\n```json\n{\"page\": {\"limit\": 50, \"next_cursor\": \"b2Zmc2V0OjUw\", \"has_more\": true}}\n```\n\nFollow `page.next_cursor` until it is `null`. Treat the cursor as opaque.\n","version":"1.0.0","contact":{"name":"Gematria Numbers","url":"https://gematrianumbers.com"}},"paths":{"/api/v1":{"get":{"tags":["api-v1"],"summary":"API version info","operationId":"api_info_api_v1_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiInfo"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/ciphers":{"get":{"tags":["api-v1"],"summary":"List supported ciphers","operationId":"get_ciphers_api_v1_ciphers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CipherList"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/calculate":{"get":{"tags":["api-v1"],"summary":"Calculate gematria","operationId":"get_calculate_api_v1_calculate_get","parameters":[{"name":"text","in":"query","required":true,"schema":{"type":"string","description":"Phrase to calculate.","title":"Text"},"description":"Phrase to calculate."},{"name":"cipher","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Repeatable cipher id filter. Omit for all ciphers.","title":"Cipher"},"description":"Repeatable cipher id filter. Omit for all ciphers."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}},"post":{"tags":["api-v1"],"summary":"Calculate gematria","operationId":"post_calculate_api_v1_calculate_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalculateResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/calculate/batch":{"post":{"tags":["api-v1"],"summary":"Calculate gematria for many phrases","operationId":"post_calculate_batch_api_v1_calculate_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCalculateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCalculateResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/search":{"get":{"tags":["api-v1"],"summary":"Search dictionary terms by text","operationId":"get_search_api_v1_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Text to search for within terms.","title":"Q"},"description":"Text to search for within terms."},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional category filter.","title":"Category"},"description":"Optional category filter."},{"name":"sport","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional league filter.","title":"Sport"},"description":"Optional league filter."},{"name":"cipher","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Repeatable cipher id filter.","title":"Cipher"},"description":"Repeatable cipher id filter."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Page size, 1-500. Defaults to 50.","title":"Limit"},"description":"Page size, 1-500. Defaults to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor from a previous response's page.next_cursor.","title":"Cursor"},"description":"Opaque cursor from a previous response's page.next_cursor."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/app__api__v1__schemas__SearchResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/number/{value}":{"get":{"tags":["api-v1"],"summary":"Terms matching a number","operationId":"get_number_api_v1_number__value__get","parameters":[{"name":"value","in":"path","required":true,"schema":{"type":"integer","description":"Numeric gematria value to match.","title":"Value"},"description":"Numeric gematria value to match."},{"name":"cipher","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Repeatable cipher id filter.","title":"Cipher"},"description":"Repeatable cipher id filter."},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"sport","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sport"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Page size, 1-500. Defaults to 50.","title":"Limit"},"description":"Page size, 1-500. Defaults to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor from a previous response's page.next_cursor.","title":"Cursor"},"description":"Opaque cursor from a previous response's page.next_cursor."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReverseLookupResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/phrase/{text}":{"get":{"tags":["api-v1"],"summary":"Terms matching a phrase's values","operationId":"get_phrase_api_v1_phrase__text__get","parameters":[{"name":"text","in":"path","required":true,"schema":{"type":"string","description":"Phrase whose cipher values are the match targets.","title":"Text"},"description":"Phrase whose cipher values are the match targets."},{"name":"cipher","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"Repeatable cipher id filter.","title":"Cipher"},"description":"Repeatable cipher id filter."},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"sport","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sport"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Page size, 1-500. Defaults to 50.","title":"Limit"},"description":"Page size, 1-500. Defaults to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor from a previous response's page.next_cursor.","title":"Cursor"},"description":"Opaque cursor from a previous response's page.next_cursor."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReverseLookupResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/compare":{"post":{"tags":["api-v1"],"summary":"Compare phrases for shared cipher values","operationId":"post_compare_api_v1_compare_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/sports":{"get":{"tags":["api-v1"],"summary":"Supported leagues","operationId":"get_sports_api_v1_sports_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SportList"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/sports/{league}/players":{"get":{"tags":["api-v1"],"summary":"Search players in a league","operationId":"get_players_api_v1_sports__league__players_get","parameters":[{"name":"league","in":"path","required":true,"schema":{"type":"string","description":"League id, e.g. 'MLB'.","title":"League"},"description":"League id, e.g. 'MLB'."},{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Full or partial player name.","title":"Q"},"description":"Full or partial player name."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Page size, 1-500. Defaults to 50.","title":"Limit"},"description":"Page size, 1-500. Defaults to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor from a previous response's page.next_cursor.","title":"Cursor"},"description":"Opaque cursor from a previous response's page.next_cursor."},{"name":"include_gematria","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Gematria"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlayerSearchResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/sports/{league}/teams":{"get":{"tags":["api-v1"],"summary":"Search teams in a league","operationId":"get_teams_api_v1_sports__league__teams_get","parameters":[{"name":"league","in":"path","required":true,"schema":{"type":"string","description":"League id, e.g. 'MLB'.","title":"League"},"description":"League id, e.g. 'MLB'."},{"name":"q","in":"query","required":true,"schema":{"type":"string","description":"Team name, city, nickname or abbreviation.","title":"Q"},"description":"Team name, city, nickname or abbreviation."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Page size, 1-500. Defaults to 50.","title":"Limit"},"description":"Page size, 1-500. Defaults to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor from a previous response's page.next_cursor.","title":"Cursor"},"description":"Opaque cursor from a previous response's page.next_cursor."},{"name":"include_gematria","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Gematria"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamSearchResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/sports/{league}/games":{"get":{"tags":["api-v1"],"summary":"Slate for a date, with gematria","operationId":"get_games_api_v1_sports__league__games_get","parameters":[{"name":"league","in":"path","required":true,"schema":{"type":"string","description":"League id, e.g. 'MLB'.","title":"League"},"description":"League id, e.g. 'MLB'."},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date. Omit for today.","title":"Date"},"description":"ISO date. Omit for today."},{"name":"team","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional team filter.","title":"Team"},"description":"Optional team filter."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Page size, 1-500. Defaults to 50.","title":"Limit"},"description":"Page size, 1-500. Defaults to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor from a previous response's page.next_cursor.","title":"Cursor"},"description":"Opaque cursor from a previous response's page.next_cursor."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GamesResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/sports/{league}/research":{"get":{"tags":["api-v1"],"summary":"Generated notes for a date","operationId":"get_research_api_v1_sports__league__research_get","parameters":[{"name":"league","in":"path","required":true,"schema":{"type":"string","description":"League id, e.g. 'MLB'.","title":"League"},"description":"League id, e.g. 'MLB'."},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date. Omit for today.","title":"Date"},"description":"ISO date. Omit for today."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/sports/{league}/predictions":{"get":{"tags":["api-v1"],"summary":"Model home-run picks","operationId":"get_predictions_api_v1_sports__league__predictions_get","parameters":[{"name":"league","in":"path","required":true,"schema":{"type":"string","description":"League id. Predictions are MLB-only today.","title":"League"},"description":"League id. Predictions are MLB-only today."},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date. Omit for today.","title":"Date"},"description":"ISO date. Omit for today."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Page size, 1-500. Defaults to 50.","title":"Limit"},"description":"Page size, 1-500. Defaults to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor from a previous response's page.next_cursor.","title":"Cursor"},"description":"Opaque cursor from a previous response's page.next_cursor."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PredictionsResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/sports/{league}/patterns":{"get":{"tags":["api-v1"],"summary":"All-time pattern performance","operationId":"get_patterns_api_v1_sports__league__patterns_get","parameters":[{"name":"league","in":"path","required":true,"schema":{"type":"string","description":"League id, e.g. 'MLB'.","title":"League"},"description":"League id, e.g. 'MLB'."},{"name":"pattern_family","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pattern Family"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Page size, 1-500. Defaults to 50.","title":"Limit"},"description":"Page size, 1-500. Defaults to 50."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Opaque cursor from a previous response's page.next_cursor.","title":"Cursor"},"description":"Opaque cursor from a previous response's page.next_cursor."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatternsResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/stats":{"get":{"tags":["api-v1"],"summary":"Data-set coverage statistics","operationId":"get_stats_api_v1_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResult"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}},"/api/v1/sports/MLB/players/{player_id}/hr-chain":{"get":{"tags":["api-v1"],"summary":"MLB player date/opponent gematria chain and next-five PA outcome","operationId":"get_mlb_player_hr_chain_api_v1_sports_MLB_players__player_id__hr_chain_get","parameters":[{"name":"player_id","in":"path","required":true,"schema":{"type":"string","description":"MLB player ID.","title":"Player Id"},"description":"MLB player ID."},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date. Omit for today.","title":"Date"},"description":"ISO date. Omit for today."},{"name":"hr_target","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Optional HR target number.","title":"Hr Target"},"description":"Optional HR target number."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Mlb Player Hr Chain Api V1 Sports Mlb Players  Player Id  Hr Chain Get"}}}},"401":{"description":"Invalid or revoked API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"403":{"description":"Key lacks the required scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"422":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"429":{"description":"Quota or rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}}}}},"components":{"schemas":{"ApiErrorBody":{"properties":{"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"}},"type":"object","required":["code","message"],"title":"ApiErrorBody"},"ApiErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/ApiErrorBody"}},"type":"object","required":["error"],"title":"ApiErrorResponse"},"ApiInfo":{"properties":{"version":{"type":"string","title":"Version"},"status":{"type":"string","title":"Status"},"docs_url":{"type":"string","title":"Docs Url"}},"type":"object","required":["version","status","docs_url"],"title":"ApiInfo"},"ApiKeyCreated":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix","description":"Leading fragment, for identification only."},"tier":{"type":"string","title":"Tier"},"revoked":{"type":"boolean","title":"Revoked"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"quota_per_minute":{"type":"integer","title":"Quota Per Minute"},"quota_per_day":{"type":"integer","title":"Quota Per Day"},"key":{"type":"string","title":"Key","description":"The full key. Shown once — it is not recoverable afterwards."}},"type":"object","required":["id","name","key_prefix","tier","revoked","created_at","quota_per_minute","quota_per_day","key"],"title":"ApiKeyCreated"},"ApiKeyOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"key_prefix":{"type":"string","title":"Key Prefix","description":"Leading fragment, for identification only."},"tier":{"type":"string","title":"Tier"},"revoked":{"type":"boolean","title":"Revoked"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"quota_per_minute":{"type":"integer","title":"Quota Per Minute"},"quota_per_day":{"type":"integer","title":"Quota Per Day"}},"type":"object","required":["id","name","key_prefix","tier","revoked","created_at","quota_per_minute","quota_per_day"],"title":"ApiKeyOut"},"BatchCalculateRequest":{"properties":{"texts":{"items":{"type":"string"},"type":"array","title":"Texts","description":"Up to 100 phrases to calculate."},"ciphers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ciphers"}},"type":"object","required":["texts"],"title":"BatchCalculateRequest"},"BatchCalculateResult":{"properties":{"results":{"items":{"$ref":"#/components/schemas/CalculateResult"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"BatchCalculateResult"},"CalculateRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Phrase to calculate."},"ciphers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ciphers","description":"Subset of cipher ids. Omit for all supported ciphers."}},"type":"object","required":["text"],"title":"CalculateRequest"},"CalculateResult":{"properties":{"text":{"type":"string","title":"Text"},"values":{"additionalProperties":{"type":"integer"},"type":"object","title":"Values","description":"Cipher id -> gematria value."}},"type":"object","required":["text","values"],"title":"CalculateResult"},"ChecklistIn":{"properties":{"index":{"type":"integer","minimum":0.0,"title":"Index"}},"type":"object","required":["index"],"title":"ChecklistIn"},"CheckoutIn":{"properties":{"plan_key":{"type":"string","title":"Plan Key"}},"type":"object","required":["plan_key"],"title":"CheckoutIn"},"Cipher":{"properties":{"id":{"type":"string","title":"Id","description":"Stable cipher identifier, e.g. 'ordinal'."},"name":{"type":"string","title":"Name","description":"Human-readable cipher name."},"core":{"type":"boolean","title":"Core","description":"True for the four ciphers the site leads with."}},"type":"object","required":["id","name","core"],"title":"Cipher"},"CipherList":{"properties":{"ciphers":{"items":{"$ref":"#/components/schemas/Cipher"},"type":"array","title":"Ciphers"}},"type":"object","required":["ciphers"],"title":"CipherList"},"ClipSubmission":{"properties":{"sport":{"type":"string","maxLength":16,"title":"Sport"},"event_key":{"type":"string","maxLength":255,"title":"Event Key"},"clips":{"items":{"$ref":"#/components/schemas/ScrapedClip"},"type":"array","maxItems":10,"title":"Clips"}},"type":"object","required":["sport","event_key","clips"],"title":"ClipSubmission"},"CloseIn":{"properties":{"reason":{"type":"string","enum":["completed","not_planned"],"title":"Reason","default":"completed"},"note":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Note"}},"type":"object","title":"CloseIn"},"CommentIn":{"properties":{"body":{"type":"string","maxLength":65536,"minLength":1,"title":"Body"}},"type":"object","required":["body"],"title":"CommentIn"},"CompareRequest":{"properties":{"texts":{"items":{"type":"string"},"type":"array","title":"Texts","description":"2-10 phrases to compare."},"ciphers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ciphers","description":"Subset of cipher ids. Omit for all supported ciphers."}},"type":"object","required":["texts"],"title":"CompareRequest"},"CompareResult":{"properties":{"texts":{"items":{"type":"string"},"type":"array","title":"Texts"},"ciphers":{"items":{"type":"string"},"type":"array","title":"Ciphers"},"values":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object","title":"Values","description":"Phrase -> cipher id -> gematria value."},"matches":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Matches","description":"Cipher values shared by two or more of the phrases."},"match_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Match Count","description":"Number of shared cipher values."},"full_overlap":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Full Overlap","description":"Values shared by every phrase, not just some of them."}},"additionalProperties":true,"type":"object","required":["texts","ciphers","values","matches"],"title":"CompareResult"},"CreateIn":{"properties":{"title":{"type":"string","maxLength":250,"minLength":3,"title":"Title"},"body":{"type":"string","maxLength":65536,"title":"Body","default":""},"labels":{"items":{"type":"string"},"type":"array","maxItems":20,"title":"Labels"},"milestone":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Milestone"}},"type":"object","required":["title"],"title":"CreateIn"},"CreateKeyIn":{"properties":{"name":{"type":"string","maxLength":128,"title":"Name","default":""}},"type":"object","title":"CreateKeyIn"},"DateNumbers":{"properties":{"date":{"type":"string","title":"Date"},"doy":{"type":"integer","title":"Doy","default":0},"dliy":{"type":"integer","title":"Dliy","default":0},"dn1":{"type":"integer","title":"Dn1","default":0},"dn2":{"type":"integer","title":"Dn2","default":0},"dn3":{"type":"integer","title":"Dn3","default":0},"day":{"type":"integer","title":"Day","default":0},"month":{"type":"integer","title":"Month","default":0},"year":{"type":"integer","title":"Year","default":0},"day_of_week":{"type":"string","title":"Day Of Week","default":""},"day_ord":{"type":"string","title":"Day Ord","default":""},"month_name":{"type":"string","title":"Month Name","default":""},"planet":{"type":"string","title":"Planet","default":""},"sun_sign":{"type":"string","title":"Sun Sign","default":""},"moon_phase":{"type":"string","title":"Moon Phase","default":""},"moon_phase_pct":{"type":"number","title":"Moon Phase Pct","default":0.0},"moon_days":{"type":"number","title":"Moon Days","default":0.0},"moon_zodiac":{"type":"string","title":"Moon Zodiac","default":""},"chinese_zodiac":{"type":"string","title":"Chinese Zodiac","default":""},"card":{"type":"string","title":"Card","default":""},"card_value":{"type":"integer","title":"Card Value","default":0},"written_1":{"type":"integer","title":"Written 1","default":0},"written_2":{"type":"integer","title":"Written 2","default":0},"day_prime_rank":{"type":"integer","title":"Day Prime Rank","default":0},"day_triangular":{"type":"integer","title":"Day Triangular","default":0},"doy_prime_rank":{"type":"integer","title":"Doy Prime Rank","default":0},"doy_triangular":{"type":"integer","title":"Doy Triangular","default":0},"day_is_prime":{"type":"boolean","title":"Day Is Prime","default":false},"doy_is_prime":{"type":"boolean","title":"Doy Is Prime","default":false},"week":{"type":"integer","title":"Week","default":0},"weeks_left":{"type":"integer","title":"Weeks Left","default":0},"expanded_key":{"items":{"type":"integer"},"type":"array","title":"Expanded Key"},"key_numbers":{"items":{"type":"integer"},"type":"array","title":"Key Numbers"},"main_numbers":{"items":{"type":"integer"},"type":"array","title":"Main Numbers"},"extra_numbers":{"items":{"type":"integer"},"type":"array","title":"Extra Numbers"},"date_combos":{"items":{"type":"integer"},"type":"array","title":"Date Combos"},"date_combos_reduced":{"items":{"type":"integer"},"type":"array","title":"Date Combos Reduced"},"gematria":{"$ref":"#/components/schemas/GemValues"},"full_date_gematria":{"$ref":"#/components/schemas/GemValues"},"day_of_week_gematria":{"anyOf":[{"$ref":"#/components/schemas/GemValues"},{"type":"null"}]},"planet_gematria":{"anyOf":[{"$ref":"#/components/schemas/GemValues"},{"type":"null"}]}},"type":"object","required":["date"],"title":"DateNumbers"},"EmailIn":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"EmailIn"},"FeatureIn":{"properties":{"required_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Role"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"FeatureIn"},"FeatureOut":{"properties":{"feature_key":{"type":"string","title":"Feature Key"},"required_role":{"type":"string","title":"Required Role"},"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","required":["feature_key","required_role","enabled"],"title":"FeatureOut"},"GamesResult":{"properties":{"count":{"type":"integer","title":"Count","description":"Items in this page."},"total":{"type":"integer","title":"Total","description":"Items across all pages for this query."},"page":{"$ref":"#/components/schemas/PageInfo"},"sport":{"type":"string","title":"Sport"},"date":{"type":"string","title":"Date"},"total_matching":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Matching","description":"Rows matching before any team filter."},"games":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Games"}},"additionalProperties":true,"type":"object","required":["count","total","page","sport","date"],"title":"GamesResult"},"GemValues":{"properties":{"ordinal":{"type":"integer","title":"Ordinal","default":0},"reduction":{"type":"integer","title":"Reduction","default":0},"rev_ordinal":{"type":"integer","title":"Rev Ordinal","default":0},"rev_reduction":{"type":"integer","title":"Rev Reduction","default":0},"latin":{"type":"integer","title":"Latin","default":0},"chaldean":{"type":"integer","title":"Chaldean","default":0},"sumerian":{"type":"integer","title":"Sumerian","default":0},"ascii":{"type":"integer","title":"Ascii","default":0},"jewish":{"type":"integer","title":"Jewish","default":0}},"type":"object","title":"GemValues"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LabelIn":{"properties":{"label":{"type":"string","maxLength":100,"minLength":1,"title":"Label"}},"type":"object","required":["label"],"title":"LabelIn"},"LoginIn":{"properties":{"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"LoginIn"},"MembershipConfirmIn":{"properties":{"subscription_id":{"type":"string","title":"Subscription Id"},"plan_key":{"type":"string","title":"Plan Key"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["subscription_id","plan_key"],"title":"MembershipConfirmIn"},"NameGematria":{"properties":{"variant":{"type":"string","title":"Variant"},"text":{"type":"string","title":"Text"},"gematria":{"$ref":"#/components/schemas/GemValues"}},"type":"object","required":["variant","text"],"title":"NameGematria","description":"Gematria values for a name variant."},"NumberProperties":{"properties":{"is_prime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Prime"},"prime_rank":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prime Rank"},"is_composite":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Composite"}},"additionalProperties":true,"type":"object","title":"NumberProperties","description":"Open-ended by design — the number seeder adds properties over time."},"OwnershipIn":{"properties":{"owner":{"type":"string","enum":["Agent","Human"],"title":"Owner"}},"type":"object","required":["owner"],"title":"OwnershipIn"},"PageInfo":{"properties":{"limit":{"type":"integer","title":"Limit","description":"Maximum items returned in this response."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"Opaque cursor for the next page, or null when exhausted."},"has_more":{"type":"boolean","title":"Has More","description":"True when more items remain."}},"type":"object","required":["limit","has_more"],"title":"PageInfo"},"PatternsResult":{"properties":{"count":{"type":"integer","title":"Count","description":"Items in this page."},"total":{"type":"integer","title":"Total","description":"Items across all pages for this query."},"page":{"$ref":"#/components/schemas/PageInfo"},"sport":{"type":"string","title":"Sport"},"families":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Families"}},"additionalProperties":true,"type":"object","required":["count","total","page","sport"],"title":"PatternsResult"},"PayPalConfirmIn":{"properties":{"subscription_id":{"type":"string","title":"Subscription Id"},"plan_key":{"type":"string","title":"Plan Key"}},"type":"object","required":["subscription_id","plan_key"],"title":"PayPalConfirmIn"},"PickCreate":{"properties":{"sport":{"type":"string","title":"Sport"},"subject_type":{"type":"string","title":"Subject Type","default":"player"},"subject_id":{"type":"string","title":"Subject Id"},"subject_name":{"type":"string","title":"Subject Name"},"event_id":{"type":"string","title":"Event Id","default":""},"prop_type":{"type":"string","title":"Prop Type"},"prop_value":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Prop Value"},"direction":{"type":"string","title":"Direction","default":"over"},"confidence":{"type":"integer","title":"Confidence","default":1}},"type":"object","required":["sport","subject_id","subject_name","prop_type"],"title":"PickCreate"},"PickUpdate":{"properties":{"prop_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prop Type"},"prop_value":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Prop Value"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"},"confidence":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Confidence"}},"type":"object","title":"PickUpdate","description":"The parts of a pick a user may still change while the ticket is open.\n\nThe subject is fixed at add time — the whole point of one-click add is that\nyou commit to *who*, then refine *what* — so this never re-resolves the\nplayer, team or event."},"PlanOut":{"properties":{"plan_key":{"type":"string","title":"Plan Key"},"display_name":{"type":"string","title":"Display Name"},"price_cents":{"type":"integer","title":"Price Cents"},"interval":{"type":"string","title":"Interval"},"stripe_price_id":{"type":"string","title":"Stripe Price Id"},"paypal_plan_id":{"type":"string","title":"Paypal Plan Id"}},"type":"object","required":["plan_key","display_name","price_cents","interval","stripe_price_id","paypal_plan_id"],"title":"PlanOut"},"PlayerBio":{"properties":{"player_id":{"type":"string","title":"Player Id"},"sport":{"type":"string","title":"Sport"},"first_name":{"type":"string","title":"First Name","default":""},"middle_name":{"type":"string","title":"Middle Name","default":""},"last_name":{"type":"string","title":"Last Name","default":""},"display_name":{"type":"string","title":"Display Name","default":""},"nickname":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nickname"},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date"},"birth_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth City"},"birth_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth State"},"birth_country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Country"},"jersey_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jersey Number"},"position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position"},"position_full":{"type":"string","title":"Position Full","default":""},"team_id":{"type":"string","title":"Team Id","default":""},"team_name":{"type":"string","title":"Team Name","default":""},"team_abbr":{"type":"string","title":"Team Abbr","default":""},"headshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headshot Url"},"profile_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Profile Url"},"reference_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Url"},"basebal_ref_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Basebal Ref Url"},"team_profile_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Profile Url"},"team_espn_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Espn Url"},"team_source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Source Url"},"age_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Age Days"},"age_weeks":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Age Weeks"},"age_years":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Age Years"},"days_to_birthday":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days To Birthday"},"days_since_birthday":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Since Birthday"},"days_since_debut":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days Since Debut"},"day_of_week":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Day Of Week"},"day_planet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Day Planet"},"day_traits":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Day Traits"},"day_element":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Day Element"},"zodiac_sign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zodiac Sign"}},"type":"object","required":["player_id","sport"],"title":"PlayerBio"},"PlayerProfile":{"properties":{"bio":{"$ref":"#/components/schemas/PlayerBio"},"name_gematria":{"items":{"$ref":"#/components/schemas/NameGematria"},"type":"array","title":"Name Gematria"},"team_gematria":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Team Gematria"},"date_numbers":{"anyOf":[{"$ref":"#/components/schemas/DateNumbers"},{"type":"null"}]},"stats":{"$ref":"#/components/schemas/PlayerStats"},"today_game":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Today Game"},"venue_gematria":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Venue Gematria"},"opponent_gematria":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Opponent Gematria"},"stats_updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stats Updated At"},"matches":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Matches"},"profile_summary":{"additionalProperties":true,"type":"object","title":"Profile Summary"},"lookup_decode":{"items":{"type":"string"},"type":"array","title":"Lookup Decode"}},"type":"object","required":["bio"],"title":"PlayerProfile","description":"Full player profile with gematria, bio, and stats."},"PlayerSearchResult":{"properties":{"count":{"type":"integer","title":"Count","description":"Items in this page."},"total":{"type":"integer","title":"Total","description":"Items across all pages for this query."},"page":{"$ref":"#/components/schemas/PageInfo"},"query":{"type":"string","title":"Query"},"sport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sport"},"players":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Players"}},"additionalProperties":true,"type":"object","required":["count","total","page","query"],"title":"PlayerSearchResult"},"PlayerStats":{"properties":{"season":{"additionalProperties":{"type":"number"},"type":"object","title":"Season"},"career":{"additionalProperties":{"type":"number"},"type":"object","title":"Career"},"playoffs":{"additionalProperties":{"type":"number"},"type":"object","title":"Playoffs"},"vs_opponent":{"additionalProperties":{"type":"number"},"type":"object","title":"Vs Opponent"},"monthly":{"additionalProperties":{"type":"number"},"type":"object","title":"Monthly"}},"type":"object","title":"PlayerStats"},"PredictionsResult":{"properties":{"count":{"type":"integer","title":"Count","description":"Items in this page."},"total":{"type":"integer","title":"Total","description":"Items across all pages for this query."},"page":{"$ref":"#/components/schemas/PageInfo"},"sport":{"type":"string","title":"Sport"},"date":{"type":"string","title":"Date"},"model_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Version"},"picks":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Picks","description":"Ranked home-run picks."}},"additionalProperties":true,"type":"object","required":["count","total","page","sport","date"],"title":"PredictionsResult"},"PriorityIn":{"properties":{"priority":{"type":"string","maxLength":20,"title":"Priority","default":""}},"type":"object","title":"PriorityIn"},"ProfileIn":{"properties":{"display_name":{"type":"string","title":"Display Name","default":""},"avatar_url":{"type":"string","title":"Avatar Url","default":""},"bio":{"type":"string","title":"Bio","default":""}},"type":"object","title":"ProfileIn"},"ProjectIn":{"properties":{"project":{"type":"string","maxLength":100,"minLength":1,"title":"Project"},"from_project":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"From Project"}},"type":"object","required":["project"],"title":"ProjectIn"},"ReasonCreate":{"properties":{"reason_text":{"type":"string","title":"Reason Text"},"category":{"type":"string","title":"Category","default":"note"},"value":{"type":"string","title":"Value","default":""},"cipher":{"type":"string","title":"Cipher","default":""},"source_path":{"type":"string","title":"Source Path","default":""}},"type":"object","required":["reason_text"],"title":"ReasonCreate"},"RegisterIn":{"properties":{"username":{"type":"string","title":"Username","default":""},"email":{"type":"string","title":"Email"},"password":{"type":"string","title":"Password"}},"type":"object","required":["email","password"],"title":"RegisterIn"},"ReopenIn":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Reason"}},"type":"object","title":"ReopenIn"},"RescheduleIn":{"properties":{"milestone":{"type":"string","maxLength":100,"minLength":1,"title":"Milestone"},"note":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Note"}},"type":"object","required":["milestone"],"title":"RescheduleIn"},"ResearchResult":{"properties":{"sport":{"type":"string","title":"Sport"},"date":{"type":"string","title":"Date"},"available":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Available"},"generated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Generated At"}},"additionalProperties":true,"type":"object","required":["sport","date"],"title":"ResearchResult","description":"Generated notes. ``available`` is false when the day was never built."},"ResetPasswordIn":{"properties":{"token":{"type":"string","title":"Token"},"password":{"type":"string","title":"Password"}},"type":"object","required":["token","password"],"title":"ResetPasswordIn"},"ReverseLookupResult":{"properties":{"count":{"type":"integer","title":"Count","description":"Items in this page."},"total":{"type":"integer","title":"Total","description":"Items across all pages for this query."},"page":{"$ref":"#/components/schemas/PageInfo"},"query":{"$ref":"#/components/schemas/ReverseQuery"},"query_values":{"additionalProperties":{"type":"integer"},"type":"object","title":"Query Values"},"ciphers":{"items":{"type":"string"},"type":"array","title":"Ciphers"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"results":{"items":{"$ref":"#/components/schemas/TermMatch"},"type":"array","title":"Results"},"properties":{"anyOf":[{"$ref":"#/components/schemas/NumberProperties"},{"type":"null"}],"description":"Number facts. Present on /number/{value} only."}},"additionalProperties":true,"type":"object","required":["count","total","page","query","query_values","ciphers"],"title":"ReverseLookupResult"},"ReverseQuery":{"properties":{"kind":{"type":"string","title":"Kind","description":"'number' or 'phrase'."},"value":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Value"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"}},"type":"object","required":["kind"],"title":"ReverseQuery"},"ScrapedClip":{"properties":{"video_id":{"type":"string","title":"Video Id"},"duration_seconds":{"type":"number","title":"Duration Seconds"},"title":{"type":"string","title":"Title","default":""}},"type":"object","required":["video_id","duration_seconds"],"title":"ScrapedClip","description":"One YouTube result the companion extension found for a decode."},"SearchIn":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"payload":{"title":"Payload"}},"type":"object","required":["name","payload"],"title":"SearchIn"},"SearchResponse":{"properties":{"query":{"type":"string","title":"Query"},"sports":{"items":{"type":"string"},"type":"array","title":"Sports"},"results":{"items":{"$ref":"#/components/schemas/app__models__SearchResult"},"type":"array","title":"Results"},"total":{"type":"integer","title":"Total","default":0}},"type":"object","required":["query"],"title":"SearchResponse"},"ShareIn":{"properties":{"password":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Password"},"hide_query":{"type":"boolean","title":"Hide Query","default":false}},"type":"object","title":"ShareIn"},"SportList":{"properties":{"sports":{"items":{"type":"string"},"type":"array","title":"Sports"}},"type":"object","required":["sports"],"title":"SportList"},"StatsResult":{"properties":{},"additionalProperties":true,"type":"object","title":"StatsResult"},"StripeCheckoutIn":{"properties":{"plan_key":{"type":"string","title":"Plan Key"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["plan_key"],"title":"StripeCheckoutIn"},"StripeConfirmIn":{"properties":{"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["session_id"],"title":"StripeConfirmIn"},"TeamProfile":{"properties":{"team_id":{"type":"string","title":"Team Id"},"sport":{"type":"string","title":"Sport"},"full_name":{"type":"string","title":"Full Name"},"city":{"type":"string","title":"City","default":""},"nickname":{"type":"string","title":"Nickname","default":""},"abbreviation":{"type":"string","title":"Abbreviation","default":""},"logo_url":{"type":"string","title":"Logo Url","default":""},"venue_name":{"type":"string","title":"Venue Name","default":""},"venue_city":{"type":"string","title":"Venue City","default":""},"venue_state":{"type":"string","title":"Venue State","default":""},"founded_year":{"type":"string","title":"Founded Year","default":""},"league_name":{"type":"string","title":"League Name","default":""},"division_name":{"type":"string","title":"Division Name","default":""},"gematria":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object","title":"Gematria"},"roster":{"items":{"$ref":"#/components/schemas/app__models__SearchResult"},"type":"array","title":"Roster"},"espn_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Espn Url"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"city_profile":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"City Profile"}},"type":"object","required":["team_id","sport","full_name"],"title":"TeamProfile"},"TeamSearchResult":{"properties":{"count":{"type":"integer","title":"Count","description":"Items in this page."},"total":{"type":"integer","title":"Total","description":"Items across all pages for this query."},"page":{"$ref":"#/components/schemas/PageInfo"},"query":{"type":"string","title":"Query"},"sport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sport"},"teams":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Teams"}},"additionalProperties":true,"type":"object","required":["count","total","page","query"],"title":"TeamSearchResult"},"TermMatch":{"properties":{"term":{"type":"string","title":"Term"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"sport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sport"},"values":{"additionalProperties":{"type":"integer"},"type":"object","title":"Values","description":"Cipher id -> gematria value."}},"type":"object","required":["term","values"],"title":"TermMatch"},"TicketCreate":{"properties":{"ticket_date":{"type":"string","format":"date","title":"Ticket Date"},"name":{"type":"string","title":"Name","default":"My ticket"}},"type":"object","required":["ticket_date"],"title":"TicketCreate"},"TokenIn":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"TokenIn"},"UnlockIn":{"properties":{"password":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Password"}},"type":"object","title":"UnlockIn"},"UserOut":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"role":{"type":"string","title":"Role"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"display_name":{"type":"string","title":"Display Name","default":""},"avatar_url":{"type":"string","title":"Avatar Url","default":""},"bio":{"type":"string","title":"Bio","default":""},"email_verified":{"type":"boolean","title":"Email Verified","default":false}},"type":"object","required":["id","email","role"],"title":"UserOut"},"UsernameIn":{"properties":{"username":{"type":"string","maxLength":32,"minLength":3,"title":"Username"}},"type":"object","required":["username"],"title":"UsernameIn"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"app__api__v1__schemas__SearchResult":{"properties":{"count":{"type":"integer","title":"Count","description":"Items in this page."},"total":{"type":"integer","title":"Total","description":"Items across all pages for this query."},"page":{"$ref":"#/components/schemas/PageInfo"},"query":{"type":"string","title":"Query"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit","description":"Row cap applied by the service before paging."},"ciphers":{"items":{"type":"string"},"type":"array","title":"Ciphers"},"results":{"items":{"$ref":"#/components/schemas/TermMatch"},"type":"array","title":"Results"}},"additionalProperties":true,"type":"object","required":["count","total","page","query","ciphers"],"title":"SearchResult"},"app__models__SearchResult":{"properties":{"player_id":{"type":"string","title":"Player Id"},"sport":{"type":"string","title":"Sport"},"display_name":{"type":"string","title":"Display Name"},"first_name":{"type":"string","title":"First Name","default":""},"last_name":{"type":"string","title":"Last Name","default":""},"team_name":{"type":"string","title":"Team Name","default":""},"team_abbr":{"type":"string","title":"Team Abbr","default":""},"position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position"},"jersey_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jersey Number"},"headshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Headshot Url"},"gematria":{"additionalProperties":{"type":"integer"},"type":"object","title":"Gematria"},"slug":{"type":"string","title":"Slug","default":""},"key_stats":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Key Stats"},"searched_values":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Searched Values"},"overlap_count":{"type":"integer","title":"Overlap Count","default":0},"overlap_breakdown":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Overlap Breakdown"}},"type":"object","required":["player_id","sport","display_name"],"title":"SearchResult"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Optional. Raises your quota above the anonymous tier."}}},"security":[{},{"ApiKeyAuth":[]}],"servers":[{"url":"https://gematrianumbers.com","description":"Production"},{"url":"https://dev.gematrianumbers.com","description":"Development"}],"tags":[{"name":"api-v1","description":"Public read-only API, version 1."}]}