YouTube Search API

Raskt, filtrerbart søk etter videoer, kanaler, spillelister og autofullføring av spørringer.

Hva kan du gjøre?
YouTube-søk med flere filtre

Søk i videoer, kanaler eller spillelister med ett kall.

Umiddelbare autofullføringsforslag

Få spørringsforslag mens brukerne skriver.

Dato- og varighetsfiltre

Publiseringsdato og varighet lar deg begrense resultatene raskt.

Prøv live
99.9 % Oppetid
153.4ms Svar
20 req/s
0.01 Kreditter / forespørsel

Autocomplete


POST https://api.yeb.to/v1/youtube/search/autocomplete
ParameterTypePåkrevdBeskrivelse
api_key string ja Your API key
q string ja User query
hl string valgfri Language (ISO-639-1, default en)

Eksempel

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

Svareksempel

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

Svarkoder

KodeBeskrivelse
200 SuccessForespørsel behandlet OK.
400 Bad RequestInngangsvalidering mislyktes.
401 UnauthorizedManglende / feil API-nøkkel.
403 ForbiddenNøkkel inaktiv eller ikke tillatt.
429 Rate LimitFor mange forespørsler.
500 Server ErrorUventet feil.

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
ParameterTypePåkrevdBeskrivelse
api_key string ja Your API key
q string ja Search keywords
limit int valgfri 1-50 (default 25)
sort string valgfri relevance | date | rating | title | viewCount
published_after date valgfri YYYY-MM-DD
published_before date valgfri YYYY-MM-DD
duration string valgfri any | short | medium | long

Eksempel

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

Svareksempel

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

Svarkoder

KodeBeskrivelse
200 SuccessForespørsel behandlet OK.
400 Bad RequestInngangsvalidering mislyktes.
401 UnauthorizedManglende / feil API-nøkkel.
403 ForbiddenNøkkel inaktiv eller ikke tillatt.
429 Rate LimitFor mange forespørsler.
500 Server ErrorUventet feil.

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
ParameterTypePåkrevdBeskrivelse
api_key string ja Your API key
q string ja Search keywords
limit int valgfri 1-50 (default 25)
sort string valgfri relevance | date | rating | title | viewCount
published_after date valgfri YYYY-MM-DD
published_before date valgfri YYYY-MM-DD

Eksempel

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

Svareksempel

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

Svarkoder

KodeBeskrivelse
200 SuccessForespørsel behandlet OK.
400 Bad RequestInngangsvalidering mislyktes.
401 UnauthorizedManglende / feil API-nøkkel.
403 ForbiddenNøkkel inaktiv eller ikke tillatt.
429 Rate LimitFor mange forespørsler.
500 Server ErrorUventet feil.

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
ParameterTypePåkrevdBeskrivelse
api_key string ja Your API key
q string ja Search keywords
limit int valgfri 1-50 (default 25)
sort string valgfri relevance | date | rating | title | viewCount
published_after date valgfri YYYY-MM-DD
published_before date valgfri YYYY-MM-DD

Eksempel

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

Svareksempel

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

Svarkoder

KodeBeskrivelse
200 SuccessForespørsel behandlet OK.
400 Bad RequestInngangsvalidering mislyktes.
401 UnauthorizedManglende / feil API-nøkkel.
403 ForbiddenNøkkel inaktiv eller ikke tillatt.
429 Rate LimitFor mange forespørsler.
500 Server ErrorUventet feil.

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.

Ofte stilte spørsmål

Du kan sende opptil 20 forespørsler per sekund, i tråd med den globale burst-grensen.

Du kan blande nøkkelord, trygt søk-nivå, publiseringsdatoperiode, varighet (videoer), rekkefølge og en resultatgrense (1-50).

Ja. Hver forespørsel, selv de som resulterer i feil, forbruker kreditter. Kredittene dine er knyttet til antall forespørsler, uavhengig av suksess eller feil. Hvis feilen tydelig skyldes et plattformproblem på vår side, gjenoppretter vi de berørte kredittene (ingen kontantrefusjon).

Kontakt oss på [email protected]. Vi tar tilbakemeldinger på alvor—hvis feilrapporten eller funksjonsforespørselen din er meningsfull, kan vi fikse eller forbedre API-et raskt og gi deg 50 gratis kreditter som takk.

Det avhenger av API-et og noen ganger til og med av endepunktet. Noen endepunkter bruker data fra eksterne kilder, som kan ha strengere grenser. Vi håndhever også grenser for å forhindre misbruk og holde plattformen stabil. Sjekk dokumentasjonen for den spesifikke grensen for hvert endepunkt.

Vi opererer med et kredittsystem. Kreditter er forhåndsbetalte, ikke-refunderbare enheter du bruker på API-kall og verktøy. Kreditter forbrukes etter FIFO-prinsippet (eldste først) og er gyldige i 12 måneder fra kjøpsdatoen. Dashbordet viser hver kjøpsdato og dens utløp.

Ja. Alle kjøpte kreditter (inkludert brøkdeler) er gyldige i 12 måneder fra kjøpet. Ubrukte kreditter utløper automatisk og slettes permanent ved slutten av gyldighetsperioden. Utløpte kreditter kan ikke gjenopprettes eller konverteres til kontanter eller annen verdi. Overgangsregel: kreditter kjøpt før 22. sep. 2025 behandles som kjøpt 22. sep. 2025 og utløper 22. sep. 2026 (med mindre en tidligere utløpsdato ble oppgitt ved kjøpet).

Ja—innenfor gyldighetsperioden. Ubrukte kreditter forblir tilgjengelige og overføres fra måned til måned til de utløper 12 måneder etter kjøpet.

Kreditter er ikke-refunderbare. Kjøp bare det du trenger—du kan alltid fylle på senere. Hvis en plattformfeil forårsaker en mislykket belastning, kan vi gjenopprette de berørte kredittene etter undersøkelse. Ingen kontantrefusjon.

Prisene er satt i kreditter, ikke dollar. Hvert endepunkt har sin egen pris—se merket «Kreditter / forespørsel» ovenfor. Du vet alltid nøyaktig hva du bruker.
← Tilbake til API-er