YouTube Search API

Ricerca veloce e filtrabile per video, canali, playlist e completamento automatico delle query.

Cosa puoi fare?
Ricerca YouTube multi-filtro

Cerca video, canali o playlist con una sola chiamata.

Suggerimenti di completamento automatico istantanei

Ottieni suggerimenti di ricerca mentre gli utenti digitano.

Filtri per data e durata

Data di pubblicazione e durata ti permettono di restringere i risultati rapidamente.

Prova dal vivo
99.9 % Disponibilità
153.4ms Risposta
20 req/s
0.01 Crediti / richiesta

Autocomplete


POST https://api.yeb.to/v1/youtube/search/autocomplete
ParametroTipoRich.Descrizione
api_key string Your API key
q string User query
hl string opz. Language (ISO-639-1, default en)

Esempio

curl -X POST https://api.yeb.to/v1/youtube/search/autocomplete \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "q": "minecraft survival",
  "hl": "en"
}'

Esempio di risposta

{
  "query":        "minecraft survival",
  "lang":         "en",
  "suggestions":  ["minecraft survival house","minecraft survival guide"],
  "cnt_results":  2
}
{"error":"Missing \"q\" (query) parameter","code":400}

Codici di risposta

CodiceDescrizione
200 SuccessRichiesta elaborata OK.
400 Bad RequestValidazione input fallita.
401 UnauthorizedChiave API mancante o errata.
403 ForbiddenChiave inattiva o non consentita.
429 Rate LimitTroppe richieste.
500 Server ErrorErrore imprevisto.

Autocomplete

youtube/search/autocomplete 0.0100 credits

Parameters

API Key
body · string · required
Query
body · string · required
Language
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Search Videos


POST https://api.yeb.to/v1/youtube/search/videos
ParametroTipoRich.Descrizione
api_key string Your API key
q string Search keywords
limit int opz. 1-50 (default 25)
sort string opz. relevance | date | rating | title | viewCount
published_after date opz. YYYY-MM-DD
published_before date opz. YYYY-MM-DD
duration string opz. any | short | medium | long

Esempio

curl -X POST https://api.yeb.to/v1/youtube/search/videos \
  -H "Content-Type: application/json" \
  -d '{
  "api_key":          "YOUR_KEY",
  "q":                "how to draw",
  "limit":            10,
  "sort":             "date",
  "published_after":  "2025-01-01",
  "duration":         "short"
}'

Esempio di risposta

{
  "cnt_results": 1,
  "videos":[
    {
      "id":          "dQw4w9WgXcQ",
      "title":       "How to draw a cat",
      "description": "Learn cat drawing…",
      "publishedAt": "2025-06-05T14:00:01Z",
      "channelId":   "UCabc123",
      "durationISO": "PT3M45S",
      "views":       15230
    }
  ]
}
{"error":"Missing \"q\" (query) parameter","code":400}

Codici di risposta

CodiceDescrizione
200 SuccessRichiesta elaborata OK.
400 Bad RequestValidazione input fallita.
401 UnauthorizedChiave API mancante o errata.
403 ForbiddenChiave inattiva o non consentita.
429 Rate LimitTroppe richieste.
500 Server ErrorErrore imprevisto.

Videos

youtube/search/videos 0.0060 credits

Parameters

API Key
body · string · required
Query
body · string · required
Limit
body · string
Sort
body · string
Published After
body · string
Published Before
body · string
Duration
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Search Channels


POST https://api.yeb.to/v1/youtube/search/channels
ParametroTipoRich.Descrizione
api_key string Your API key
q string Search keywords
limit int opz. 1-50 (default 25)
sort string opz. relevance | date | rating | title | viewCount
published_after date opz. YYYY-MM-DD
published_before date opz. YYYY-MM-DD

Esempio

curl -X POST https://api.yeb.to/v1/youtube/search/channels \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "q":       "technology reviews",
  "limit":   5
}'

Esempio di risposta

{
  "cnt_results": 2,
  "channels":[
    {
      "id":          "UC_x5XG1OV2P6uZZ5FSM9Ttw",
      "title":       "Google Developers",
      "description": "The official Google Developers channel.",
      "publishedAt": "2007-08-23T00:34:43Z",
      "thumb":       "https://yt3.ggpht.com/abc=s88-c-k-c0xffffffff-no-rj-mo"
    }
  ]
}
{"error":"Missing \"q\" (query) parameter","code":400}

Codici di risposta

CodiceDescrizione
200 SuccessRichiesta elaborata OK.
400 Bad RequestValidazione input fallita.
401 UnauthorizedChiave API mancante o errata.
403 ForbiddenChiave inattiva o non consentita.
429 Rate LimitTroppe richieste.
500 Server ErrorErrore imprevisto.

Channels

youtube/search/channels 0.0060 credits

Parameters

API Key
body · string · required
Query
body · string · required
Limit
body · string
Sort
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Search Playlists


POST https://api.yeb.to/v1/youtube/search/playlists
ParametroTipoRich.Descrizione
api_key string Your API key
q string Search keywords
limit int opz. 1-50 (default 25)
sort string opz. relevance | date | rating | title | viewCount
published_after date opz. YYYY-MM-DD
published_before date opz. YYYY-MM-DD

Esempio

curl -X POST https://api.yeb.to/v1/youtube/search/playlists \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "q":       "lofi chill",
  "limit":   8
}'

Esempio di risposta

{
  "cnt_results": 1,
  "playlists":[
    {
      "id":          "PL12345ABCDE",
      "title":       "Lo-Fi Chill Beats",
      "description": "Relaxing music to study to.",
      "publishedAt": "2024-11-17T10:00:00Z",
      "channelId":   "UCLofi123",
      "items":       35
    }
  ]
}
{"error":"Missing \"q\" (query) parameter","code":400}

Codici di risposta

CodiceDescrizione
200 SuccessRichiesta elaborata OK.
400 Bad RequestValidazione input fallita.
401 UnauthorizedChiave API mancante o errata.
403 ForbiddenChiave inattiva o non consentita.
429 Rate LimitTroppe richieste.
500 Server ErrorErrore imprevisto.

Playlists

youtube/search/playlists 0.0060 credits

Parameters

API Key
body · string · required
Query
body · string · required
Limit
body · string
Sort
body · string
Published After
body · string
Published Before
body · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

YouTube Search API — Practical Guide

Turn raw YouTube searches into editorial decisions and content plans. Autocomplete helps you mine intent; video/channel/playlist search gives you freshness windows, volume, and targets for outreach or curation.

#What YouTube Search solves

Use youtube/search to discover demand (autocomplete), source competitors & collaborators (channels), map curation targets (playlists), and fill topical gaps (videos). Filters like date, duration, and sorting let you bias for fresh vs evergreen.

#Endpoints & when to use them

#POST /v1/youtube/search/autocomplete — Autocomplete

  • Best for: Idea mining, SEO variations, quick demand checks per language (hl).
  • Output: query, lang, suggestions[], cnt_results (wrapped under data).
  • Tip: Seed titles/descriptions with top 2–3 suggestions; batch by locale to localize copy.

#POST /v1/youtube/search/videos — Search Videos

  • Best for: Spot rising topics, collect examples by date or viewCount, and scope by duration.
  • Filters: sort (relevance/date/rating/title/viewCount), published_after/published_before (YYYY-MM-DD), duration (short/medium/long).
  • Output: videos[] with id, title, publishedAt, channelId, durationISO, views (wrapped under data).

#POST /v1/youtube/search/channels — Search Channels

  • Best for: Competitor mapping, outreach, “featured creators” rails.
  • Output: channels[] with id (channelId), title, description, publishedAt, thumb (wrapped under data).
  • Tip: Combine with youtube/channel/info to enrich topics and country.

#POST /v1/youtube/search/playlists — Search Playlists

  • Best for: Finding curation hubs to pitch or mirror; tracking “series” potential by list size.
  • Output: playlists[] with id, title, publishedAt, channelId, items (wrapped under data).

#Quick start

# Autocomplete (English)
curl -X POST "https://api.yeb.to/v1/youtube/search/autocomplete" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "q":"minecraft survival", "hl":"en" }'
# Videos (latest, short-form only)
curl -X POST "https://api.yeb.to/v1/youtube/search/videos" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "q":"how to draw", "sort":"date", "published_after":"2025-01-01", "duration":"short", "limit":10 }'
# Channels (top 5 by relevance)
curl -X POST "https://api.yeb.to/v1/youtube/search/channels" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "q":"technology reviews", "limit":5 }'
# Playlists (lofi, last year)
curl -X POST "https://api.yeb.to/v1/youtube/search/playlists" \
  -H "Accept: application/json" -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{ "q":"lofi chill", "published_after":"2024-11-01", "limit":8 }'

#Parameters that actually matter

ParamTypeRequiredPractical guidance
api_keystringYes Keep server-side or sign short-lived tokens at the edge.
qstringYes* Query text. Optional only for autocomplete (empty → empty suggestions).
limitintNo 1–50 (default 25). Use 8/12/24 for tidy grids.
sortstringNo relevance (default) · date · rating · title · viewCount.
published_after/published_beforedateNo YYYY-MM-DD. We normalize to ISO; invalid inputs are ignored safely.
durationstringNo Videos only: any | short | medium | long.
hlstringNo Autocomplete UI language (ISO-639-1, e.g. en, de, tr).

#Reading & acting on responses

#Autocomplete — interpretation

{
  "data": {
    "query": "minecraft survival",
    "lang": "en",
    "suggestions": ["minecraft survival house","minecraft survival guide"],
    "cnt_results": 2
  }
}
  • Use top suggestions as title leads; echo 1–2 in description for better CTR + intent match.

#Videos — interpretation

{
  "data": {
    "cnt_results": 1,
    "videos": [
      {
        "id": "dQw4w9WgXcQ",
        "title": "How to draw a cat",
        "publishedAt": "2025-06-05T14:00:01Z",
        "channelId": "UCabc123",
        "durationISO": "PT3M45S",
        "views": 15230
      }
    ]
  }
}
  • Pipe id into youtube/video/* to check engagement, restrictions, and trending signals.
  • Use publishedAt with your calendar to time responsive mixes while the topic is hot.

#Channels — interpretation

{
  "data": {
    "cnt_results": 2,
    "channels": [
      {
        "id": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Google Developers",
        "description": "The official Google Developers channel.",
        "publishedAt": "2007-08-23T00:34:43Z",
        "thumb": "https://yt3.ggpht.com/…"
      }
    ]
  }
}
  • Enrich each id with youtube/channel/info and statistics to prioritize partners.

#Playlists — interpretation

{
  "data": {
    "cnt_results": 1,
    "playlists": [
      {
        "id": "PL12345ABCDE",
        "title": "Lo-Fi Chill Beats",
        "publishedAt": "2024-11-17T10:00:00Z",
        "channelId": "UCLofi123",
        "items": 35
      }
    ]
  }
}
  • Sort by items to locate big curators; track publish cadence via publishedAt.

#Practical recipes

  • Idea mining per locale: Run autocomplete with hl in target languages; harvest 10–20 suggestions; group by stem.
  • Fresh topic tracker: videos with sort=date + published_after = last 7–30 days → push timely mixes.
  • Playlist outreach: Use playlists to find curators (high items); pitch your best-fitting mix.
  • Competitor map: channels → enrich with channel statistics and info; tag by topic for dashboards.

#YouTube identifiers you’ll use

FieldWhat it isHow to use
videoId 11-char video ID Feed into youtube/video/* endpoints (engagement, restrictions, audit).
channelId Canonical channel ID (UC…) Resolve to metadata via youtube/channel/*.
playlistId Playlist identifier Open as https://www.youtube.com/playlist?list={playlistId} for QA or outreach.

#Errors & troubleshooting

  • 400 "Missing "action" parameter" — Ensure routing sets the action segment.
  • 400 "Missing "q" (query) parameter" — Required for all except autocomplete.
  • No 4xx on bad dates — invalid published_after/before are ignored (safe default).
  • sort outside allowed values quietly falls back to relevance.

#API Changelog (youtube/search)

2026-03-07
Standardized response envelope. All search endpoints now return results under data (e.g., { "data": { "videos": [...] }}) for consistency across the suite.
2026-03-01
Date filters. Added published_after/published_before (YYYY-MM-DD) to videos/channels/playlists; normalized to ISO internally.
2026-02-23
Sorting parity. Unified sort values (relevance, date, rating, title, viewCount). Invalid values now fall back to relevance without errors.
2026-02-14
Autocomplete locales. Added hl for language-aware suggestions; tuned parsing for better result counts.

Try the Playgrounds attached to each endpoint above with your own queries to see live shapes and decide which filters matter for your workflow.

Domande frequenti

Puoi inviare fino a 20 richieste al secondo, in linea con il limite burst globale.

Puoi combinare parola chiave, livello di ricerca sicura, intervallo di data di pubblicazione, durata (video), ordine e limite di risultati (1-50).

Sì. Ogni richiesta, anche quelle che generano errori, consuma crediti. I tuoi crediti sono legati al numero di richieste, indipendentemente dal successo o dal fallimento. Se l'errore è chiaramente dovuto a un problema della piattaforma da parte nostra, ripristineremo i crediti interessati (nessun rimborso in contanti).

Contattaci a [email protected]. Prendiamo i feedback seriamente—se la tua segnalazione di bug o richiesta di funzionalità è significativa, possiamo correggere o migliorare l'API rapidamente e concederti 50 crediti gratuiti come ringraziamento.

Dipende dall'API e a volte anche dall'endpoint. Alcuni endpoint utilizzano dati da fonti esterne, che possono avere limiti più rigorosi. Imponiamo anche limiti per prevenire abusi e mantenere la nostra piattaforma stabile. Consulta la documentazione per il limite specifico di ogni endpoint.

Operiamo con un sistema di crediti. I crediti sono unità prepagate e non rimborsabili che spendi per chiamate API e strumenti. I crediti vengono consumati in ordine FIFO (i più vecchi per primi) e sono validi per 12 mesi dalla data di acquisto. La dashboard mostra ogni data di acquisto e la sua scadenza.

Sì. Tutti i crediti acquistati (inclusi i saldi frazionari) sono validi per 12 mesi dall'acquisto. I crediti non utilizzati scadono automaticamente e vengono eliminati permanentemente alla fine del periodo di validità. I crediti scaduti non possono essere ripristinati o convertiti in contanti o altro valore. Regola transitoria: i crediti acquistati prima del 22 set. 2025 sono trattati come acquistati il 22 set. 2025 e scadono il 22 set. 2026 (salvo diversa scadenza indicata all'acquisto).

Sì—entro il periodo di validità. I crediti non utilizzati rimangono disponibili e vengono riportati di mese in mese fino alla scadenza 12 mesi dopo l'acquisto.

I crediti sono non rimborsabili. Acquista solo ciò di cui hai bisogno—puoi sempre ricaricare in seguito. Se un errore della piattaforma causa un addebito fallito, possiamo ripristinare i crediti interessati dopo indagine. Nessun rimborso in contanti.

I prezzi sono fissati in crediti, non in dollari. Ogni endpoint ha il proprio costo—vedi il badge "Crediti / richiesta" sopra. Saprai sempre esattamente quanto stai spendendo.
← Torna alle API