fetchproof.

/v1/youtube/video

GET

Video/Short Details

Get YouTube video or Short details, description cards, AI disclosures, owner/uploader identities, paid-promotion status and replay heatmaps. Age-restricted videos return 403. No hosted video downloads.

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 supportUse a cached response this old or newer for 0 credits. If none is available, fetch live at the endpoint’s normal price.
PaginationNo explicit pagination metadata in the published contract. Consult the parameters and response fields below.

Parameters

NameLocation / requiredSchema
url

YouTube video or short URL

query / required

string

language

Preferred two-letter response language, such as en, es, or fr. Sets Accept-Language; YouTube may ignore it.

query / optional

string

cache_max_age

Use a cached response this old or newer for 0 credits. If none is available, fetch live at the endpoint’s normal price.

query / optional

string

Allowed values ["1d","3d","7d","14d","30d"]

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/video?url=YOUR_URL' \
  --header 'x-api-key: YOUR_API_KEY'
JavaScript
const response = await fetch("https://api.fetchproof.com/v1/youtube/video?url=YOUR_URL", {
  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/video?url=YOUR_URL",
    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

idrequired

string

thumbnailrequired

string

urlrequired

string

publishDaterequired

string

typerequired

string

titlerequired

string

descriptionrequired

null

descriptionLinksrequired

array

commentCountTextrequired

string

commentCountIntrequired

integer

likeCountTextrequired

string

likeCountIntrequired

integer

viewCountTextrequired

string

viewCountIntrequired

integer

publishDateTextrequired

string

collaboratorsrequired

array

channelrequired

object

idrequired

string

urlrequired

string

handlerequired

string

titlerequired

string

chaptersrequired

array

watchNextVideosrequired

array

Array items

object

idrequired

string

titlerequired

string

thumbnailrequired

string

channelrequired

object

titlerequired

string

urlrequired

string

handlerequired

string

idrequired

string

publishedTimeTextrequired

string

publishedTimerequired

string

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

string

publishDaterequired

string

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

string

viewCountIntrequired

integer

lengthTextrequired

string

lengthInSecondsrequired

integer

videoUrlrequired

string

keywordsrequired

array

genrerequired

string

durationMsrequired

integer

durationFormattedrequired

string

isPaidPromotionrequired

boolean

descriptionCardsrequired

array

isMadeWithAIrequired

boolean

aiDisclosurerequired

string

ownerBylinerequired

object

channelIdrequired

string

namerequired

string

urlrequired

string

subscriberCountTextrequired

string

badgesrequired

array

uploaderrequired

object

channelIdrequired

string

authorrequired

string

urlrequired

string

most_replayedrequired

null

captionTracksrequired

array

Array items

object

baseUrlrequired

string

namerequired

object

simpleTextrequired

string

vssIdrequired

string

languageCoderequired

string

kindrequired

string

isTranslatablerequired

boolean

trackNamerequired

string

cachedoptional

boolean

cached_atoptional

string

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