YouTube Search shorts API
Search YouTube Shorts by keyword and get matching Shorts (title, views, URL) with cursor pagination as normalized JSON.
- Category VideoRequests / mo 1Routing 1 lane · no failover
Pricing
One price, in dollars
pay per request · no subscription · fallbacks added as the catalog growsTry it
Make your first request
run it free, no key · same shape for every API{
"data": {
"nextCursor": "example",
"shorts": [
{
"contentType": "A short example description of this item.",
"id": "a1b2c3d4",
"title": "Example title",
"url": "https://example.com/page",
"views": 12500,
"viewsAvailable": true
}
]
},
"found": true
}interface YoutubeSearchShortsResponse {
data: {
nextCursor?: string | null;
shorts: {
contentType: string;
id: string;
title: string;
url: string;
views: number;
viewsAvailable: boolean;
}[];
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-03 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/youtube.search_shorts \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"cats"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| query | string | "cats"The keyword to search Shorts for. |
| cursor | string | Continuation token from a previous response for pagination. |
| sortBy | enum | Sort order: "relevance" (default) or "popular" (most-viewed). |
| uploadDate | enum | Filter by upload recency. Omit for any time. |
| Response | ||
| data | object | |
| data.nextCursor | string | Opaque cursor for the next page of results, or null when there are no more. Pass it back as cursor to continue. |
| data.shorts | object[] | Populated whenever the provider has data for the entity. |
| data.shorts[].contentType | string | Always "short": every row here comes from YouTube's Shorts shelf. |
| data.shorts[].id | string | YouTube video id of the Short. Populated whenever the provider has data for the entity. |
| data.shorts[].title | string | Title of the Short. Populated whenever the provider has data for the entity. |
| data.shorts[].url | string | Watch URL for the Short. Populated whenever the provider has data for the entity. |
| data.shorts[].views | integer | View count, or 0 when the source did not publish one. Read viewsAvailable before trusting a 0. |
| data.shorts[].viewsAvailable | boolean | False when the source published no view count, so views is a placeholder rather than a measured zero. |
| found | boolean | |
| Price | ||
| Price per request | USD | $0.002 |
| Price /1k req | USD | $2.00 |
FAQ
About the YouTube Search shorts API
The AnyAPI YouTube Search shorts API returns YouTube search shorts data as normalized JSON from one POST call to /v1/run/youtube.search_shorts. Search YouTube Shorts by keyword and get matching Shorts (title, views, URL) with cursor pagination as normalized JSON. AnyAPI returns one normalized schema whichever source serves it. It costs from $2 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of YouTube search shorts calls through AnyAPI succeeded, with a median response time of 2.2 seconds across 1 measured calls.
More to call
Other YouTube endpoints
Get started
Two ways to start on AnyAPI
Humans fund a USD wallet and pay per request. Agents point a coding agent at one URL and onboard themselves.