MLB API endpoint
Use Crawlora's MLB Discovery API to extract supported public MLB data as structured JSON. This page includes request parameters, cURL examples, response schema, error behavior, credit cost, and a Playground link for testing before integration.
/mlb/discoveryReturns MLB.com's live navigation tree, including hidden nodes labeled with visibility, and the MLB-only value sets for leagues, divisions, game types, roster types, standings types, stat groups, supported stat types, leader categories, MLB Pipeline prospect filters, league-stats hitter positions and player pools, and observed Baseball Savant leaderboard categories and filters including Expected Statistics, Outs Above Average, Arm Strength, Arm Value, Home Runs, and Sprint Speed. Use these values to discover sections and supported filters before calling MLB endpoints. Developers commonly use this endpoint for data enrichment, monitoring, research dashboards, internal automation, and agent-native workflows that need repeatable structured public web data. Authentication uses the documented Crawlora headers, and usage is metered with the credit cost shown on this page.
Request parameters are generated from the active endpoint catalog. Required values must be sent before Crawlora can call the upstream public web data source.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/mlb/discovery" \ -H "x-api-key: $CRAWLORA_API_KEY"
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
This endpoint is executed through Crawlora's managed scraping infrastructure.
Crawlora does not silently return bad data when the upstream page cannot be used.
| Status | Common failure case |
|---|---|
| 400 | Invalid input or missing required parameter |
| 429 | Plan or endpoint rate limit exceeded |
| 500 | Internal execution error |
| 502 | Upstream platform failed, returned unusable HTML, or served a challenge page that could not be resolved |
When possible, Crawlora returns structured error context so your integration can retry, back off, or inspect the request.
| Status | Description | Schema |
|---|---|---|
| 503 | Service Unavailable | #/definitions/app.Response |
{
"code": 200,
"msg": "OK",
"data": {
"sports": [
{
"id": 1,
"name": "Major League Baseball"
}
],
"leagues": [
{
"id": 103,
"name": "American League"
},
{
"id": 104,
"name": "National League"
}
],
"game_types": [
{
"value": "S",
"description": "Spring Training"
}
],
"stat_hitter_positions": [
{
"value": "C"
},
{
"value": "1B"
}
],
"stat_player_pools": [
{
"value": "QUALIFIED"
},
{
"value": "ALL"
}
],
"sections": [
{
"label": "News",
"url": "https://www.mlb.com/news"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/mlb.discoveryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | mlb.MLBDiscoveryResponse | No | ||||
| data.divisions | array | No | ||||
| data.divisions[].id | integer | No | ||||
| data.divisions[].name | string | No | ||||
| data.fetched_at | string | No | ||||
| data.game_types | array | No | ||||
| data.game_types[].description | string | No | ||||
| data.game_types[].value | string | No | ||||
| data.leader_categories | array | No | ||||
| data.leader_categories[].description | string | No | ||||
| data.leader_categories[].value | string | No | ||||
| data.leagues | array | No | ||||
| data.leagues[].id | integer | No | ||||
| data.leagues[].name | string | No | ||||
| data.prospect_date_ranges | array | No | ||||
| data.prospect_date_ranges[].description | string | No | ||||
| data.prospect_date_ranges[].value | string | No | ||||
| data.prospect_minimum_pa | array | No | ||||
| data.prospect_positions | array | No | ||||
| data.prospect_positions[].description | string | No | ||||
| data.prospect_positions[].value | string | No | ||||
| data.prospect_ranking_positions | array | No | ||||
| data.prospect_ranking_positions[].description | string | No | ||||
| data.prospect_ranking_positions[].value | string | No | ||||
| data.prospect_ranking_sort_directions | array | No | ||||
| data.prospect_ranking_sort_directions[].description | string | No | ||||
| data.prospect_ranking_sort_directions[].value | string | No | ||||
| data.prospect_ranking_sort_fields | array | No | ||||
| data.prospect_ranking_sort_fields[].description | string | No | ||||
| data.prospect_ranking_sort_fields[].value | string | No | ||||
| data.prospect_ranking_teams | array | No | ||||
| data.prospect_ranking_teams[].description | string | No | ||||
| data.prospect_ranking_teams[].value | string | No | ||||
| data.prospect_ranking_views | array | No | ||||
| data.prospect_ranking_views[].description | string | No | ||||
| data.prospect_ranking_views[].value | string | No | ||||
| data.prospect_ranking_years | array | No | ||||
| data.prospect_ranking_years[].description | string | No | ||||
| data.prospect_ranking_years[].value | string | No | ||||
| data.roster_types | array | No | ||||
| data.roster_types[].description | string | No | ||||
| data.roster_types[].value | string | No | ||||
| data.sections | array | No | ||||
| data.sections[].children | array | No | ||||
| data.sections[].label | string | No | ||||
| data.sections[].url | string | No | ||||
| data.sections[].visible | boolean | No | ||||
| data.source_url | string | No | ||||
| data.sports | array | No | ||||
| data.sports[].id | integer | No | ||||
| data.sports[].name | string | No | ||||
| data.standings_types | array | No | ||||
| data.standings_types[].description | string | No | ||||
| data.standings_types[].value | string | No | ||||
| data.stat_groups | array | No | ||||
| data.stat_groups[].description | string | No | ||||
| data.stat_groups[].value | string | No | ||||
| data.stat_hitter_positions | array | No | ||||
| data.stat_hitter_positions[].description | string | No | ||||
| data.stat_hitter_positions[].value | string | No | ||||
| data.stat_player_pools | array | No | ||||
| data.stat_player_pools[].description | string | No | ||||
| data.stat_player_pools[].value | string | No | ||||
| data.stat_types | array | No | ||||
| data.stat_types[].description | string | No | ||||
| data.stat_types[].value | string | No | ||||
| data.statcast_active_spin_hands | array | No | ||||
| data.statcast_active_spin_hands[].description | string | No | ||||
| data.statcast_active_spin_hands[].value | string | No | ||||
| data.statcast_active_spin_minimums | array | No | ||||
| data.statcast_active_spin_minimums[].description | string | No | ||||
| data.statcast_active_spin_minimums[].value | string | No | ||||
| data.statcast_active_spin_seasons | array | No | ||||
| data.statcast_active_spin_seasons[].description | string | No | ||||
| data.statcast_active_spin_seasons[].value | string | No | ||||
| data.statcast_active_spin_sort_directions | array | No | ||||
| data.statcast_active_spin_sort_directions[].description | string | No | ||||
| data.statcast_active_spin_sort_directions[].value | string | No | ||||
| data.statcast_active_spin_sort_fields | array | No | ||||
| data.statcast_active_spin_sort_fields[].description | string | No | ||||
| data.statcast_active_spin_sort_fields[].value | string | No | ||||
| data.statcast_arm_strength_min_throws | array | No | ||||
| data.statcast_arm_strength_min_throws[].description | string | No | ||||
| data.statcast_arm_strength_min_throws[].value | string | No | ||||
| data.statcast_arm_strength_positions | array | No | ||||
| data.statcast_arm_strength_positions[].description | string | No | ||||
| data.statcast_arm_strength_positions[].value | string | No | ||||
| data.statcast_arm_strength_sort_directions | array | No | ||||
| data.statcast_arm_strength_sort_directions[].description | string | No | ||||
| data.statcast_arm_strength_sort_directions[].value | string | No | ||||
| data.statcast_arm_strength_sort_fields | array | No | ||||
| data.statcast_arm_strength_sort_fields[].description | string | No | ||||
| data.statcast_arm_strength_sort_fields[].value | string | No | ||||
| data.statcast_arm_strength_team_ids | array | No | ||||
| data.statcast_arm_strength_team_ids[].description | string | No | ||||
| data.statcast_arm_strength_team_ids[].value | string | No | ||||
| data.statcast_arm_strength_types | array | No | ||||
| data.statcast_arm_strength_types[].description | string | No | ||||
| data.statcast_arm_strength_types[].value | string | No | ||||
| data.statcast_arm_strength_years | array | No | ||||
| data.statcast_arm_strength_years[].description | string | No | ||||
| data.statcast_arm_strength_years[].value | string | No | ||||
| data.statcast_arm_value_game_types | array | No | ||||
| data.statcast_arm_value_game_types[].description | string | No | ||||
| data.statcast_arm_value_game_types[].value | string | No | ||||
| data.statcast_arm_value_max_year | integer | No | ||||
| data.statcast_arm_value_min_year | integer | No | ||||
| data.statcast_arm_value_minimum_opportunities | array | No | ||||
| data.statcast_arm_value_minimum_opportunities[].description | string | No | ||||
| data.statcast_arm_value_minimum_opportunities[].value | string | No | ||||
| data.statcast_arm_value_situations | array | No | ||||
| data.statcast_arm_value_situations[].description | string | No | ||||
| data.statcast_arm_value_situations[].value | string | No | ||||
| data.statcast_arm_value_sort_directions | array | No | ||||
| data.statcast_arm_value_sort_directions[].description | string | No | ||||
| data.statcast_arm_value_sort_directions[].value | string | No | ||||
| data.statcast_arm_value_sort_fields | array | No | ||||
| data.statcast_arm_value_sort_fields[].description | string | No | ||||
| data.statcast_arm_value_sort_fields[].value | string | No | ||||
| data.statcast_arm_value_split_years | array | No | ||||
| data.statcast_arm_value_split_years[].description | string | No | ||||
| data.statcast_arm_value_split_years[].value | string | No | ||||
| data.statcast_arm_value_team_ids | array | No | ||||
| data.statcast_arm_value_team_ids[].description | string | No | ||||
| data.statcast_arm_value_team_ids[].value | string | No | ||||
| data.statcast_arm_value_types | array | No | ||||
| data.statcast_arm_value_types[].description | string | No | ||||
| data.statcast_arm_value_types[].value | string | No | ||||
| data.statcast_arm_value_with_team_only | array | No | ||||
| data.statcast_arm_value_with_team_only[].description | string | No | ||||
| data.statcast_arm_value_with_team_only[].value | string | No | ||||
| data.statcast_arm_value_years | array | No | ||||
| data.statcast_bat_tracking_attack_zones | array | No | ||||
| data.statcast_bat_tracking_attack_zones[].description | string | No | ||||
| data.statcast_bat_tracking_attack_zones[].value | string | No | ||||
| data.statcast_bat_tracking_bat_sides | array | No | ||||
| data.statcast_bat_tracking_bat_sides[].description | string | No | ||||
| data.statcast_bat_tracking_bat_sides[].value | string | No | ||||
| data.statcast_bat_tracking_contact_types | array | No | ||||
| data.statcast_bat_tracking_contact_types[].description | string | No | ||||
| data.statcast_bat_tracking_contact_types[].value | string | No | ||||
| data.statcast_bat_tracking_counts | array | No | ||||
| data.statcast_bat_tracking_counts[].description | string | No | ||||
| data.statcast_bat_tracking_counts[].value | string | No | ||||
| data.statcast_bat_tracking_game_types | array | No | ||||
| data.statcast_bat_tracking_game_types[].description | string | No | ||||
| data.statcast_bat_tracking_game_types[].value | string | No | ||||
| data.statcast_bat_tracking_group_by | array | No | ||||
| data.statcast_bat_tracking_group_by[].description | string | No | ||||
| data.statcast_bat_tracking_group_by[].value | string | No | ||||
| data.statcast_bat_tracking_hard_hit_values | array | No | ||||
| data.statcast_bat_tracking_hard_hit_values[].description | string | No | ||||
| data.statcast_bat_tracking_hard_hit_values[].value | string | No | ||||
| data.statcast_bat_tracking_min_group_swings | array | No | ||||
| data.statcast_bat_tracking_min_group_swings[].description | string | No | ||||
| data.statcast_bat_tracking_min_group_swings[].value | string | No | ||||
| data.statcast_bat_tracking_min_swings | array | No | ||||
| data.statcast_bat_tracking_min_swings[].description | string | No | ||||
| data.statcast_bat_tracking_min_swings[].value | string | No | ||||
| data.statcast_bat_tracking_pitch_hands | array | No | ||||
| data.statcast_bat_tracking_pitch_hands[].description | string | No | ||||
| data.statcast_bat_tracking_pitch_hands[].value | string | No | ||||
| data.statcast_bat_tracking_pitch_types | array | No | ||||
| data.statcast_bat_tracking_pitch_types[].description | string | No | ||||
| data.statcast_bat_tracking_pitch_types[].value | string | No | ||||
| data.statcast_bat_tracking_seasons | array | No | ||||
| data.statcast_bat_tracking_seasons[].description | string | No | ||||
| data.statcast_bat_tracking_seasons[].value | string | No | ||||
| data.statcast_bat_tracking_sort_directions | array | No | ||||
| data.statcast_bat_tracking_sort_directions[].description | string | No | ||||
| data.statcast_bat_tracking_sort_directions[].value | string | No | ||||
| data.statcast_bat_tracking_sort_fields | array | No | ||||
| data.statcast_bat_tracking_sort_fields[].description | string | No | ||||
| data.statcast_bat_tracking_sort_fields[].value | string | No | ||||
| data.statcast_bat_tracking_team_ids | array | No | ||||
| data.statcast_bat_tracking_team_ids[].description | string | No | ||||
| data.statcast_bat_tracking_team_ids[].value | string | No | ||||
| data.statcast_bat_tracking_types | array | No | ||||
| data.statcast_bat_tracking_types[].description | string | No | ||||
| data.statcast_bat_tracking_types[].value | string | No | ||||
| data.statcast_batted_ball_game_types | array | No | ||||
| data.statcast_batted_ball_game_types[].description | string | No | ||||
| data.statcast_batted_ball_game_types[].value | string | No | ||||
| data.statcast_batted_ball_max_year | integer | No | ||||
| data.statcast_batted_ball_min_splits | array | No | ||||
| data.statcast_batted_ball_min_splits[].description | string | No | ||||
| data.statcast_batted_ball_min_splits[].value | string | No | ||||
| data.statcast_batted_ball_min_year | integer | No | ||||
| data.statcast_batted_ball_minimums | array | No | ||||
| data.statcast_batted_ball_minimums[].description | string | No | ||||
| data.statcast_batted_ball_minimums[].value | string | No | ||||
| data.statcast_batted_ball_pitch_types | array | No | ||||
| data.statcast_batted_ball_pitch_types[].description | string | No | ||||
| data.statcast_batted_ball_pitch_types[].value | string | No | ||||
| data.statcast_batted_ball_seasons | array | No | ||||
| data.statcast_batted_ball_seasons[].description | string | No | ||||
| data.statcast_batted_ball_seasons[].value | string | No | ||||
| data.statcast_batted_ball_sides | array | No | ||||
| data.statcast_batted_ball_sides[].description | string | No | ||||
| data.statcast_batted_ball_sides[].value | string | No | ||||
| data.statcast_batted_ball_sort_directions | array | No | ||||
| data.statcast_batted_ball_sort_directions[].description | string | No | ||||
| data.statcast_batted_ball_sort_directions[].value | string | No | ||||
| data.statcast_batted_ball_sort_fields | array | No | ||||
| data.statcast_batted_ball_sort_fields[].description | string | No | ||||
| data.statcast_batted_ball_sort_fields[].value | string | No | ||||
| data.statcast_batted_ball_split_years | array | No | ||||
| data.statcast_batted_ball_split_years[].description | string | No | ||||
| data.statcast_batted_ball_split_years[].value | string | No | ||||
| data.statcast_batted_ball_splits | array | No | ||||
| data.statcast_batted_ball_splits[].description | string | No | ||||
| data.statcast_batted_ball_splits[].value | string | No | ||||
| data.statcast_batted_ball_team_ids | array | No | ||||
| data.statcast_batted_ball_team_ids[].description | string | No | ||||
| data.statcast_batted_ball_team_ids[].value | string | No | ||||
| data.statcast_batted_ball_types | array | No | ||||
| data.statcast_batted_ball_types[].description | string | No | ||||
| data.statcast_batted_ball_types[].value | string | No | ||||
| data.statcast_entity_types | array | No | ||||
| data.statcast_entity_types[].description | string | No | ||||
| data.statcast_entity_types[].value | string | No | ||||
| data.statcast_expected_filter_types | array | No | ||||
| data.statcast_expected_filter_types[].description | string | No | ||||
| data.statcast_expected_filter_types[].value | string | No | ||||
| data.statcast_expected_max_year | integer | No | ||||
| data.statcast_expected_min_year | integer | No | ||||
| data.statcast_expected_minimums | array | No | ||||
| data.statcast_expected_minimums[].description | string | No | ||||
| data.statcast_expected_minimums[].value | string | No | ||||
| data.statcast_expected_sort_directions | array | No | ||||
| data.statcast_expected_sort_directions[].description | string | No | ||||
| data.statcast_expected_sort_directions[].value | string | No | ||||
| data.statcast_expected_sort_fields | array | No | ||||
| data.statcast_expected_sort_fields[].description | string | No | ||||
| data.statcast_expected_sort_fields[].value | string | No | ||||
| data.statcast_expected_types | array | No | ||||
| data.statcast_expected_types[].description | string | No | ||||
| data.statcast_expected_types[].value | string | No | ||||
| data.statcast_home_runs_categories | array | No | ||||
| data.statcast_home_runs_categories[].description | string | No | ||||
| data.statcast_home_runs_categories[].value | string | No | ||||
| data.statcast_home_runs_minimum_home_runs | array | No | ||||
| data.statcast_home_runs_minimum_home_runs[].description | string | No | ||||
| data.statcast_home_runs_minimum_home_runs[].value | string | No | ||||
| data.statcast_home_runs_player_types | array | No | ||||
| data.statcast_home_runs_player_types[].description | string | No | ||||
| data.statcast_home_runs_player_types[].value | string | No | ||||
| data.statcast_home_runs_sort_directions | array | No | ||||
| data.statcast_home_runs_sort_directions[].description | string | No | ||||
| data.statcast_home_runs_sort_directions[].value | string | No | ||||
| data.statcast_home_runs_sort_fields | array | No | ||||
| data.statcast_home_runs_sort_fields[].description | string | No | ||||
| data.statcast_home_runs_sort_fields[].value | string | No | ||||
| data.statcast_home_runs_team_ids | array | No | ||||
| data.statcast_home_runs_team_ids[].description | string | No | ||||
| data.statcast_home_runs_team_ids[].value | string | No | ||||
| data.statcast_home_runs_years | array | No | ||||
| data.statcast_home_runs_years[].description | string | No | ||||
| data.statcast_home_runs_years[].value | string | No | ||||
| data.statcast_leaderboards | array | No | ||||
| data.statcast_leaderboards[].description | string | No | ||||
| data.statcast_leaderboards[].value | string | No | ||||
| data.statcast_max_year | integer | No | ||||
| data.statcast_min_year | integer | No | ||||
| data.statcast_minimum_bbe | array | No | ||||
| data.statcast_minimum_bbe[].description | string | No | ||||
| data.statcast_minimum_bbe[].value | string | No | ||||
| data.statcast_oaa_max_year | integer | No | ||||
| data.statcast_oaa_min_year | integer | No | ||||
| data.statcast_oaa_minimums | array | No | ||||
| data.statcast_oaa_minimums[].description | string | No | ||||
| data.statcast_oaa_minimums[].value | string | No | ||||
| data.statcast_oaa_positions | array | No | ||||
| data.statcast_oaa_positions[].description | string | No | ||||
| data.statcast_oaa_positions[].value | string | No | ||||
| data.statcast_oaa_ranges | array | No | ||||
| data.statcast_oaa_ranges[].description | string | No | ||||
| data.statcast_oaa_ranges[].value | string | No | ||||
| data.statcast_oaa_roles | array | No | ||||
| data.statcast_oaa_roles[].description | string | No | ||||
| data.statcast_oaa_roles[].value | string | No | ||||
| data.statcast_oaa_sort_directions | array | No | ||||
| data.statcast_oaa_sort_directions[].description | string | No | ||||
| data.statcast_oaa_sort_directions[].value | string | No | ||||
| data.statcast_oaa_sort_fields | array | No | ||||
| data.statcast_oaa_sort_fields[].description | string | No | ||||
| data.statcast_oaa_sort_fields[].value | string | No | ||||
| data.statcast_oaa_types | array | No | ||||
| data.statcast_oaa_types[].description | string | No | ||||
| data.statcast_oaa_types[].value | string | No | ||||
| data.statcast_percentile_batter_fields | array | No | ||||
| data.statcast_percentile_batter_fields[].description | string | No | ||||
| data.statcast_percentile_batter_fields[].value | string | No | ||||
| data.statcast_percentile_batter_sort_fields | array | No | ||||
| data.statcast_percentile_batter_sort_fields[].description | string | No | ||||
| data.statcast_percentile_batter_sort_fields[].value | string | No | ||||
| data.statcast_percentile_comparators | array | No | ||||
| data.statcast_percentile_comparators[].description | string | No | ||||
| data.statcast_percentile_comparators[].value | string | No | ||||
| data.statcast_percentile_pitcher_fields | array | No | ||||
| data.statcast_percentile_pitcher_fields[].description | string | No | ||||
| data.statcast_percentile_pitcher_fields[].value | string | No | ||||
| data.statcast_percentile_pitcher_sort_fields | array | No | ||||
| data.statcast_percentile_pitcher_sort_fields[].description | string | No | ||||
| data.statcast_percentile_pitcher_sort_fields[].value | string | No | ||||
| data.statcast_percentile_sort_directions | array | No | ||||
| data.statcast_percentile_sort_directions[].description | string | No | ||||
| data.statcast_percentile_sort_directions[].value | string | No | ||||
| data.statcast_percentile_team_ids | array | No | ||||
| data.statcast_percentile_team_ids[].description | string | No | ||||
| data.statcast_percentile_team_ids[].value | string | No | ||||
| data.statcast_percentile_types | array | No | ||||
| data.statcast_percentile_types[].description | string | No | ||||
| data.statcast_percentile_types[].value | string | No | ||||
| data.statcast_percentile_years | array | No | ||||
| data.statcast_percentile_years[].description | string | No | ||||
| data.statcast_percentile_years[].value | string | No | ||||
| data.statcast_pitch_arsenal_min_pa | array | No | ||||
| data.statcast_pitch_arsenal_min_pa[].description | string | No | ||||
| data.statcast_pitch_arsenal_min_pa[].value | string | No | ||||
| data.statcast_pitch_arsenal_min_pitches | array | No | ||||
| data.statcast_pitch_arsenal_min_pitches[].description | string | No | ||||
| data.statcast_pitch_arsenal_min_pitches[].value | string | No | ||||
| data.statcast_pitch_arsenal_pitch_aliases | array | No | ||||
| data.statcast_pitch_arsenal_pitch_aliases[].description | string | No | ||||
| data.statcast_pitch_arsenal_pitch_aliases[].value | string | No | ||||
| data.statcast_pitch_arsenal_pitch_types | array | No | ||||
| data.statcast_pitch_arsenal_pitch_types[].description | string | No | ||||
| data.statcast_pitch_arsenal_pitch_types[].value | string | No | ||||
| data.statcast_pitch_arsenal_sort_directions | array | No | ||||
| data.statcast_pitch_arsenal_sort_directions[].description | string | No | ||||
| data.statcast_pitch_arsenal_sort_directions[].value | string | No | ||||
| data.statcast_pitch_arsenal_sort_fields | array | No | ||||
| data.statcast_pitch_arsenal_sort_fields[].description | string | No | ||||
| data.statcast_pitch_arsenal_sort_fields[].value | string | No | ||||
| data.statcast_pitch_arsenal_types | array | No | ||||
| data.statcast_pitch_arsenal_types[].description | string | No | ||||
| data.statcast_pitch_arsenal_types[].value | string | No | ||||
| data.statcast_pitch_arsenal_years | array | No | ||||
| data.statcast_pitch_arsenal_years[].description | string | No | ||||
| data.statcast_pitch_arsenal_years[].value | string | No | ||||
| data.statcast_pitch_arsenals_hands | array | No | ||||
| data.statcast_pitch_arsenals_hands[].description | string | No | ||||
| data.statcast_pitch_arsenals_hands[].value | string | No | ||||
| data.statcast_pitch_arsenals_minimum_pitches | array | No | ||||
| data.statcast_pitch_arsenals_minimum_pitches[].description | string | No | ||||
| data.statcast_pitch_arsenals_minimum_pitches[].value | string | No | ||||
| data.statcast_pitch_arsenals_sort_directions | array | No | ||||
| data.statcast_pitch_arsenals_sort_directions[].description | string | No | ||||
| data.statcast_pitch_arsenals_sort_directions[].value | string | No | ||||
| data.statcast_pitch_arsenals_sort_fields | array | No | ||||
| data.statcast_pitch_arsenals_sort_fields[].description | string | No | ||||
| data.statcast_pitch_arsenals_sort_fields[].value | string | No | ||||
| data.statcast_pitch_arsenals_spin_cutoff_year | integer | No | ||||
| data.statcast_pitch_arsenals_team_abbreviations | array | No | ||||
| data.statcast_pitch_arsenals_team_abbreviations[].description | string | No | ||||
| data.statcast_pitch_arsenals_team_abbreviations[].value | string | No | ||||
| data.statcast_pitch_arsenals_types | array | No | ||||
| data.statcast_pitch_arsenals_types[].description | string | No | ||||
| data.statcast_pitch_arsenals_types[].value | string | No | ||||
| data.statcast_pitch_arsenals_years | array | No | ||||
| data.statcast_pitch_arsenals_years[].description | string | No | ||||
| data.statcast_pitch_arsenals_years[].value | string | No | ||||
| data.statcast_pitch_movement_hands | array | No | ||||
| data.statcast_pitch_movement_hands[].description | string | No | ||||
| data.statcast_pitch_movement_hands[].value | string | No | ||||
| data.statcast_pitch_movement_minimums | array | No | ||||
| data.statcast_pitch_movement_minimums[].description | string | No | ||||
| data.statcast_pitch_movement_minimums[].value | string | No | ||||
| data.statcast_pitch_movement_sort_directions | array | No | ||||
| data.statcast_pitch_movement_sort_directions[].description | string | No | ||||
| data.statcast_pitch_movement_sort_directions[].value | string | No | ||||
| data.statcast_pitch_movement_sort_fields | array | No | ||||
| data.statcast_pitch_movement_sort_fields[].description | string | No | ||||
| data.statcast_pitch_movement_sort_fields[].value | string | No | ||||
| data.statcast_pitch_movement_types | array | No | ||||
| data.statcast_pitch_movement_types[].description | string | No | ||||
| data.statcast_pitch_movement_types[].value | string | No | ||||
| data.statcast_pitch_movement_years | array | No | ||||
| data.statcast_pitch_movement_years[].description | string | No | ||||
| data.statcast_pitch_movement_years[].value | string | No | ||||
| data.statcast_pitch_tempo_game_types | array | No | ||||
| data.statcast_pitch_tempo_game_types[].description | string | No | ||||
| data.statcast_pitch_tempo_game_types[].value | string | No | ||||
| data.statcast_pitch_tempo_minimum_pitches | array | No | ||||
| data.statcast_pitch_tempo_minimum_pitches[].description | string | No | ||||
| data.statcast_pitch_tempo_minimum_pitches[].value | string | No | ||||
| data.statcast_pitch_tempo_player_types | array | No | ||||
| data.statcast_pitch_tempo_player_types[].description | string | No | ||||
| data.statcast_pitch_tempo_player_types[].value | string | No | ||||
| data.statcast_pitch_tempo_sort_directions | array | No | ||||
| data.statcast_pitch_tempo_sort_directions[].description | string | No | ||||
| data.statcast_pitch_tempo_sort_directions[].value | string | No | ||||
| data.statcast_pitch_tempo_sort_fields | array | No | ||||
| data.statcast_pitch_tempo_sort_fields[].description | string | No | ||||
| data.statcast_pitch_tempo_sort_fields[].value | string | No | ||||
| data.statcast_pitch_tempo_split_years | array | No | ||||
| data.statcast_pitch_tempo_split_years[].description | string | No | ||||
| data.statcast_pitch_tempo_split_years[].value | string | No | ||||
| data.statcast_pitch_tempo_team_ids | array | No | ||||
| data.statcast_pitch_tempo_team_ids[].description | string | No | ||||
| data.statcast_pitch_tempo_team_ids[].value | string | No | ||||
| data.statcast_pitch_tempo_types | array | No | ||||
| data.statcast_pitch_tempo_types[].description | string | No | ||||
| data.statcast_pitch_tempo_types[].value | string | No | ||||
| data.statcast_pitch_tempo_with_team_only | array | No | ||||
| data.statcast_pitch_tempo_with_team_only[].description | string | No | ||||
| data.statcast_pitch_tempo_with_team_only[].value | string | No | ||||
| data.statcast_pitch_tempo_years | array | No | ||||
| data.statcast_pitch_tempo_years[].description | string | No | ||||
| data.statcast_pitch_tempo_years[].value | string | No | ||||
| data.statcast_pitch_timer_chart_sorts | array | No | ||||
| data.statcast_pitch_timer_chart_sorts[].description | string | No | ||||
| data.statcast_pitch_timer_chart_sorts[].value | string | No | ||||
| data.statcast_pitch_timer_include_zeroes | array | No | ||||
| data.statcast_pitch_timer_include_zeroes[].description | string | No | ||||
| data.statcast_pitch_timer_include_zeroes[].value | string | No | ||||
| data.statcast_pitch_timer_minimum_pitches | array | No | ||||
| data.statcast_pitch_timer_minimum_pitches[].description | string | No | ||||
| data.statcast_pitch_timer_minimum_pitches[].value | string | No | ||||
| data.statcast_pitch_timer_seasons | array | No | ||||
| data.statcast_pitch_timer_seasons[].description | string | No | ||||
| data.statcast_pitch_timer_seasons[].value | string | No | ||||
| data.statcast_pitch_timer_sort_directions | array | No | ||||
| data.statcast_pitch_timer_sort_directions[].description | string | No | ||||
| data.statcast_pitch_timer_sort_directions[].value | string | No | ||||
| data.statcast_pitch_timer_sort_fields | array | No | ||||
| data.statcast_pitch_timer_sort_fields[].description | string | No | ||||
| data.statcast_pitch_timer_sort_fields[].value | string | No | ||||
| data.statcast_pitch_timer_types | array | No | ||||
| data.statcast_pitch_timer_types[].description | string | No | ||||
| data.statcast_pitch_timer_types[].value | string | No | ||||
| data.statcast_player_detail_types | array | No | ||||
| data.statcast_player_detail_types[].description | string | No | ||||
| data.statcast_player_detail_types[].value | string | No | ||||
| data.statcast_positions | array | No | ||||
| data.statcast_positions[].description | string | No | ||||
| data.statcast_positions[].value | string | No | ||||
| data.statcast_sort_directions | array | No | ||||
| data.statcast_sort_directions[].description | string | No | ||||
| data.statcast_sort_directions[].value | string | No | ||||
| data.statcast_sort_fields | array | No | ||||
| data.statcast_sort_fields[].description | string | No | ||||
| data.statcast_sort_fields[].value | string | No | ||||
| data.statcast_sprint_speed_minimum_runs | array | No | ||||
| data.statcast_sprint_speed_minimum_runs[].description | string | No | ||||
| data.statcast_sprint_speed_minimum_runs[].value | string | No | ||||
| data.statcast_sprint_speed_positions | array | No | ||||
| data.statcast_sprint_speed_positions[].description | string | No | ||||
| data.statcast_sprint_speed_positions[].value | string | No | ||||
| data.statcast_sprint_speed_seasons | array | No | ||||
| data.statcast_sprint_speed_seasons[].description | string | No | ||||
| data.statcast_sprint_speed_seasons[].value | string | No | ||||
| data.statcast_sprint_speed_sort_directions | array | No | ||||
| data.statcast_sprint_speed_sort_directions[].description | string | No | ||||
| data.statcast_sprint_speed_sort_directions[].value | string | No | ||||
| data.statcast_sprint_speed_sort_fields | array | No | ||||
| data.statcast_sprint_speed_sort_fields[].description | string | No | ||||
| data.statcast_sprint_speed_sort_fields[].value | string | No | ||||
| data.statcast_sprint_speed_team_abbreviations | array | No | ||||
| data.statcast_sprint_speed_team_abbreviations[].description | string | No | ||||
| data.statcast_sprint_speed_team_abbreviations[].value | string | No | ||||
| data.statcast_sprint_speed_team_ids | array | No | ||||
| data.statcast_sprint_speed_team_ids[].description | string | No | ||||
| data.statcast_sprint_speed_team_ids[].value | string | No | ||||
| data.statcast_sprint_speed_team_sort_fields | array | No | ||||
| data.statcast_sprint_speed_team_sort_fields[].description | string | No | ||||
| data.statcast_sprint_speed_team_sort_fields[].value | string | No | ||||
| data.statcast_swing_path_game_types | array | No | ||||
| data.statcast_swing_path_game_types[].description | string | No | ||||
| data.statcast_swing_path_game_types[].value | string | No | ||||
| data.statcast_swing_path_sort_fields | array | No | ||||
| data.statcast_swing_path_sort_fields[].description | string | No | ||||
| data.statcast_swing_path_sort_fields[].value | string | No | ||||
| data.statcast_swing_path_types | array | No | ||||
| data.statcast_swing_path_types[].description | string | No | ||||
| data.statcast_swing_path_types[].value | string | No | ||||
| data.statcast_swing_timing_flags | array | No | ||||
| data.statcast_swing_timing_flags[].description | string | No | ||||
| data.statcast_swing_timing_flags[].value | string | No | ||||
| data.statcast_swing_timing_game_types | array | No | ||||
| data.statcast_swing_timing_game_types[].description | string | No | ||||
| data.statcast_swing_timing_game_types[].value | string | No | ||||
| data.statcast_swing_timing_groups_x | array | No | ||||
| data.statcast_swing_timing_groups_x[].description | string | No | ||||
| data.statcast_swing_timing_groups_x[].value | string | No | ||||
| data.statcast_swing_timing_groups_y | array | No | ||||
| data.statcast_swing_timing_groups_y[].description | string | No | ||||
| data.statcast_swing_timing_groups_y[].value | string | No | ||||
| data.statcast_swing_timing_groups_z | array | No | ||||
| data.statcast_swing_timing_groups_z[].description | string | No | ||||
| data.statcast_swing_timing_groups_z[].value | string | No | ||||
| data.statcast_swing_timing_sort_directions | array | No | ||||
| data.statcast_swing_timing_sort_directions[].description | string | No | ||||
| data.statcast_swing_timing_sort_directions[].value | string | No | ||||
| data.statcast_swing_timing_sort_fields | array | No | ||||
| data.statcast_swing_timing_sort_fields[].description | string | No | ||||
| data.statcast_swing_timing_sort_fields[].value | string | No | ||||
| data.statcast_swing_timing_splits | array | No | ||||
| data.statcast_swing_timing_splits[].description | string | No | ||||
| data.statcast_swing_timing_splits[].value | string | No | ||||
| data.statcast_swing_timing_types | array | No | ||||
| data.statcast_swing_timing_types[].description | string | No | ||||
| data.statcast_swing_timing_types[].value | string | No | ||||
| msg | string | No | OK |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/mlb/discovery" \
-H "x-api-key: $CRAWLORA_API_KEY"Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.
Read Crawlora terms