YouTube Intel
/intel/channels/lookup
POST /intel/channels/lookupGet detailed information about YouTube channels. Accepts handles, channel IDs, or URLs.
Request
{
"identifiers": "array (required) - Array of 1-5 identifiers (handle with/without @, channel ID starting with UC, or full YouTube URL)"
}
Response (200)
Response Fields
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the request succeeded |
| data | object | Response data containing channels and errors |
| data.channels | array | Array of channel objects when multiple identifiers are provided |
| data.channels[].channel_id | string | YouTube channel ID |
| data.channels[].handle | string | Handle without @ symbol |
| data.channels[].title | string | Channel title |
| data.channels[].description | string | Channel description (truncated to 500 chars) |
| data.channels[].thumbnails | object | Thumbnail URLs |
| data.channels[].subscriber_count | integer | Subscriber count |
| data.channels[].video_count | integer | Total videos |
| data.channels[].view_count | integer | Total views |
| data.channels[].published_at | string | Channel publish timestamp (ISO 8601) |
| data.channels[].country | string | Country code |
| data.errors | array | Array of lookup errors: identifier, error, error_type |
{
"success": true,
"data": {
"channels": [
{
"channel_id": "UCBJycsmduvYEL83R_U4JriQ",
"handle": "mkbhd",
"title": "Marques Brownlee",
"description": "Channel description (truncated to 500 chars)",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/..."
}
},
"subscriber_count": 19000000,
"video_count": 1650,
"view_count": 4200000000,
"published_at": "2008-01-20T00:00:00Z",
"country": "US"
}
],
"errors": []
}
}
/intel/channels/search
POST /intel/channels/searchSearch for YouTube channels by keywords, niche, or other criteria.
Request
{
"query": "string (required) - Natural language query",
"limit": "integer (optional) - 1-20. Default 10"
}
Response (200)
Response Fields
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the request succeeded |
| data.channels[].channel_id | string | YouTube channel ID |
| data.channels[].handle | string | Handle without @ |
| data.channels[].title | string | Channel title |
| data.channels[].description | string|null | Channel description (nullable) |
| data.channels[].thumbnails | object|null | Thumbnail URLs (nullable) |
| data.channels[].published_at | string | Channel publish timestamp |
| data.channels[].subscriber_count | integer | Subscriber count |
| data.channels[].video_count | integer | Total uploaded videos |
| data.channels[].view_count | integer | Total views |
| data.channels[].country | string|null | Country code (nullable) |
| data.query | string | The search query used |
| data.total_results | integer | Total results found |
| data.message | string | Search completion message |
{
"success": true,
"data": {
"channels": [
{
"channel_id": "UCBJycsmduvYEL83R_U4JriQ",
"handle": "mkbhd",
"title": "Marques Brownlee",
"description": "Channel description (truncated to 500 chars)",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/..."
}
},
"published_at": "2008-01-20T00:00:00Z",
"subscriber_count": 19000000,
"video_count": 1650,
"view_count": 4200000000,
"country": "US"
}
],
"query": "tech reviews",
"total_results": 1,
"message": "Channels found matching your criteria."
}
}
/intel/videos/lookup
POST /intel/videos/lookupGet detailed information about specific YouTube videos.
Request
{
"identifiers": "array (required) - Array of 1-5 video IDs or URLs"
}
Response (200)
Response Fields
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the request succeeded |
| data.videos | array | Array of video objects when multiple identifiers are provided |
| data.videos[].video_id | string | YouTube video ID |
| data.videos[].channel | object | Channel summary with channel_id, handle, and title |
| data.videos[].title | string | Video title |
| data.videos[].description | string | Video description |
| data.videos[].published_at | string | Publish timestamp (ISO 8601) |
| data.videos[].thumbnail_url | string | Best available thumbnail URL |
| data.videos[].duration | string | ISO 8601 duration |
| data.videos[].view_count | integer | Total views |
| data.videos[].like_count | integer|null | Total likes (nullable) |
| data.videos[].comment_count | integer|null | Total comments (nullable) |
| data.videos[].outlier_score | float|null | Performance vs channel baseline (nullable) |
| data.videos[].format | string|null | Parsed format (nullable) |
| data.videos[].topic | string|null | Parsed topic (nullable) |
| data.videos[].angle | string|null | Parsed angle (nullable) |
| data.videos[].goals | string|null | Parsed goals (nullable) |
| data.errors | array | Array of lookup errors: identifier, error, error_type |
{
"success": true,
"data": {
"videos": [
{
"video_id": "dQw4w9WgXcQ",
"channel": {
"channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw",
"handle": "RickAstleyVEVO",
"title": "Rick Astley"
},
"title": "Video Title",
"description": "Video description",
"published_at": "2009-10-25T06:57:33Z",
"thumbnail_url": "https://i.ytimg.com/...",
"duration": "PT3M33S",
"view_count": 1000000,
"like_count": 50000,
"comment_count": 10000,
"outlier_score": 1.25,
"format": "Music",
"topic": "Pop",
"angle": "Nostalgia",
"goals": "Entertainment"
}
],
"errors": []
}
}
/intel/videos/search
POST /intel/videos/searchSearch for videos matching specific criteria to identify trends and opportunities.
Request
{
"query": "string (required) - Natural language query",
"limit": "integer (optional) - 1-20. Default 10"
}
Response (200)
Response Fields
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the request succeeded |
| data.videos[].video_id | string | YouTube video ID |
| data.videos[].channel | object | Channel summary with channel_id, handle, and title |
| data.videos[].title | string | Video title |
| data.videos[].description | string | Truncated description (max 300 chars) |
| data.videos[].published_at | string | Publish timestamp |
| data.videos[].thumbnail_url | string | Best available thumbnail URL |
| data.videos[].view_count | integer | Total views |
| data.videos[].like_count | integer | Total likes |
| data.videos[].comment_count | integer | Total comments |
| data.videos[].duration | string | ISO 8601 duration |
| data.videos[].format | string|null | Detected format (nullable) |
| data.videos[].topic | string|null | Detected topic (nullable) |
| data.videos[].angle | string|null | Detected angle (nullable) |
| data.videos[].goals | string|null | Detected goals (nullable) |
| data.videos[].outlier_score | float|null | Outlier score relative to channel baseline (nullable) |
| data.query | string | The search query used |
| data.total_results | integer | Total results found |
| data.message | string | Search completion message |
{
"success": true,
"data": {
"videos": [
{
"video_id": "abc123",
"channel": {
"channel_id": "UCBJycsmduvYEL83R_U4JriQ",
"handle": "mkbhd",
"title": "Marques Brownlee"
},
"title": "iPhone 15 Review",
"description": "Description (truncated to 300 chars)...",
"published_at": "2026-01-01T00:00:00Z",
"thumbnail_url": "https://i.ytimg.com/...",
"view_count": 500000,
"like_count": 15000,
"comment_count": 1200,
"duration": "PT12M",
"format": "Review",
"topic": "Smartphones",
"angle": "Hands-on",
"goals": "Inform",
"outlier_score": 1.12
}
],
"query": "iPhone 15 review",
"total_results": 1,
"message": "Videos found matching your criteria."
}
}
/intel/bookmarks
GET/POST/DELETE /intel/bookmarksSave and retrieve channels or videos to your team's research library.
Request
{
"type": "string (required for POST) - \"channel\" or \"video\"",
"external_id": "string (required for POST) - External YouTube identifier (channel ID or video ID)",
"title": "string (optional for POST) - Bookmark title",
"url": "string (optional for POST) - URL to the YouTube resource",
"notes": "string (optional for POST) - Optional notes",
"tags": "array (optional for POST) - Array of tag names"
}
Response (200)
Response Fields
| Field | Type | Description |
|---|---|---|
| success | boolean | Whether the request succeeded |
| data.id | integer | Bookmark ID |
| data.type | string | "channel" or "video" |
| data.external_id | string | External YouTube identifier (channel ID or video ID) |
| data.title | string | Bookmark title |
| data.url | string | URL to the YouTube resource |
| data.notes | string|null | Optional notes |
| data.tags | array | Array of tag names |
| data.pagination | object | Pagination metadata (GET only) - current_page, per_page, total, last_page |
{
"success": true,
"data": {
"id": 321,
"type": "channel",
"external_id": "UCBcRF18a7Qf58cCRy5xuWwQ",
"title": "Competitor: MKBHD",
"url": "https://youtube.com/@mkbhd",
"notes": "Strong product review format",
"tags": [
"competitor",
"tech"
]
}
}