YouTube API endpoint

Retrieve the shorts tab for a YouTube channel

Returns normalized short-form video entries from a channel's Shorts tab.

GETapiKey3 credits/requestyoutube.channelShortsResponseDoc/youtube/channel/{id}/shorts

Parameters

NameInTypeRequiredEnumExampleDescription
idpathstringYesChannel ID, @handle, /c path, /user path, or full YouTube channel URL
x-api-keyheaderstringYesAPI key required

Authentication

Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.

Billing

Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.

Credit cost
3 credits/request
Charged response
Successful 2xx responses
PlanPriceIncluded creditsDaily capRate limitOverage
Free$0/mo2,000500 daily credits5/minNo overage
Starter$9/mo20,0005,000 daily credits15/min$0.75/1,000 overage credits when enabled
Growth$29/mo100,00025,000 daily credits45/min$0.45/1,000 overage credits when enabled
Pro$79/mo400,000No daily cap120/min$0.30/1,000 overage credits
Business$199/mo1,200,000No daily cap300/min$0.20/1,000 overage credits
Enterprise$499/mo5,000,000No daily cap1,000/min$0.12/1,000 overage credits

Catalog quality warnings

  • missing example for required path param: id

Failure responses

StatusDescriptionSchema
400Missing or invalid parameters#/definitions/app.Response
429Rate limit exceeded#/definitions/app.Response
500Internal server error#/definitions/app.Response

Example response

{
  "code": 200,
  "msg": "OK",
  "data": {
    "channel_id": "UCXZCJLdBC09xxGZ6gcdrc6A",
    "channel_title": "OpenAI",
    "handle": "@OpenAI",
    "shorts": [
      {
        "position": 1,
        "video_id": "abc123xyz89",
        "title": "OpenAI demo clip",
        "url": "https://www.youtube.com/shorts/abc123xyz89",
        "view_count": "1.2M views"
      }
    ]
  }
}

Request schema

No body schema

Response schema

#/definitions/youtube.channelShortsResponseDoc

FieldTypeRequiredEnumBoundsExampleDescription
codeintegerNo200
datayoutube.ChannelShortsResponseNo
data.channel_idstringNoUCXZCJLdBC09xxGZ6gcdrc6A
data.channel_titlestringNoOpenAI
data.channel_urlstringNohttps://www.youtube.com/@OpenAI
data.handlestringNo@OpenAI
data.shortsarrayNo
data.shorts[].positionintegerNo1
data.shorts[].thumbnailstringNohttps://i.ytimg.com/vi/abc123xyz89/oar2.jpg
data.shorts[].titlestringNoOpenAI demo clip
data.shorts[].urlstringNohttps://www.youtube.com/shorts/abc123xyz89
data.shorts[].video_idstringNoabc123xyz89
data.shorts[].view_countstringNo1.2M views
data.thumbnailstringNohttps://yt3.googleusercontent.com/example=s176-c-k-c0x00ffffff-no-rj
msgstringNoOK

Example request

curl -X GET "https://api.crawlora.net/api/v1/youtube/channel/user-1/shorts" -H "x-api-key: <api-key>"

TypeScript fetch

const url = new URL("https://api.crawlora.net/api/v1/youtube/channel/user-1/shorts");
const headers = new Headers();
headers.set("x-api-key", "<api-key>");
const response = await fetch(url, {
  method: "GET",
  headers,
});
const payload = await response.json();