YouTube
YouTube data via Wire — search, video details, channels, comments, related videos and suggestions as structured JSON
https://api.anakin.io/v1/wire/taskSearch, video details, channels, comments, related videos and suggestions. Every YouTube action is a Wire action: call POST /v1/wire/task with the action_id and params below, then poll GET /v1/wire/jobs/{id} (or pass a webhook_url). All actions read public data — no login, no cookies, auth_mode: none.
Catalog: youtube · Actions: 6 · Auth: none · Billing: only successful calls are charged
| Action | action_id | Credits | Returns |
|---|---|---|---|
| Channel Info | yt_channel | 2 | 1 item |
| Related Videos | yt_related | 2 | 10 items |
| Search Suggestions | yt_suggestions | 2 | 14 items |
| Video Comments | yt_comments | 2 | 50 items |
| Video Details | yt_video | 2 | 1 item |
| Video Search | yt_search | 2 | 10 items |
Credits marked + grow with limit — the exact formula is on each action. See Pricing for what a credit costs on your plan.
Call a YouTube action
The same call works for every action on this page — swap action_id and params.
curl -X POST https://api.anakin.io/v1/wire/task \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{"action_id": "yt_channel", "params": {"channel_id": "UC8butISFwT-Wl7EV0hUK0BQ"}}'import requests, time
res = requests.post('https://api.anakin.io/v1/wire/task', headers={'X-API-Key': 'your_api_key'},
json={"action_id": "yt_channel", "params": {"channel_id": "UC8butISFwT-Wl7EV0hUK0BQ"}})
job_id = res.json()['job_id']
while True: # poll until the job settles (or pass webhook_url and skip this)
job = requests.get(f'https://api.anakin.io/v1/wire/jobs/{job_id}', headers={'X-API-Key': 'your_api_key'}).json()
if job['status'] in ('completed', 'failed'):
break
time.sleep(2)
print(job['data']['data'])const headers = { 'X-API-Key': 'your_api_key', 'Content-Type': 'application/json' };
const res = await fetch('https://api.anakin.io/v1/wire/task', { method: 'POST', headers, body: JSON.stringify({"action_id": "yt_channel", "params": {"channel_id": "UC8butISFwT-Wl7EV0hUK0BQ"}}) });
const { job_id } = await res.json();
let job;
do { // poll until the job settles (or pass webhook_url and skip this)
await new Promise((r) => setTimeout(r, 2000));
job = await (await fetch(`https://api.anakin.io/v1/wire/jobs/${job_id}`, { headers })).json();
} while (!['completed', 'failed'].includes(job.status));
console.log(job.data.data);The job result wraps the action's output: data.status is "ok" or "error", and data.data holds the fields shown under each action below. See the overview for the full envelope.
Channel Info
Returns channel details including name, description, avatar, banner, and keywords.
action_id: yt_channel · Credits: 2 / call · Returns: 1 item
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to yt_channel |
params.channel_id required | string | Channel ID e.g. UC8butISFwT-Wl7EV0hUK0BQ |
Request
{
"action_id": "yt_channel",
"params": {
"channel_id": "UC8butISFwT-Wl7EV0hUK0BQ"
}
}Response — data.data of the completed job (trimmed):
{
"channel_id": "UC8butISFwT-Wl7EV0hUK0BQ",
"name": "freeCodeCamp.org",
"description": "Learn math, programming, and computer science for free. A 501(c)(3) tax-exempt charity. We also run a free learning interactive platform at freecodecamp.org",
"url": "http://www.youtube.com/@freecodecamp",
"avatar": "https://yt3.googleusercontent.com/ytc/AIdro_lGRc-05M2OoE1ejQdxeFhyP7OkJg9h4Y-7CK_5je3QqFI=s900-c-k-c0x00ffffff-no-rj",
"banner": null,
"keywords": "\"coding bootcamp\" \"learn to code\" \"software engineer\" nonprofits \"full stack\" \"front end\" developer programmer javascript python \"web development\" technology…"
}Related Videos
Returns recommended up next videos for a given video.
action_id: yt_related · Credits: 2 / call · Returns: 10 items
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to yt_related |
params.video_id required | string | Video ID or YouTube URL |
Request
{
"action_id": "yt_related",
"params": {
"video_id": "dQw4w9WgXcQ"
}
}Response — data.data of the completed job (trimmed):
{
"video_id": "dQw4w9WgXcQ",
"count": 10,
"data": [
{
"video_id": "C6Vwl8bD33s",
"title": "Rick Astley - Together Forever (1 Hour)",
"channel": "Jacob Neill",
"url": "https://www.youtube.com/watch?v=C6Vwl8bD33s"
},
{
"video_id": "iXA94w60NIk",
"title": "Best Of Soul 70s – 60's 70’s RnB Soul Groove – Greatest Motown Songs Mix",
"channel": "Soul Legends 70s",
"url": "https://www.youtube.com/watch?v=iXA94w60NIk"
},
"… 8 more"
]
}Search Suggestions
Returns search autocomplete suggestions for a partial query.
action_id: yt_suggestions · Credits: 2 / call · Returns: 14 items
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to yt_suggestions |
params.query required | string | Partial query e.g. how to, python, cooking |
Request
{
"action_id": "yt_suggestions",
"params": {
"query": "how"
}
}Response — data.data of the completed job (trimmed):
{
"query": "how",
"count": 14,
"data": [
{
"suggestion": "how to tie a tie"
},
{
"suggestion": "how it's done"
},
"… 12 more"
]
}Video Comments
Returns video comments with optional reply walking, up to 10,000 comments.
action_id: yt_comments · Credits: 2 / call · Returns: 50 items
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to yt_comments |
params.video_id required | string | YouTube video ID (e.g. dQw4w9WgXcQ) or full YouTube URL |
params.limit | integer | Maximum total comments to return including replies (1-10000) Default 50 |
params.include_replies | boolean | Walk all reply pages per thread Default true |
params.sort | string | Sort order: top, newest, or both (dedup-merges both rankings for near-complete coverage) Default "top" |
Request
{
"action_id": "yt_comments",
"params": {
"video_id": "dQw4w9WgXcQ",
"limit": 50,
"include_replies": true,
"sort": "top"
}
}Response — data.data of the completed job (trimmed):
{
"video_id": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw",
"comments_count": 2459266,
"count": 50,
"data": [
{
"comment_id": "Ugxzbv_ZeZXNRcfwsSF4AaABAg",
"author": "@candycake9531",
"author_channel_id": "UCNLgzvqrGzFi5SEAbVkFchg",
"text": "Is everyone going to ignore the fact that Rick Astley looks like a twelve year old boy but has a uniquely deep voice?",
"likes": "291K",
"published": "6 years ago",
"is_pinned": false,
"is_owner_reply": false,
"reply_count": 675,
"parent_id": null,
"depth": 0
},
{
"comment_id": "Ugxzbv_ZeZXNRcfwsSF4AaABAg.91_2FL04Xww97FrL-edZw3",
"author": "@candycake9531",
"author_channel_id": "UCNLgzvqrGzFi5SEAbVkFchg",
"text": "@Sam The Gamer?",
"likes": "4.3K",
"published": "6 years ago (edited)",
"is_pinned": false,
"is_owner_reply": false,
"reply_count": null,
"parent_id": "Ugxzbv_ZeZXNRcfwsSF4AaABAg",
"depth": 1
},
"… 48 more"
]
}Video Details
Returns full video details including title, author, views, duration, description, tags, and thumbnail.
action_id: yt_video · Credits: 2 / call · Returns: 1 item
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to yt_video |
params.video_id required | string | Video ID or YouTube URL e.g. dQw4w9WgXcQ or https://youtube.com/watch?v=dQw4w9WgXcQ |
Request
{
"action_id": "yt_video",
"params": {
"video_id": "dQw4w9WgXcQ"
}
}Response — data.data of the completed job (trimmed):
{
"video_id": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"author": "Rick Astley",
"channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw",
"views": 1826780435,
"duration_seconds": 213,
"description": "The official video for “Never Gonna Give You Up” by Rick Astley. \n\nNever: The Autobiography 📚 OUT NOW! \nFollow this link to get your copy and listen to Rick’…",
"tags": [
"rick astley",
"Never Gonna Give You Up",
"… 25 more"
],
"thumbnail": "https://i.ytimg.com/vi_webp/dQw4w9WgXcQ/maxresdefault.webp",
"published": null,
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}Video Search
Returns videos matching a query with title, channel, views, duration, and thumbnail.
action_id: yt_search · Credits: 2 / call · Returns: 10 items
| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to yt_search |
params.query required | string | Search query e.g. python tutorial, cooking recipes |
params.limit | integer | Max results, 1-20 |
Request
{
"action_id": "yt_search",
"params": {
"query": "python"
}
}Response — data.data of the completed job (trimmed):
{
"query": "python",
"count": 10,
"data": [
{
"video_id": "ix9cRaBkVe0",
"title": "Python Full Course for free 🐍",
"channel": "Bro Code",
"channel_id": "UC4SVo0Ue36XCfOyb5Lh1viQ",
"views": "12,913,310 views",
"published": "2 years ago",
"duration": "12:00:00",
"thumbnail": "https://i.ytimg.com/vi/ix9cRaBkVe0/hq720.jpg?…",
"url": "https://www.youtube.com/watch?v=ix9cRaBkVe0"
},
{
"video_id": "_uQrJ0TkZlc",
"title": "Python Full Course for Beginners",
"channel": "Programming with Mosh",
"channel_id": "UCWv7vMbMWH4-V0ZXdmDpPBA",
"views": "49,340,010 views",
"published": "7 years ago",
"duration": "6:14:07",
"thumbnail": "https://i.ytimg.com/vi/_uQrJ0TkZlc/hq720.jpg?…",
"url": "https://www.youtube.com/watch?v=_uQrJ0TkZlc"
},
"… 8 more"
]
}