YouTube Scraper
Search YouTube
Searches YouTube by keyword query and returns matching videos, channels, playlists, shorts, shelves, and live streams. Each video result includes title, URL, thumbnail, view count (views), publish date, duration, channel info, and badges. Supports filtering by upload date, sorting by relevance or popularity, and paginating with continuationToken. Set is_paid_promotions=true to search YouTube videos with the paid product placement / sponsorship disclosure.
Endpoint
Parameters
| Name | Type | Required | Note |
|---|---|---|---|
| querystring · required | string | required | Search query. For stricter title matching, use YouTube's intitle: operator, for example intitle:"Foursquare Swarm". Quoted queries by themselves may still be broadened by YouTube when no fresh exact matches are available. |
| typestring · optional | string | optional | Type of content to search for One of: |
| limitnumber · optional | number | optional | Maximum number of results to return from this request. Leave empty for everything this request returns. This trims the response — it does not fetch more; use the returned cursor for the next batch. The price is the same either way. |
| regionstring · optional | string | optional | 2 letter country code of the country to put the proxy in. |
| sortBystring · optional | string | optional | Sort by One of: |
| durationstring · optional | string | optional | Duration of the video. Only applies to videos (not shorts). One of: |
| uploadDatestring · optional | string | optional | Upload date One of: |
| includeExtrasstring · optional | string | optional | This will get you the like + comment count and the description. To get the full details of the video, use the /v1/youtube/video endpoint. *This will slow down the response slightly.* |
| continuationTokenstring · optional | string | optional | Continuation token to get more videos. Get 'continuationToken' from previous response. |
Response schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lives": {
"type": "array"
},
"shorts": {
"type": "array"
},
"videos": {
"type": "array"
},
"shelves": {
"type": "array"
},
"channels": {
"type": "array"
},
"playlists": {
"type": "array"
},
"limitApplied": {
"type": "boolean",
"description": "True when a Limit trimmed the results; there were more in this response."
},
"continuationToken": {
"type": "string"
}
},
"additionalProperties": true
}