Endpoint Playground
Returns normalized YouTube search results using YouTube's InnerTube search API. Pass `continuation_token` from a previous response to retrieve the next page. Use `q` as the primary query parameter; `search_query` is accepted as an alias. `hl` and `gl` localize ranking and result context; they default to `en` and `US`. Named filters cover the public web search filters. Account-only chips such as Watched and Unwatched are not exposed.
14 Oct 2026: 20 items; 6 fields had a value in every checked item and 13 varied between items.
Sample value profiles: position: 1 to 20, median 10; url: youtube.com; is_verified: true in 17 of 17.
curl 'https://api.crawlora.net/api/v1/youtube/search?type=video&sort_by=relevance&upload_date=last_hour&duration=under_3_minutes' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| q | string | No | Search query | |
| search_query | string | No | Alias for q | |
| continuation_token | string | No | Pagination token returned by a previous request | |
| type | string | No | video | Filter by type |
| sort_by | string | No | relevance | Sort results |
| upload_date | string | No | last_hour | Filter by upload date |
| duration | string | No | under_3_minutes | Filter by duration; short, medium, and long preserve their previous upstream encodings |
| features | string | No | Comma-separated feature filters. Allowed values: live, 4k, hd, subtitles, cc, creative_commons, 360, vr180, 3d, hdr, location, purchased | |
| hl | string | No | YouTube interface language | |
| gl | string | No | Two-letter YouTube region code | |
| params | string | No | Raw protobuf-encoded search filter (base64) |
{
"code": 200,
"msg": "OK",
"data": {
"query": "gpt",
"estimated_results": 9895225,
"items": [
{
"type": "video",
"position": 1,
"title": "ChatGPT Explained",
"url": "https://www.youtube.com/watch?v=abc123xyz89",
"thumbnail": "https://i.ytimg.com/vi/abc123xyz89/hq720.jpg",
"video_id": "abc123xyz89",
"channel_title": "OpenAI",
"channel_id": "UCXZCJLdBC09xxGZ6gcdrc6A",
"duration": "12:34",
"duration_seconds": 754,
"published_text": "2 days ago",
"view_count": "123,456 views",
"short_view_count": "123K views",
"description_snippet": "A concise walkthrough of GPT features.",
"channel_thumbnail": "https://yt3.ggpht.com/channel-thumb",
"is_verified": true,
"badges": [
"HD",
"CC"
]
},
{
"type": "channel",
"position": 2,
"title": "OpenAI",
"url": "https://www.youtube.com/@OpenAI",
"thumbnail": "https://yt3.ggpht.com/channel-avatar",
"channel_id": "UCXZCJLdBC09xxGZ6gcdrc6A",
"handle": "@OpenAI",
"subscriber_count": "1.93M subscribers",
"description_snippet": "OpenAI's mission is to ensure AGI benefits all of humanity.",
"is_verified": true
},
{
"type": "playlist",
"position": 3,
"title": "Python Language Full Course (2026)",
"url": "https://www.youtube.com/playlist?list=PL1234567890abcdef",
"thumbnail": "https://i.ytimg.com/vi/pl123/hqdefault.jpg",
"playlist_id": "PL1234567890abcdef",
"channel_title": "Shradha Khapra",
"channel_id": "UC1XBh-m27kkgwLAwu_SRJBg",
"video_count": "9 lessons"
}
],
"continuation_token": "NEXT_TOKEN"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.