{"openapi":"3.1.0","info":{"title":"Statbotics REST API","description":"The REST API for Statbotics. Please be nice to our servers! If you are looking to do large-scale data science projects, use the CSV exports on the GitHub repo.","version":"3.0.0"},"paths":{"/v3/":{"get":{"summary":"Read Root","operationId":"read_root_v3__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v3/year/{year}":{"get":{"tags":["Year"],"summary":"Query a single year","description":"Returns a single Year object. Requires a four-digit year, e.g. `2019`.","operationId":"read_year_v3_year__year__get","parameters":[{"name":"year","in":"path","required":true,"schema":{"type":"integer","title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Year V3 Year  Year  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/years":{"get":{"tags":["Year"],"summary":"Query multiple years","operationId":"read_years_v3_years_get","parameters":[{"name":"metric","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"How to sort the returned values. Any column in the table is valid.","title":"Metric"},"description":"How to sort the returned values. Any column in the table is valid."},{"name":"ascending","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether to sort the returned values in ascending order. Default is ascending","title":"Ascending"},"description":"Whether to sort the returned values in ascending order. Default is ascending"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000,"minimum":1},{"type":"null"}],"description":"Maximum number of events to return. Default is 1000.","title":"Limit"},"description":"Maximum number of events to return. Default is 1000."},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Offset from the first result to return.","title":"Offset"},"description":"Offset from the first result to return."}],"responses":{"200":{"description":"Returns a list of Years since 2002. Older data is not available.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Read Years V3 Years Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/team/{team}":{"get":{"tags":["Team"],"summary":"Query a single team","description":"Returns a single Team object. Requires a team number (no prefix).","operationId":"read_team_v3_team__team__get","parameters":[{"name":"team","in":"path","required":true,"schema":{"type":"integer","title":"Team"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Team V3 Team  Team  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/teams":{"get":{"tags":["Team"],"summary":"Query multiple teams","description":"Returns up to 1000 teams at a time. Specify limit and offset to page through results.","operationId":"read_teams_v3_teams_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Capitalized country name, e.g. `USA` or `Canada`.","title":"Country"},"description":"Capitalized country name, e.g. `USA` or `Canada`."},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Capitalized two-letter state code, e.g. `NC`.","title":"State"},"description":"Capitalized two-letter state code, e.g. `NC`."},{"name":"district","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One of [`ca`, `fch`, `fim`, `fin`, `fit`, `fma`, `fnc`, `fsc`, `isr`, `ne`, `ont`, `pch`, `pnw`, `win`]","title":"District"},"description":"One of [`ca`, `fch`, `fim`, `fin`, `fit`, `fma`, `fnc`, `fsc`, `isr`, `ne`, `ont`, `pch`, `pnw`, `win`]"},{"name":"active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the team has played in the last year.","title":"Active"},"description":"Whether the team has played in the last year."},{"name":"metric","in":"query","required":false,"schema":{"type":"string","description":"How to sort the returned values. Any column in the table is valid.","title":"Metric"},"description":"How to sort the returned values. Any column in the table is valid."},{"name":"ascending","in":"query","required":false,"schema":{"type":"boolean","description":"Whether to sort the returned values in ascending order. Default is ascending","title":"Ascending"},"description":"Whether to sort the returned values in ascending order. Default is ascending"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum number of events to return. Default is 1000.","title":"Limit"},"description":"Maximum number of events to return. Default is 1000."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Offset from the first result to return.","title":"Offset"},"description":"Offset from the first result to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Read Teams V3 Teams Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/team_year/{team}/{year}":{"get":{"tags":["TeamYear"],"summary":"Query a single team year","description":"Returns a single Team Year object. Requires a team number and year.","operationId":"read_team_year_v3_team_year__team___year__get","parameters":[{"name":"team","in":"path","required":true,"schema":{"type":"integer","title":"Team"}},{"name":"year","in":"path","required":true,"schema":{"type":"integer","title":"Year"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Team Year V3 Team Year  Team   Year  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/team_years":{"get":{"tags":["TeamYear"],"summary":"Query multiple team years","description":"Returns up to 1000 team years at a time. Specify limit and offset to page through results.","operationId":"read_team_years_v3_team_years_get","parameters":[{"name":"team","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0,"exclusiveMaximum":100000},{"type":"null"}],"description":"Team number (no prefix), e.g. 5511.","title":"Team"},"description":"Team number (no prefix), e.g. 5511."},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2026,"minimum":2002},{"type":"null"}],"description":"Four-digit year","title":"Year"},"description":"Four-digit year"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Capitalized country name, e.g. `USA` or `Canada`.","title":"Country"},"description":"Capitalized country name, e.g. `USA` or `Canada`."},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Capitalized two-letter state code, e.g. `NC`.","title":"State"},"description":"Capitalized two-letter state code, e.g. `NC`."},{"name":"district","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One of [`ca`, `fch`, `fim`, `fin`, `fit`, `fma`, `fnc`, `fsc`, `isr`, `ne`, `ont`, `pch`, `pnw`, `win`]","title":"District"},"description":"One of [`ca`, `fch`, `fim`, `fin`, `fit`, `fma`, `fnc`, `fsc`, `isr`, `ne`, `ont`, `pch`, `pnw`, `win`]"},{"name":"metric","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"How to sort the returned values. Any column in the table is valid.","title":"Metric"},"description":"How to sort the returned values. Any column in the table is valid."},{"name":"ascending","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether to sort the returned values in ascending order. Default is ascending","title":"Ascending"},"description":"Whether to sort the returned values in ascending order. Default is ascending"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000,"minimum":1},{"type":"null"}],"description":"Maximum number of events to return. Default is 1000.","title":"Limit"},"description":"Maximum number of events to return. Default is 1000."},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Offset from the first result to return.","title":"Offset"},"description":"Offset from the first result to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Read Team Years V3 Team Years Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/event/{event}":{"get":{"tags":["Event"],"summary":"Query a single event","description":"Returns a single Event object. Requires an event key, e.g. `2019ncwak`.","operationId":"read_event_v3_event__event__get","parameters":[{"name":"event","in":"path","required":true,"schema":{"type":"string","title":"Event"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Event V3 Event  Event  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/events":{"get":{"tags":["Event"],"summary":"Query multiple events","description":"Returns up to 1000 events at a time. Specify limit and offset to page through results.","operationId":"read_events_v3_events_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2026,"minimum":2002},{"type":"null"}],"description":"Four-digit year","title":"Year"},"description":"Four-digit year"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Capitalized country name, e.g. `USA` or `Canada`.","title":"Country"},"description":"Capitalized country name, e.g. `USA` or `Canada`."},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Capitalized two-letter state code, e.g. `NC`.","title":"State"},"description":"Capitalized two-letter state code, e.g. `NC`."},{"name":"district","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One of [`ca`, `fch`, `fim`, `fin`, `fit`, `fma`, `fnc`, `fsc`, `isr`, `ne`, `ont`, `pch`, `pnw`, `win`]","title":"District"},"description":"One of [`ca`, `fch`, `fim`, `fin`, `fit`, `fma`, `fnc`, `fsc`, `isr`, `ne`, `ont`, `pch`, `pnw`, `win`]"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One of [`regional`, `district`, `district_cmp`, `champs_div`, or `einstein`].","title":"Type"},"description":"One of [`regional`, `district`, `district_cmp`, `champs_div`, or `einstein`]."},{"name":"week","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":8,"minimum":0},{"type":"null"}],"description":"Week of the competition season. 8 is CMP","title":"Week"},"description":"Week of the competition season. 8 is CMP"},{"name":"metric","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"How to sort the returned values. Any column in the table is valid.","title":"Metric"},"description":"How to sort the returned values. Any column in the table is valid."},{"name":"ascending","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether to sort the returned values in ascending order. Default is ascending","title":"Ascending"},"description":"Whether to sort the returned values in ascending order. Default is ascending"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000,"minimum":1},{"type":"null"}],"description":"Maximum number of events to return. Default is 1000.","title":"Limit"},"description":"Maximum number of events to return. Default is 1000."},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Offset from the first result to return.","title":"Offset"},"description":"Offset from the first result to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Read Events V3 Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/team_event/{team}/{event}":{"get":{"tags":["TeamEvent"],"summary":"Query a single team event","description":"Returns a single Team Event object. Requires a team number and event key, e.g. `5511` and `2019ncwak`.","operationId":"read_team_event_v3_team_event__team___event__get","parameters":[{"name":"team","in":"path","required":true,"schema":{"type":"integer","title":"Team"}},{"name":"event","in":"path","required":true,"schema":{"type":"string","title":"Event"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Team Event V3 Team Event  Team   Event  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/team_events":{"get":{"tags":["TeamEvent"],"summary":"Query multiple team events","description":"Returns up to 1000 team events at a time. Specify limit and offset to page through results.","operationId":"read_team_events_v3_team_events_get","parameters":[{"name":"team","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0,"exclusiveMaximum":100000},{"type":"null"}],"description":"Team number (no prefix), e.g. 5511.","title":"Team"},"description":"Team number (no prefix), e.g. 5511."},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2026,"minimum":2002},{"type":"null"}],"description":"Four-digit year","title":"Year"},"description":"Four-digit year"},{"name":"event","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Event key, e.g. `2019ncwak`.","title":"Event"},"description":"Event key, e.g. `2019ncwak`."},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Capitalized country name, e.g. `USA` or `Canada`.","title":"Country"},"description":"Capitalized country name, e.g. `USA` or `Canada`."},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Capitalized two-letter state code, e.g. `NC`.","title":"State"},"description":"Capitalized two-letter state code, e.g. `NC`."},{"name":"district","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One of [`ca`, `fch`, `fim`, `fin`, `fit`, `fma`, `fnc`, `fsc`, `isr`, `ne`, `ont`, `pch`, `pnw`, `win`]","title":"District"},"description":"One of [`ca`, `fch`, `fim`, `fin`, `fit`, `fma`, `fnc`, `fsc`, `isr`, `ne`, `ont`, `pch`, `pnw`, `win`]"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"One of [`regional`, `district`, `district_cmp`, `champs_div`, or `einstein`].","title":"Type"},"description":"One of [`regional`, `district`, `district_cmp`, `champs_div`, or `einstein`]."},{"name":"week","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":8,"minimum":0},{"type":"null"}],"description":"Week of the competition season. 8 is CMP","title":"Week"},"description":"Week of the competition season. 8 is CMP"},{"name":"metric","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"How to sort the returned values. Any column in the table is valid.","title":"Metric"},"description":"How to sort the returned values. Any column in the table is valid."},{"name":"ascending","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether to sort the returned values in ascending order. Default is ascending","title":"Ascending"},"description":"Whether to sort the returned values in ascending order. Default is ascending"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000,"minimum":1},{"type":"null"}],"description":"Maximum number of events to return. Default is 1000.","title":"Limit"},"description":"Maximum number of events to return. Default is 1000."},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Offset from the first result to return.","title":"Offset"},"description":"Offset from the first result to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Read Team Events V3 Team Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/match/{match}":{"get":{"tags":["Match"],"summary":"Query a single match","description":"Returns a single Match object. Requires a match key, e.g. `2019ncwak_f1m1`.","operationId":"read_match_v3_match__match__get","parameters":[{"name":"match","in":"path","required":true,"schema":{"type":"string","title":"Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Read Match V3 Match  Match  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/matches":{"get":{"tags":["Match"],"summary":"Query multiple matches","description":"Returns up to 1000 matches at a time. Specify limit and offset to page through results.","operationId":"read_matches_v3_matches_get","parameters":[{"name":"team","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0,"exclusiveMaximum":100000},{"type":"null"}],"description":"Team number (no prefix), e.g. 5511.","title":"Team"},"description":"Team number (no prefix), e.g. 5511."},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2026,"minimum":2002},{"type":"null"}],"description":"Four-digit year","title":"Year"},"description":"Four-digit year"},{"name":"event","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Event key, e.g. `2019ncwak`.","title":"Event"},"description":"Event key, e.g. `2019ncwak`."},{"name":"week","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":8,"minimum":0},{"type":"null"}],"description":"Week of the competition season. 8 is CMP","title":"Week"},"description":"Week of the competition season. 8 is CMP"},{"name":"elim","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the match is an elimination match.","title":"Elim"},"description":"Whether the match is an elimination match."},{"name":"metric","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"How to sort the returned values. Any column in the table is valid.","title":"Metric"},"description":"How to sort the returned values. Any column in the table is valid."},{"name":"ascending","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether to sort the returned values in ascending order. Default is ascending","title":"Ascending"},"description":"Whether to sort the returned values in ascending order. Default is ascending"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000,"minimum":1},{"type":"null"}],"description":"Maximum number of events to return. Default is 1000.","title":"Limit"},"description":"Maximum number of events to return. Default is 1000."},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"description":"Offset from the first result to return.","title":"Offset"},"description":"Offset from the first result to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response Read Matches V3 Matches Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}