YOUTUBE API
Channel Shorts
Retrieve channel shorts from YouTube with a single API request.
GET
/api/data/v1/youtube/channel/shorts1credit base cost
Request parameters
Up to 1 creditCan pass channelId or handle
Can pass channelId or handle
Sort by newest or popular
Continuation token to get more videos. Get 'continuationToken' from previous response.
Live requests use your prepaid balance. Cached responses cost zero where supported.
curl --request GET \
--url 'https://fetchgoblin.com/api/data/v1/youtube/channel/shorts?handle=starterstory' \
--header 'x-api-key: YOUR_FETCHGOBLIN_API_KEY'Response
Example{
"success": true,
"videos": [],
"channels": [],
"playlists": [],
"shorts": [
{
"type": "short",
"id": "VREVC0wXPfs",
"url": "https://www.youtube.com/watch?v=VREVC0wXPfs",
"title": "This idea validation formula has made him $500K from iOS apps",
"thumbnail": "https://img.youtube.com/vi/VREVC0wXPfs/maxresdefault.jpg",
"viewCountText": "17,066",
"viewCountInt": 17066,
"description": "Most founders think their app isn’t selling because of market conditions.\n\nIt’s not.\n\nThis founder sold multiple apps and noticed the same pattern every time: Great products but broken deals.\n\nNot because the app was bad but because founders overcomplicate operations and chase the highest price instead of the fastest close.",
"commentCountText": "2",
"commentCountInt": 2,
"likeCountInt": 495,
"likeCountText": "495",
"publishDate": "2026-04-22T10:44:35-07:00",
"genre": "People & Blogs",
"durationMs": 37000,
"durationFormatted": "00:00:37"
}
],
"shelves": [],
"lives": [],
"continuationToken": "4qmFsgK7DBIY.....",
"credits_charged": 1,
"credits_remaining": 1000,
"request_id": "00000000-0000-4000-8000-000000000000"
}Example data from the API specification. Run a request to retrieve current data.
Response shape
This schema describes the documented data shape. Some platform fields may be absent or null. The response also includes your FetchGoblin request ID and current credit balance.
View JSON Schema +
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"videos": {
"type": "array"
},
"channels": {
"type": "array"
},
"playlists": {
"type": "array"
},
"shorts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"title": {
"type": "string"
},
"thumbnail": {
"type": "string"
},
"viewCountText": {
"type": "string"
},
"viewCountInt": {
"type": "integer"
},
"description": {
"type": "string"
},
"commentCountText": {
"type": "string"
},
"commentCountInt": {
"type": "integer"
},
"likeCountInt": {
"type": "integer"
},
"likeCountText": {
"type": "string"
},
"publishDate": {
"type": "string"
},
"genre": {
"type": "string"
},
"durationMs": {
"type": "integer"
},
"durationFormatted": {
"type": "string"
}
}
}
},
"shelves": {
"type": "array"
},
"lives": {
"type": "array"
},
"continuationToken": {
"type": "string"
},
"credits_charged": {
"type": "integer",
"minimum": 0,
"description": "FetchGoblin credits charged for this request."
},
"credits_remaining": {
"type": "integer",
"description": "Your FetchGoblin credit balance after this request."
},
"request_id": {
"type": "string",
"format": "uuid",
"description": "FetchGoblin request identifier."
}
}
}