REST API · GET
YouTube Search API
Search videos, music, playlists, channels, and live streams on YouTube and YouTube Music.
GET
https://api.interapi.dev/api/v1/youtube/search
Price: 6 credits per successful response. 5xx is free, 4xx costs at most 1 credit. Pricing
What it does
Compact YouTube search endpoint. The filter parameter mirrors YouTube filters: video, music (YouTube Music), playlist, channel, live, shorts, all. Each result includes title, url, author, thumbnail, duration_sec, and kind.
- YouTube + YouTube Music
- filter: music, video, live…
- Up to 99 results
- Fast search (InnerTube + cache)
- Direct content URLs
How to use it
- Search term in the q parameter
- GET /api/v1/youtube/search?q=…&filter=music (video, playlist, channel, live, shorts, all)
- Response: results[] with title, url, author, thumbnail, duration_sec.
Parameters
qstringrequired- Search query (title, artist, channel)
filterstringoptional- video, music, playlist, channel, live, shorts or all. Default video.
limitintegeroptional- How many results to return: 1–99, default 99.
Request example
curl -G "https://api.interapi.dev/api/v1/youtube/search" \
-H "X-API-Key: YOUR_API_KEY" \
--data-urlencode "q=macan" \
--data-urlencode "filter=music"import requests
resp = requests.get(
"https://api.interapi.dev/api/v1/youtube/search",
params={"q": "macan", "filter": "music"},
headers={"X-API-Key": "YOUR_API_KEY"},
timeout=60,
)
resp.raise_for_status()
print(resp.json())const params = new URLSearchParams({ q: "macan", filter: "music" });
const resp = await fetch(`https://api.interapi.dev/api/v1/youtube/search?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
console.log(await resp.json());<?php
$query = http_build_query(["q" => "macan", "filter" => "music"]);
$ch = curl_init("https://api.interapi.dev/api/v1/youtube/search?" . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: YOUR_API_KEY"],
CURLOPT_TIMEOUT => 60,
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);
Response example
{
"status": "success",
"platform": "InterAPI",
"query": "macan",
"filter": "music",
"count": 3,
"results": [
{
"id": "VNHfobG7f1c",
"title": "Macan ii dhunko",
"url": "https://music.youtube.com/…/watch",
"author": "Ilkacase Qays",
"channel_url": null,
"duration_sec": 181,
"thumbnail": "https://yt3.googleusercontent.com/…/B_DLMNMi4c6sDAPWfxN1OR2m",
"kind": "audio",
"is_music": true,
"view_count": null
},
{
"id": "YCef9L3SBZI",
"title": "Shazam",
"url": "https://music.youtube.com/…/watch",
"author": "MACAN",
"channel_url": null,
"duration_sec": 149,
"thumbnail": "https://yt3.googleusercontent.com/…/22GCXdglJSXgz0r8YYFbzoec",
"kind": "audio",
"is_music": true,
"view_count": null
}
],
"duration_ms": 343
}duration_ms is server processing time. URLs in the example are shortened.
Test a request
Without a key — up to 30 requests per hour per IP. With your key, each request costs the API price in credits.
Paste a link and press Send. The response shows up here.