YouTube Search API

Căutare rapidă și filtrabilă pentru videoclipuri, canale, playlist-uri și autocompletare interogări.

Ce puteți face?
Căutare YouTube cu filtre multiple

Caută videoclipuri, canale sau playlist-uri cu un singur apel.

Sugestii de autocompletare instantanee

Primește sugestii de interogare în timp ce utilizatorii tastează.

Filtre de dată și durată

Data publicării și durata îți permit să restrângi rezultatele rapid.

Încercați live
99.9 % Disponibilitate
153.4ms Răspuns
20 req/s
0.01 Credite / cerere

Autocomplete


POST https://api.yeb.to/v1/youtube/search/autocomplete
ParametruTipOblig.Descriere
api_key string da Your API key
q string da User query
hl string opțional Language (ISO-639-1, default en)

Exemplu

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"
}'

Exemplu de răspuns

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

Coduri de răspuns

CodDescriere
200 SuccessCerere procesată OK.
400 Bad RequestValidarea intrării a eșuat.
401 UnauthorizedCheie API lipsă sau incorectă.
403 ForbiddenCheie inactivă sau nepermisă.
429 Rate LimitPrea multe cereri.
500 Server ErrorEroare neașteptată.

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
ParametruTipOblig.Descriere
api_key string da Your API key
q string da Search keywords
limit int opțional 1-50 (default 25)
sort string opțional relevance | date | rating | title | viewCount
published_after date opțional YYYY-MM-DD
published_before date opțional YYYY-MM-DD
duration string opțional any | short | medium | long

Exemplu

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"
}'

Exemplu de răspuns

{
  "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}

Coduri de răspuns

CodDescriere
200 SuccessCerere procesată OK.
400 Bad RequestValidarea intrării a eșuat.
401 UnauthorizedCheie API lipsă sau incorectă.
403 ForbiddenCheie inactivă sau nepermisă.
429 Rate LimitPrea multe cereri.
500 Server ErrorEroare neașteptată.

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
ParametruTipOblig.Descriere
api_key string da Your API key
q string da Search keywords
limit int opțional 1-50 (default 25)
sort string opțional relevance | date | rating | title | viewCount
published_after date opțional YYYY-MM-DD
published_before date opțional YYYY-MM-DD

Exemplu

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
}'

Exemplu de răspuns

{
  "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}

Coduri de răspuns

CodDescriere
200 SuccessCerere procesată OK.
400 Bad RequestValidarea intrării a eșuat.
401 UnauthorizedCheie API lipsă sau incorectă.
403 ForbiddenCheie inactivă sau nepermisă.
429 Rate LimitPrea multe cereri.
500 Server ErrorEroare neașteptată.

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
ParametruTipOblig.Descriere
api_key string da Your API key
q string da Search keywords
limit int opțional 1-50 (default 25)
sort string opțional relevance | date | rating | title | viewCount
published_after date opțional YYYY-MM-DD
published_before date opțional YYYY-MM-DD

Exemplu

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
}'

Exemplu de răspuns

{
  "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}

Coduri de răspuns

CodDescriere
200 SuccessCerere procesată OK.
400 Bad RequestValidarea intrării a eșuat.
401 UnauthorizedCheie API lipsă sau incorectă.
403 ForbiddenCheie inactivă sau nepermisă.
429 Rate LimitPrea multe cereri.
500 Server ErrorEroare neașteptată.

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.

Întrebări frecvente

Poți trimite până la 20 de cereri pe secundă, conform limitei burst globale.

Poți combina cuvânt cheie, nivel de căutare sigură, interval dată publicare, durată (videoclipuri), ordine și limită de rezultate (1-50).

Da. Fiecare cerere, chiar și cele care rezultă în erori, consumă credite. Creditele tale sunt legate de numărul de cereri, indiferent de succes sau eșec. Dacă eroarea este clar cauzată de o problemă a platformei din partea noastră, vom restaura creditele afectate (fără rambursări în numerar).

Contactați-ne la [email protected]. Luăm feedback-ul în serios—dacă raportul de bug sau cererea de funcționalitate este semnificativă, putem repara sau îmbunătăți API-ul rapid și vă acordăm 50 de credite gratuite ca mulțumire.

Depinde de API și uneori chiar de endpoint. Unele endpoint-uri folosesc date din surse externe, care pot avea limite mai stricte. De asemenea, aplicăm limite pentru a preveni abuzul și a menține platforma stabilă. Verificați documentația pentru limita specifică a fiecărui endpoint.

Funcționăm pe un sistem de credite. Creditele sunt unități preplătite, nerambursabile, pe care le cheltuiți pe apeluri API și instrumente. Creditele sunt consumate FIFO (cele mai vechi mai întâi) și sunt valabile 12 luni de la data achiziției. Panoul de control afișează fiecare dată de achiziție și expirarea sa.

Da. Toate creditele achiziționate (inclusiv soldurile fracționare) sunt valabile 12 luni de la achiziție. Creditele neutilizate expiră automat și sunt șterse permanent la sfârșitul perioadei de valabilitate. Creditele expirate nu pot fi restaurate sau convertite în numerar sau altă valoare. Regulă tranzitorie: creditele cumpărate înainte de 22 sept. 2025 sunt tratate ca achiziționate pe 22 sept. 2025 și expiră pe 22 sept. 2026 (cu excepția cazului în care a fost indicată o expirare anterioară la achiziție).

Da—în cadrul perioadei de valabilitate. Creditele neutilizate rămân disponibile și se transferă din lună în lună până expiră la 12 luni de la achiziție.

Creditele sunt nerambursabile. Cumpărați doar ce aveți nevoie—puteți oricând reîncărca mai târziu. Dacă o eroare a platformei cauzează o debitare eșuată, putem restaura creditele afectate după investigare. Fără rambursări în numerar.

Prețurile sunt stabilite în credite, nu în dolari. Fiecare endpoint are propriul cost—vedeți insigna „Credite / cerere" de mai sus. Veți ști întotdeauna exact cât cheltuiți.
← Înapoi la API-uri