MCP 服务器

Shreddy

ai.shreddy/shreddy
媒体与内容 搜索与研究 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Searches public mountain-bike park clips and provides rider measurements, venue details, rankings, and clip metadata.

get_clip
Clip details
One public clip by id: where and when it was filmed, the rider if named, every measurement, how it was calibrated, and for a group clip (a train of riders) each rider with their own stats and link. A clip that is private, removed or does not exist all read as not found.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'anyOf': [{'type': 'integer', 'maximum': 2147483647, 'exclusiveMinimum': 0}, {'type': 'string', 'maxLength': 10, 'minLength': 1}], 'description': 'The clip id (the number in https://www.shreddy.ai/clips/<id>).'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'link', 'date', 'venue', 'run', 'feature', 'rider', 'is_train', 'riders_in_clip', 'measured', 'stats', 'rank', 'thumbnail', 'setup', 'members', 'message'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'run': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'date': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'rank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'setup': {'type': 'object', 'required': ['version', 'scale'], 'properties': {'scale': {'anyOf': [{'enum': ['measured_line', 'automatic'], 'type': 'string'}, {'type': 'null'}]}, 'version': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}}, 'additionalProperties': False}, 'stats': {'type': 'object', 'required': ['jump_height_m', 'jump_length_m', 'airtime_s', 'speed_kmh', 'speed_mph'], 'properties': {'airtime_s': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_kmh': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_mph': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_height_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_length_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'link'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feature': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'members': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'link', 'rider', 'measured', 'stats'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stats': {'type': 'object', 'required': ['jump_height_m', 'jump_length_m', 'airtime_s', 'speed_kmh', 'speed_mph'], 'properties': {'airtime_s': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_kmh': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_mph': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_height_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_length_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'measured': {'type': 'boolean'}}, 'additionalProperties': False}}, 'message': {'type': 'string'}, 'is_train': {'type': 'boolean'}, 'measured': {'type': 'boolean'}, 'thumbnail': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'riders_in_clip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
get_venue
Bike park details
Everything about one bike park in one call: its runs and their features (with clip counts), how many public clips and measured rides it has, its records (the top 3 public rides for jump height, jump length, airtime and speed, biggest first) and its newest clips, each with a link. `venue` is a name ("bradley", "snow summit") or an id.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['venue'], 'properties': {'venue': {'anyOf': [{'type': 'string', 'maxLength': 100, 'minLength': 1}, {'type': 'integer', 'maximum': 2147483647, 'exclusiveMinimum': 0}], 'description': 'A bike park name ("bradley", "Snow Summit") or its id.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'message', 'candidates', 'venue'], 'properties': {'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'city', 'state', 'link', 'clip_count', 'measured_count', 'runs', 'other_features', 'records', 'latest'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}, 'runs': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'features'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'features': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'type', 'clip_count'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'clip_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'latest': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'link', 'date', 'venue', 'run', 'feature', 'rider', 'is_train', 'riders_in_clip', 'measured', 'stats', 'rank', 'thumbnail'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'run': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'date': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'rank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stats': {'type': 'object', 'required': ['jump_height_m', 'jump_length_m', 'airtime_s', 'speed_kmh', 'speed_mph'], 'properties': {'airtime_s': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_kmh': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_mph': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_height_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_length_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'link'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feature': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_train': {'type': 'boolean'}, 'measured': {'type': 'boolean'}, 'thumbnail': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'riders_in_clip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'records': {'type': 'object', 'required': ['jump_height', 'jump_length', 'airtime', 'speed'], 'properties': {'speed': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'link', 'date', 'venue', 'run', 'feature', 'rider', 'is_train', 'riders_in_clip', 'measured', 'stats', 'rank', 'thumbnail'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'run': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'date': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'rank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stats': {'type': 'object', 'required': ['jump_height_m', 'jump_length_m', 'airtime_s', 'speed_kmh', 'speed_mph'], 'properties': {'airtime_s': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_kmh': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_mph': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_height_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_length_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'link'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feature': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_train': {'type': 'boolean'}, 'measured': {'type': 'boolean'}, 'thumbnail': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'riders_in_clip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'airtime': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'link', 'date', 'venue', 'run', 'feature', 'rider', 'is_train', 'riders_in_clip', 'measured', 'stats', 'rank', 'thumbnail'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'run': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'date': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'rank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stats': {'type': 'object', 'required': ['jump_height_m', 'jump_length_m', 'airtime_s', 'speed_kmh', 'speed_mph'], 'properties': {'airtime_s': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_kmh': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_mph': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_height_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_length_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'link'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feature': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_train': {'type': 'boolean'}, 'measured': {'type': 'boolean'}, 'thumbnail': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'riders_in_clip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'jump_height': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'link', 'date', 'venue', 'run', 'feature', 'rider', 'is_train', 'riders_in_clip', 'measured', 'stats', 'rank', 'thumbnail'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'run': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'date': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'rank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stats': {'type': 'object', 'required': ['jump_height_m', 'jump_length_m', 'airtime_s', 'speed_kmh', 'speed_mph'], 'properties': {'airtime_s': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_kmh': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_mph': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_height_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_length_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'link'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feature': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_train': {'type': 'boolean'}, 'measured': {'type': 'boolean'}, 'thumbnail': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'riders_in_clip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'jump_length': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'link', 'date', 'venue', 'run', 'feature', 'rider', 'is_train', 'riders_in_clip', 'measured', 'stats', 'rank', 'thumbnail'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'run': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'date': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'rank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stats': {'type': 'object', 'required': ['jump_height_m', 'jump_length_m', 'airtime_s', 'speed_kmh', 'speed_mph'], 'properties': {'airtime_s': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_kmh': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_mph': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_height_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_length_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'link'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feature': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_train': {'type': 'boolean'}, 'measured': {'type': 'boolean'}, 'thumbnail': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'riders_in_clip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'clip_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'measured_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'other_features': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'type', 'clip_count'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'name': {'type': 'string'}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'clip_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}}, 'additionalProperties': False}, {'type': 'null'}]}, 'status': {'enum': ['ok', 'ambiguous', 'no_match'], 'type': 'string'}, 'message': {'type': 'string'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'id', 'name', 'venue'], 'properties': {'id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'kind': {'enum': ['venue', 'run', 'feature', 'rider'], 'type': 'string'}, 'name': {'type': 'string'}, 'venue': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}}, 'additionalProperties': False}
list_venues
List bike parks
List the bike parks (venues) that have public Shreddy clips: name, city, state, how many clips and how many measured rides, the runs and features there, and a link. Filter by `query` (matches name, city or state) or sort nearest first with `near` (coordinates; for a place name like "San Diego", pass its approximate latitude and longitude). Distances come in km and miles. Use it for "what parks do you have" and to learn valid venue names.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'near': {'type': 'object', 'required': ['lat', 'long'], 'properties': {'lat': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'long': {'type': 'number', 'maximum': 180, 'minimum': -180}}, 'description': 'Sort by distance from this point (decimal degrees). For a city, pass its approximate coordinates.', 'additionalProperties': False}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'How many venues to return (1 to 25, default 25).'}, 'query': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Free text matched against venue name, city and state, e.g. "bradley" or "CA".'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['message', 'venues'], 'properties': {'venues': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'city', 'state', 'link', 'clip_count', 'measured_count', 'runs', 'features', 'distance_km', 'distance_mi'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'city': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}, 'runs': {'type': 'array', 'items': {'type': 'string'}}, 'state': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'features': {'type': 'array', 'items': {'type': 'string'}}, 'clip_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'distance_km': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'distance_mi': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'measured_count': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'message': {'type': 'string'}}, 'additionalProperties': False}
search_clips
Search clips
Search public clips. Newest first by default; sort "biggest" or "smallest" with a `metric` for the biggest jumps, longest jumps, most airtime or fastest runs (ranked results list each rider of a group clip on their own, and leave out rides with no value for that metric). Filter by `venue`, `feature` (a feature or a run at the venue, e.g. "double black" or "jump 2"), `rider`, and time (`when`, or `since`/`until`). A newest search includes clips with no measurements (normal: no calibration). Every clip has a link to give the viewer. Pass `next_cursor` back as `cursor`, with the same other arguments, for the next page.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sort': {'enum': ['newest', 'biggest', 'smallest'], 'type': 'string', 'description': 'newest (default), or biggest / smallest by `metric`. Giving a metric without a sort means biggest.'}, 'when': {'enum': ['today', 'week', 'month', 'all'], 'type': 'string', 'description': 'today = the last 24 hours, week = the last 7 days, month = the last 30 days, all (default). since/until override it.'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'How many clips (1 to 25, default 10).'}, 'rider': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': "A rider's name. Only riders who linked their account and allow it can be found."}, 'since': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}], 'description': 'Only clips filmed at or after this ISO date (2026-09-01) or datetime.'}, 'until': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$'}], 'description': 'Only clips filmed at or before this ISO date (the whole day counts) or datetime.'}, 'venue': {'anyOf': [{'type': 'string', 'maxLength': 100, 'minLength': 1}, {'type': 'integer', 'maximum': 2147483647, 'exclusiveMinimum': 0}], 'description': 'A bike park name ("bradley", "Snow Summit") or its id.'}, 'cursor': {'type': 'string', 'maxLength': 512, 'minLength': 1, 'description': 'The next_cursor from the previous page of the same search.'}, 'metric': {'enum': ['jump_height', 'jump_length', 'speed', 'airtime'], 'type': 'string', 'description': 'What to rank by: jump_height (default when ranked), jump_length, airtime, or speed.'}, 'feature': {'anyOf': [{'type': 'string', 'maxLength': 100, 'minLength': 1}, {'type': 'integer', 'maximum': 2147483647, 'exclusiveMinimum': 0}], 'description': 'A feature or a run at the venue, by name ("jump 2", "double black") or id. Works without a venue too.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'message', 'resolved', 'candidates', 'query', 'clips', 'total', 'next_cursor'], 'properties': {'clips': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'link', 'date', 'venue', 'run', 'feature', 'rider', 'is_train', 'riders_in_clip', 'measured', 'stats', 'rank', 'thumbnail'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'run': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'date': {'anyOf': [{'type': 'string', 'format': 'date', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$'}, {'type': 'null'}]}, 'link': {'type': 'string', 'minLength': 1}, 'rank': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stats': {'type': 'object', 'required': ['jump_height_m', 'jump_length_m', 'airtime_s', 'speed_kmh', 'speed_mph'], 'properties': {'airtime_s': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_kmh': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'speed_mph': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_height_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'jump_length_m': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'link'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feature': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_train': {'type': 'boolean'}, 'measured': {'type': 'boolean'}, 'thumbnail': {'anyOf': [{'type': 'string', 'minLength': 1}, {'type': 'null'}]}, 'riders_in_clip': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}}, 'query': {'type': 'object', 'required': ['sort', 'metric', 'since', 'until', 'limit'], 'properties': {'sort': {'enum': ['newest', 'biggest', 'smallest'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1}, 'since': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, {'type': 'null'}]}, 'until': {'anyOf': [{'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$'}, {'type': 'null'}]}, 'metric': {'anyOf': [{'enum': ['jump_height', 'jump_length', 'speed', 'airtime'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'total': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'status': {'enum': ['ok', 'ambiguous', 'no_match'], 'type': 'string'}, 'message': {'type': 'string'}, 'resolved': {'type': 'object', 'required': ['venue', 'run', 'feature', 'rider'], 'properties': {'run': {'anyOf': [{'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'rider': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'venue': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'link'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'link': {'type': 'string', 'minLength': 1}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'feature': {'anyOf': [{'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'name': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}}, 'additionalProperties': False}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'id', 'name', 'venue'], 'properties': {'id': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'kind': {'enum': ['venue', 'run', 'feature', 'rider'], 'type': 'string'}, 'name': {'type': 'string'}, 'venue': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}
已更改
get_clip
2026年10月1日 02:40
已添加
get_clip
2026年9月29日 02:40
已添加
search_clips
2026年9月29日 02:40
已添加
get_venue
2026年9月29日 02:40
已添加
list_venues
2026年9月29日 02:40