MLB API endpoint
Returns a paginated first-party MLB.com news, video, or selection feed. Slugs are dynamic and not a complete closed topic catalog; discover current topic suggestions with mlb-search and sections with mlb-discovery. Feed items retain upstream Article, ShortContent, VSMContent, or Video fields.
/mlb/editorial-feedQuery parameters:
slug (required): dynamic MLB feed or selection slug. This is intentionally not a closed enum; MLB does not expose a complete public topic catalog. Use /api/v1/mlb/search?q=<three-or-more-characters> for matching current topic suggestions and /api/v1/mlb/discovery for the current navigation tree.language (optional): EN_US or ES_US; defaults to EN_US.limit (optional): page size from 1 to 100; defaults to 20.skip (optional): number of items to skip, from 0 to 100000; defaults to 0.The first-party feed can contain Article, ShortContent, VSMContent, and Video records. Each item is returned as the original JSON object so fields specific to each content type and nested tags are preserved. skip supports pagination; advance it by the number of items returned. An empty items array is a valid empty feed. The topic examples are observed current slugs, not an exhaustive set.
Observed feed slugs that cold-replayed successfully on 2026-09-28: mlb-news-list, sel-mlb-homepage-mixed-feed, sel-mlb-homepage-top-story, sel-mlb-news-list, sel-mlb-news-secondary, sel-mlb-video-list, sel-vvc-mlb-stories, sel-vvc-must-see, sel-vvc-pipeline-stories, and sel-vvc-player-profiles. Topic slugs that returned feed content in the same pass included offbeat, rare-feats, trade-talk-and-rumors, and youth-baseball. MLB does not expose a complete global feed/topic index, so these values are examples rather than an exhaustive allowlist.
| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| __typename | 40 | |
| _translationId | 40 | |
| description | 0 | |
| headline | 40 | median 63 characters |
| slug | 40 | |
| summary | 40 | median 282 characters |
| tags | 40 | median 5 entries |
| templateUrl | 40 | img.mlbstatic.com |
| topicSlug | 5 | |
| type | 40 | |
| url | 40 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | MLB feed or selection slug, such as mlb-news-list or sel-vvc-mlb-stories | mlb-news-list | |
| language | string | No | Feed locale Allowed values: EN_US, ES_US. | ||
| limit | integer | No | Items per page (1-100) Minimum: 1. Maximum: 100. | ||
| skip | integer | No | Number of items to skip (0-100000) Minimum: 0. Maximum: 100000. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/mlb/editorial-feed?slug=mlb-news-list&language=en&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "mlb-news-list",
"language": "EN_US",
"limit": 20,
"skip": 0,
"items": [
{
"__typename": "Article",
"id": "sample-id",
"headline": "Example MLB story",
"topicSlug": "mlb-default-atp",
"tags": []
}
]
}
}Request schema
No body schema
Response schema
#/definitions/mlb.editorialFeedResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | mlb.EditorialFeedResponse | No | ||||
| data.fetched_at | string | No | ||||
| data.items | array | No | ||||
| data.language | string | No | ||||
| data.limit | integer | No | ||||
| data.skip | integer | No | ||||
| data.slug | string | No | ||||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/mlb/editorial-feed?slug=mlb-news-list&language=en&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"