fetchproof.

/v1/youtube/search

GET

Search

Search YouTube videos, channels, playlists, Shorts and live streams. [Response format video](https://www.tella.tv/video/explaining-youtube-search-results-payload-353a).

Credit cost

Default: 1 credit

How charges are determined

Cost is decided per call, not per endpoint: the same operation can cost different amounts depending on what it returns.

A call that fails costs 0 credits. A result served from cache costs 0 credits.

`default` is the cost when no rule matches. Rules are evaluated in order and the first whose conditions all hold wins.

A `when` condition is one of: `param` (the request parameter is true), `outcome` (the classifier's outcome), `empty` / `nonEmpty` (a response field is empty and absent, or a non-empty array or string), `flag` (a response field is exactly true).

A cost of `{ perStartedMinute: n, of: [fields] }` is n x max(1, ceil(seconds / 60)), so even a short result bills at least one minute.

Cache supportNot specified in the published contract.
PaginationNo explicit pagination metadata in the published contract. Consult the parameters and response fields below.

Parameters

NameLocation / requiredSchema
query

Search query. Use intitle: for stricter title matching, e.g. intitle:"Foursquare Swarm". YouTube may broaden quoted queries when no fresh exact matches exist.

query / required

string

uploadDate

Upload date

query / optional

string

Allowed values ["today","this_week","this_month","this_year"]

sortBy

Sort by

query / optional

string

Allowed values ["relevance","popular"]

type

Type of content to search for

query / optional

string

Allowed values ["videos","shorts","channels","playlists"]

duration

Duration of the video. Only applies to videos (not shorts).

query / optional

string

Allowed values ["under_3_min","between_3_and_20_min","over_20_min"]

region

Two-letter country code for the proxy location.

query / optional

string

includeExtras

Include like/comment counts and descriptions; slows the response. Use /v1/youtube/video for full details.

query / optional

string

continuationToken

Use continuationToken from the previous response to get the next page.

query / optional

string

Request examples

Replace placeholder values and supply your own API key. For operations with a request body, populate the body using the schema above.

cURL
curl --request GET 'https://api.fetchproof.com/v1/youtube/search?query=YOUR_QUERY' \
  --header 'x-api-key: YOUR_API_KEY'
JavaScript
const response = await fetch("https://api.fetchproof.com/v1/youtube/search?query=YOUR_QUERY", {
  method: 'GET',
  headers: { 'x-api-key': process.env.FETCHPROOF_API_KEY }
});
console.log(await response.text());
Python
import os
import requests

response = requests.get("https://api.fetchproof.com/v1/youtube/search?query=YOUR_QUERY",
    headers={"x-api-key": os.environ["FETCHPROOF_API_KEY"]})
print(response.text)

Responses

200Success. Envelope: success / credits_remaining / credits_charged.

application/json

object

successrequired

boolean

credits_remainingrequired

integer

credits_chargedrequired

integer

videosrequired

array

Array items

object

typerequired

string

idrequired

string

urlrequired

string

titlerequired

string

thumbnailrequired

string

channelrequired

object

idoptional

string

titlerequired

string

handleoptional

string

thumbnailrequired

string

viewCountTextrequired

string

viewCountIntrequired

integer

publishedTimeTextrequired

string

publishedTimerequired

string

{
  "format": "date-time"
}
lengthTextrequired

string

lengthSecondsrequired

integer

badgesrequired

array

Array items

string

channelsrequired

array

playlistsrequired

array

Array items

object

typerequired

string

idrequired

string

titlerequired

string

thumbnailrequired

string

playlistUrlrequired

string

videoIdrequired

string

videoUrlrequired

string

videoCountrequired

integer

channelrequired

object

idrequired

string

titlerequired

string

handlerequired

string

channelUrlrequired

string

shortsrequired

array

Array items

object

typerequired

string

idrequired

string

urlrequired

string

titlerequired

string

thumbnailrequired

string

channelrequired

object

idrequired

string

titlerequired

string

handlerequired

string

thumbnailrequired

string

viewCountTextrequired

string

viewCountIntrequired

integer

publishedTimeTextrequired

string

publishedTimerequired

string

{
  "format": "date-time"
}
lengthTextrequired

string

lengthSecondsrequired

integer

badgesrequired

array

shelvesrequired

array

Array items

object

typerequired

string

titlerequired

string

itemsrequired

array

Array items

object

typerequired

string

idrequired

string

urlrequired

string

titlerequired

string

thumbnailrequired

string

viewCountTextrequired

string

viewCountIntrequired

integer

livesrequired

array

continuationTokenrequired

string

401Invalid or missing x-api-key
402No credits remaining
403Upstream denied (age gate, audience controls)
404Resource or endpoint not found
429Rate limited