Vee3
REMOTE · MCP.VEE3.IO · SCANNED AUG 4
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 240 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability63
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 34744 tokens (~144/item across 240 items; 240 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management9
- Stability check failed: schema churn in the 9 days we've observed: 62 tool removals, 0 breaking changes, 0 auth/transport breaks, 6 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · mcp.vee3.io
claude mcp add --transport http vee3io-vee3 https://mcp.vee3.io/mcp
[mcp_servers.vee3io-vee3] url = "https://mcp.vee3.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"vee3io-vee3": {
"type": "remote",
"url": "https://mcp.vee3.io/mcp",
"enabled": true
}
}
} openclaw mcp add vee3io-vee3 --url https://mcp.vee3.io/mcp --transport streamable-http
mcp_servers:
vee3io-vee3:
url: "https://mcp.vee3.io/mcp" {
"mcpServers": {
"vee3io-vee3": {
"type": "http",
"url": "https://mcp.vee3.io/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 6 to 9.
- 2 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 0 to 2.
- 31 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 28 Jul 26 0
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 60
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Aug 2026 · Probed https://mcp.vee3.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.vee3.io | CN=WR3,O=Google Trust Services,C=US | 19 Jul 2026 | 17 Oct 2026 | RSA 2048 | SHA256-RSA | 299afbdbcd59affa0a0a4719cdd2adf2 |
| SANs: mcp.vee3.io | ||||||
| CN=WR3,O=Google Trust Services,C=US (CA) | CN=GTS Root R1,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | RSA 2048 | SHA256-RSA | 7ff005a91568d63abc22861684aa4b5a |
| CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 19 Jun 2020 | 28 Jan 2028 | RSA 4096 | SHA256-RSA | 77bd0d6cdb36f91aea210fc4f058d30d |
DNSSEC insecure
Validation of mcp.vee3.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| vee3.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.vee3.io/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.vee3.io/mcp | HTTPS enforced | 302 | https://mcp.vee3.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
tiktok.download_music ~125
Download a TikTok music track so the user or agent can save and reuse it. Provide either music_id or music_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run `vee3-get-file`. Cost = 10 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| file_name | — | — | Optional account-relative storage path for the music file. If omitted, the file is stored under downloads/ with a generated name. |
| music_id | — | — | TikTok music id. |
| music_url | — | — | TikTok music page URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| command | — | — | Suggested terminal command for downloading to a local path. |
| content_type | — | — | MIME type of the music file. |
| download_code | — | — | Short code to pass to the @vee3/cli `vee3-get-file` command. |
| download_id | — | — | Stable identifier for the reserved agent download session. |
| expires_at | — | — | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| file_name | — | — | Account-relative path where the file was stored. |
| file_size_bytes | — | — | Music file size in bytes. |
| file_url | — | — | Signed download URL from account file storage. |
| install_command | — | — | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| retained_until | — | — | ISO 8601 timestamp when account storage retention expires. |
| tiktok_download_id | — | — | Unique TikTok download operation identifier, prefix td_. |
| troubleshooting | — | — | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
No examples provided.
tiktok.download_music_from_video ~127
Download music from a TikTok video so the user or agent can save and reuse it. Provide either video_id or video_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run `vee3-get-file`. Cost = 10 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| file_name | — | — | Optional account-relative storage path for the music file. If omitted, the file is stored under downloads/ with a generated name. |
| video_id | — | — | TikTok video id. |
| video_url | — | — | TikTok video URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| command | — | — | Suggested terminal command for downloading to a local path. |
| content_type | — | — | MIME type of the music file. |
| download_code | — | — | Short code to pass to the @vee3/cli `vee3-get-file` command. |
| download_id | — | — | Stable identifier for the reserved agent download session. |
| expires_at | — | — | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| file_name | — | — | Account-relative path where the file was stored. |
| file_size_bytes | — | — | Music file size in bytes. |
| file_url | — | — | Signed download URL from account file storage. |
| install_command | — | — | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| retained_until | — | — | ISO 8601 timestamp when account storage retention expires. |
| tiktok_download_id | — | — | Unique TikTok download operation identifier, prefix td_. |
| troubleshooting | — | — | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
No examples provided.
tiktok.download_video ~154
Download a TikTok video so the user or agent can save and reuse it. Provide either video_id or video_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run `vee3-get-file`. Cost = 10 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| file_name | — | — | Optional account-relative storage path for the video. If omitted, the file is stored under downloads/ with a generated name. |
| quality | string | — | Video quality to download. 'standard' is default quality; 'hd' is high definition. Only one selected quality is downloaded. |
| video_id | — | — | TikTok video id. |
| video_url | — | — | TikTok video URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| command | — | — | Suggested terminal command for downloading to a local path. |
| content_type | — | — | MIME type of the downloaded file. |
| download_code | — | — | Short code to pass to the @vee3/cli `vee3-get-file` command. |
| download_id | — | — | Stable identifier for the reserved agent download session. |
| expires_at | — | — | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| file_name | — | — | Account-relative path where the file was stored. |
| file_size_bytes | — | — | Downloaded file size in bytes. |
| file_url | — | — | Signed download URL from account file storage. |
| install_command | — | — | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| quality | — | — | Echo of the requested video quality (standard or hd). |
| retained_until | — | — | ISO 8601 timestamp when account storage retention expires. |
| tiktok_download_id | — | — | Unique TikTok download operation identifier, prefix td_. |
| troubleshooting | — | — | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
No examples provided.
tiktok.for_you_feed ~60
Fetch for-you feed videos for a region. Requires region. Cost = 4 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of videos to return (max 20). |
| region | string | yes | Region code (for example us, jp, kr). |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | For-you feed videos from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.music_details ~58
Look up metadata for a TikTok music track. Provide either music_id or music_url, not both. Cost = 2 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| music_id | — | — | TikTok music id. |
| music_url | — | — | TikTok music page URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.music_videos ~80
List videos that use a TikTok music track. Requires music_id. Pass cursor from a previous response to fetch the next page. Cost = 3 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of items to return (max 30). |
| cursor | — | — | Pagination cursor from a previous response. |
| music_id | string | yes | TikTok music id. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.search_photos ~89
Search TikTok photo posts by keyword. Requires query. Pass cursor from a previous response to fetch the next page. Cost = 5 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of items to return (max 30). |
| cursor | — | — | Pagination cursor from a previous response. |
| query | string | yes | Search keywords. |
| region | — | — | Region code (for example us, jp, kr). |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.search_users ~87
Search TikTok users by keyword. Requires query. Pass cursor from a previous response to fetch the next page. Cost = 5 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of items to return (max 30). |
| cursor | — | — | Pagination cursor from a previous response. |
| follower_count | — | — | Follower count filter: 0-4. |
| query | string | yes | Search keywords. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.search_videos ~134
Search TikTok videos by keyword. Requires query. Pass cursor from a previous response to fetch the next page. Cost = 5 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of items to return (max 30). |
| cursor | — | — | Pagination cursor from a previous response. |
| publish_time | — | — | Publish time filter: 0, 1, 7, 30, 90, or 180. |
| query | string | yes | Search keywords. |
| region | — | — | Region code (for example us, jp, kr). |
| sort_by | — | — | Sort order: relevance, like_count, or date_posted. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.user_followers ~79
List followers for a TikTok user. Requires user_id. Pass cursor from a previous response to fetch the next page. Cost = 2 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of items to return (max 200). |
| cursor | — | — | Pagination cursor from a previous response. |
| user_id | string | yes | TikTok numeric user id. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.user_following ~79
List accounts a TikTok user follows. Requires user_id. Pass cursor from a previous response to fetch the next page. Cost = 2 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of items to return (max 200). |
| cursor | — | — | Pagination cursor from a previous response. |
| user_id | string | yes | TikTok numeric user id. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.user_info ~58
Look up a TikTok user profile. Provide either user_id or unique_id, not both. Cost = 2 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| unique_id | — | — | TikTok unique id (username). |
| user_id | — | — | TikTok numeric user id. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.user_reposts ~97
List reposts for a TikTok user. Provide either user_id or unique_id, not both. Pass cursor from a previous response to fetch the next page. Cost = 3 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of items to return (max 30). |
| cursor | — | — | Pagination cursor from a previous response. |
| unique_id | — | — | TikTok unique id (username). |
| user_id | — | — | TikTok numeric user id. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.user_videos ~128
List videos posted by a TikTok user. Provide either user_id or unique_id, not both. Set latest to true for newest posts or false for top posts. Pass cursor from a previous response to fetch the next page. Cost = 3 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of items to return (max 30). |
| cursor | — | — | Pagination cursor from a previous response. |
| latest | — | — | When true, return latest videos. When false, return top videos. |
| unique_id | — | — | TikTok unique id (username). |
| user_id | — | — | TikTok numeric user id. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.video_comments ~92
List comments on a TikTok video. Provide either video_id or video_url, not both. Pass cursor from a previous response to fetch the next page. Cost = 2 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| count | — | — | Number of comments to return (max 50). |
| cursor | — | — | Pagination cursor from a previous response. |
| video_id | — | — | TikTok video id. |
| video_url | — | — | TikTok video URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
tiktok.video_details ~56
Look up metadata for a TikTok video. Provide either video_id or video_url, not both. Cost = 1 token.
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | — | — | TikTok video id. |
| video_url | — | — | TikTok video URL. |
| Name | Type | Req | Description |
|---|---|---|---|
| code | — | — | Upstream status code (0 = success). |
| data | — | — | Capability-specific payload from the upstream provider. |
| msg | — | — | Upstream status message. |
| processed_time | — | — | Upstream processing time in seconds. |
No examples provided.
website-screenshots.capture ~378
Capture a screenshot of a public website so the user or agent can inspect its layout, content, and UI. The image is saved to account file storage. The response includes screenshot_url for API users and download_code for agents to run `vee3-get-file`. Cost = 20 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| block_cookie_banners | boolean | — | When true, attempt to dismiss common cookie consent banners and overlays before capture. Best-effort - custom or first-party banners may remain. |
| dark_mode | boolean | — | When true, emulate prefers-color-scheme: dark so sites with dark-mode CSS render in dark mode. Has no effect on sites without dark-mode styling. |
| file_name | — | — | Optional account-relative storage path for the screenshot. If omitted, the file is stored under downloads/ with a generated name. |
| format | string | — | Output image format. 'png' preserves lossless quality (default). 'jpeg' produces smaller files. |
| full_page | boolean | — | Capture the full scrollable page. When false, only the viewport area is captured. |
| quality | integer | — | JPEG compression quality from 0 (smallest) to 100 (best). Only applies when format is 'jpeg'; ignored for PNG. |
| timeout_seconds | integer | — | Maximum seconds to wait for the page to load before failing. |
| url | string | yes | Public http or https URL to capture. Private, localhost, and internal network addresses are blocked. |
| viewport_height | integer | — | Browser viewport height in pixels. |
| viewport_width | integer | — | Browser viewport width in pixels. |
| wait_until | string | — | When to take the screenshot: 'load' (load event), 'domcontentloaded' (DOM ready, faster), or 'networkidle' (no network activity for 500ms, slowest but most complete). |
| Name | Type | Req | Description |
|---|---|---|---|
| block_cookie_banners | — | — | Echo of whether cookie banner dismissal was attempted. |
| command | — | — | Suggested terminal command for downloading to a local path. |
| created_at | — | — | ISO 8601 timestamp. |
| dark_mode | — | — | Echo of whether dark color scheme emulation was used. |
| download_code | — | — | Short code to pass to the @vee3/cli `vee3-get-file` command. |
| download_id | — | — | Stable identifier for the reserved download. |
| expires_at | — | — | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| file_name | — | — | Account-relative path where the screenshot was stored. |
| file_size_bytes | — | — | Image file size in bytes. |
| format | — | — | Echo of the requested output format (png or jpeg). |
| full_page | — | — | Whether full page was captured. |
| install_command | — | — | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| quality | — | — | Echo of JPEG quality used when format is jpeg. |
| retained_until | — | — | ISO 8601 timestamp when account storage retention expires. |
| screenshot_id | — | — | Unique identifier, prefix ss_. |
| screenshot_url | — | — | Signed download URL from account file storage. |
| status | — | — | Always "completed" for synchronous capture. |
| troubleshooting | — | — | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
| url | — | — | Echo of requested URL. |
| viewport_height | — | — | Actual viewport height used. |
| viewport_width | — | — | Actual viewport width used. |
No examples provided.
x-twitter.connected_accounts ~118
List X (Twitter) accounts connected to the authenticated Vee3 account for write capabilities. Returns user_id, user_name, display name, avatar URL, and whether each account is the default. Use user_id or user_name on future write calls, or omit both to use the default account. If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before write capabilities work. Agents cannot complete OAuth; ask the user to connect, then call this tool again. Cost = 0 tokens.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| accounts | — | — | Active connected X accounts for the authenticated Vee3 account. |
No examples provided.
x-twitter.create_bookmark ~152
Bookmark a post for a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Cost = 30 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | string | yes | Numeric id of the post to bookmark. |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| bookmarked | — | — | Whether the post is bookmarked after this request. |
| user_id | — | — | Numeric X user id of the connected account. |
| user_name | — | — | X handle of the connected account. |
No examples provided.
x-twitter.create_post ~678
Publish a post to a connected X account via the official X API (POST /2/tweets). Call x-twitter.connected_accounts first. If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before posting. Agents cannot complete OAuth; ask the user to connect, then call x-twitter.connected_accounts again. Pass user_id or user_name to target a specific account, not both. Omit both to use the default connected account. At least one of text, poll, media, or card_uri is required. Supports text, polls, media attachments, reply settings, paid partnership disclosure, AI-generated labels, super-follower exclusivity, nullcast posts, cards, communities, and direct-message deep links. To attach media, upload files with files.upload_file and the @vee3/upload CLI, then pass file_name values returned by files.list_uploaded_files in the media array (up to 4 files). Only files listed by list_uploaded_files can be attached. poll, media, and card_uri are mutually exclusive in the X API. Token pricing: 60 tokens base for text posts. Posts whose text includes a URL are billed 1000 tokens base instead. Attaching only media (an image or video) without a URL in the text does not trigger the URL rate. Each attached image adds 50 tokens. Each attached video adds 150 tokens plus 50 tokens per 5 MB of video size. X rate limit: 100 POST /2/tweets requests per connected user per 15 minutes. Wait and retry if posting is temporarily blocked. If X authorization fails, reconnect the account in the Vee3 dashboard. Read the error message when X rejects a post and adjust the request.
| Name | Type | Req | Description |
|---|---|---|---|
| card_uri | — | — | Card URI for the post. Mutually exclusive with poll and media. |
| community_id | — | — | Community id when posting to an X community. |
| direct_message_deep_link | — | — | Deep link that moves the conversation into Direct Messages. |
| for_super_followers_only | — | — | Whether the post is exclusive to super followers. |
| made_with_ai | — | — | Whether the post contains AI-generated media. |
| media | array | — | File names from files.list_uploaded_files to attach (up to 4). Upload with files.upload_file and @vee3/upload first, then list_uploaded_files to get the stored file_name values. |
| nullcast | — | — | Whether the post is promoted-only and hidden from the public timeline. |
| paid_partnership | — | — | Whether the post is a paid partnership. |
| poll | — | — | Poll object with options (2-4 strings) and duration_minutes (5-10080). |
| reply_settings | — | — | Who can reply to the post. |
| share_with_followers | — | — | Whether to share a community post with followers too. |
| text | — | — | Post text content. At least one of text, poll, media, or card_uri is required. |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| text | — | — | Post text returned by the X API. |
| tweet_id | — | — | Numeric id of the created or edited post. |
| user_id | — | — | Numeric X user id of the connected account that published the post. |
| user_name | — | — | X handle of the connected account that published the post. |
No examples provided.
x-twitter.delete_bookmark ~154
Remove a bookmarked post for a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Cost = 30 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | string | yes | Numeric id of the bookmarked post to remove. |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| bookmarked | — | — | Whether the post is bookmarked after this request. |
| user_id | — | — | Numeric X user id of the connected account. |
| user_name | — | — | X handle of the connected account. |
No examples provided.
x-twitter.delete_post ~152
Delete a post published by a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Cost = 25 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | string | yes | Numeric id of the post to delete. |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | — | — | Whether the post was deleted. |
| user_id | — | — | Numeric X user id of the connected account. |
| user_name | — | — | X handle of the connected account. |
No examples provided.
x-twitter.edit_post ~320
Edit a recent post from a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Requires post_id and at least one of text, media, paid_partnership, or made_with_ai. Edits must be within X's one-hour window after posting. The authenticated X account may need X Premium for API edits. Posts with polls and some other types cannot be edited. Each edit returns a new post_id. To attach media, upload files with files.upload_file and pass file_name values from files.list_uploaded_files. Token pricing matches x-twitter.create_post: 60 tokens base, 1000 with URL, plus media surcharges.
| Name | Type | Req | Description |
|---|---|---|---|
| made_with_ai | — | — | Whether the post contains AI-generated media. |
| media | array | — | File names from files.list_uploaded_files to attach (up to 4). Upload with files.upload_file first. |
| paid_partnership | — | — | Whether the post is a paid partnership. |
| post_id | string | yes | Numeric id of the post to edit. |
| text | — | — | Updated post text. |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | — | — | Numeric id of the edited post returned by the X API. |
| text | — | — | Post text returned by the X API. |
| user_id | — | — | Numeric X user id of the connected account. |
| user_name | — | — | X handle of the connected account. |
No examples provided.
x-twitter.get_bookmarks ~198
Fetch bookmarked posts for a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Returns raw X API data with tweet objects, expanded authors, media, polls, and places. Use next_cursor to fetch the next page. Cost = 25 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | — | — | Pagination cursor from a previous response next_cursor field. |
| limit | — | — | Maximum number of bookmarks to return (default 20, max 100). |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | — | Bookmarked posts returned by the X API. |
| includes | — | — | Expanded users, media, polls, places, and referenced posts. |
| next_cursor | — | — | Cursor for the next page of bookmarks, when available. |
| result_count | — | — | Number of bookmarks in this page. |
No examples provided.
x-twitter.reply_to_post ~478
Reply to a post from a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Requires reply_to_post_id. Supports the same content options as x-twitter.create_post: text, polls, media, reply settings, paid partnership disclosure, AI-generated labels, super-follower exclusivity, nullcast posts, cards, communities, and direct-message deep links. At least one of text, poll, media, or card_uri is required, same as x-twitter.create_post. Token pricing matches x-twitter.create_post.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_populate_reply_metadata | — | — | Whether to automatically populate reply metadata. |
| card_uri | — | — | Card URI for the post. Mutually exclusive with poll and media. |
| community_id | — | — | Community id when posting to an X community. |
| direct_message_deep_link | — | — | Deep link that moves the conversation into Direct Messages. |
| exclude_reply_user_ids | — | — | User ids to exclude from the reply mention list. |
| for_super_followers_only | — | — | Whether the post is exclusive to super followers. |
| made_with_ai | — | — | Whether the post contains AI-generated media. |
| media | array | — | File names from files.list_uploaded_files to attach (up to 4). |
| nullcast | — | — | Whether the post is promoted-only and hidden from the public timeline. |
| paid_partnership | — | — | Whether the post is a paid partnership. |
| poll | — | — | Poll object with options (2-4 strings) and duration_minutes (5-10080). |
| reply_settings | — | — | Who can reply to the post. |
| reply_to_post_id | string | yes | Numeric id of the post to reply to. |
| share_with_followers | — | — | Whether to share a community post with followers too. |
| text | — | — | Reply text content. At least one of text, poll, media, or card_uri is required. |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | — | — | Numeric id of the reply post. |
| text | — | — | Reply text returned by the X API. |
| user_id | — | — | Numeric X user id of the connected account. |
| user_name | — | — | X handle of the connected account. |
No examples provided.
x-twitter.repost_post ~164
Repost a post for a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Returns the reposted post_id and retweeted status. Cost = 75 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | string | yes | Numeric id of the post to repost. |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | — | — | Numeric id of the reposted post. |
| retweeted | — | — | Whether the post was reposted. |
| user_id | — | — | Numeric X user id of the connected account. |
| user_name | — | — | X handle of the connected account. |
No examples provided.
x-twitter.search ~115
Search public X (Twitter) posts matching a keyword or phrase. Returns a timeline of matching posts with tweet text, engagement counts, author info, media, and quoted tweets. Use cursor from next_cursor to fetch the next page. search_type controls ranking: Top (default), Latest, Media, People, or Lists. Cost = 5 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | — | — | Pagination cursor from a previous response next_cursor field. |
| query | string | yes | Search keywords or phrase. |
| search_type | string | — | Result ranking mode. |
| Name | Type | Req | Description |
|---|---|---|---|
| next_cursor | — | — | Cursor for the next results page, when available. |
| prev_cursor | — | — | Cursor for the previous results page, when available. |
| status | — | — | Search status from the upstream provider (ok on success). |
| timeline | — | — | Matching posts from the search. Additional provider-specific fields may appear on each entry. |
No examples provided.
x-twitter.tweet_info ~77
Fetch metadata for a single public X (Twitter) post by its numeric tweet id. Returns tweet text, engagement counts (likes, retweets, replies, quotes, bookmarks), language, conversation id, author profile summary, and attached media when present. Cost = 2 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Numeric tweet id. |
| Name | Type | Req | Description |
|---|---|---|---|
| author | — | — | Author profile summary for the tweet. |
| bookmarks | — | — | Bookmark count. |
| conversation_id | — | — | Conversation thread id for the tweet. |
| created_at | — | — | Tweet creation timestamp from X. |
| id | — | — | Numeric tweet id. |
| lang | — | — | Detected language code. |
| likes | — | — | Like count. |
| media | — | — | Attached media grouped by type (for example photo or video arrays). Additional provider-specific media fields may appear. |
| quotes | — | — | Quote count. |
| replies | — | — | Reply count. |
| retweets | — | — | Repost count. |
| text | — | — | Tweet body text. |
No examples provided.
x-twitter.tweet_replies ~95
Fetch the latest replies for a single X (Twitter) post by its numeric tweet id. Returns a timeline of reply tweets with text, engagement counts, author info, media, and in-reply-to metadata. Use cursor from next_cursor to fetch the next page. Cost = 4 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | — | — | Pagination cursor from a previous response next_cursor field. |
| id | string | yes | Numeric tweet id. |
| Name | Type | Req | Description |
|---|---|---|---|
| next_cursor | — | — | Cursor for the next replies page, when available. |
| prev_cursor | — | — | Cursor for the previous replies page, when available. |
| status | — | — | Reply fetch status from the upstream provider (ok on success). |
| timeline | — | — | Reply tweets, newest first. Additional provider-specific fields may appear on each entry. |
No examples provided.
x-twitter.unrepost_post ~155
Remove a repost for a connected X account. Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account. Cost = 50 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| post_id | string | yes | Numeric id of the original post to unrepost. |
| user_id | — | — | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| user_name | — | — | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
| Name | Type | Req | Description |
|---|---|---|---|
| retweeted | — | — | Whether the post is still reposted after this request. |
| user_id | — | — | Numeric X user id of the connected account. |
| user_name | — | — | X handle of the connected account. |
No examples provided.
x-twitter.user_info ~130
Fetch public profile metadata for an X (Twitter) user. Provide user_name (handle without @) or rest_id (numeric user id). At least one is required. When rest_id is set, it takes precedence over user_name. Returns display name, bio, follower counts, verification flags, avatar URLs, and related profile fields. Cost = 2 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| rest_id | — | — | Numeric X user id (rest_id). When provided, user_name is ignored. |
| user_name | — | — | X handle without the leading @ (for example elonmusk). Required when rest_id is omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| affiliates | — | — | Affiliate account metadata when present (object or empty array from the provider). Additional provider-specific fields may appear. |
| avatar | — | — | Profile avatar image URL. |
| blue_verified | — | — | Whether the account has X blue verification. |
| business_account | — | — | Business account metadata when present (object with counts or empty array from the provider when not applicable). |
| created_at | — | — | Account creation timestamp from X. |
| desc | — | — | Profile bio / description. |
| friends | — | — | Number of accounts the user follows. |
| header_image | — | — | Profile banner image URL. |
| id | — | — | Numeric X user id (may duplicate rest_id). |
| location | — | — | Profile location string. |
| media_count | — | — | Total media item count. |
| name | — | — | Display name shown on the profile. |
| pinned_tweet_ids_str | — | — | Pinned tweet ids for the profile when present. |
| profile | — | — | X screen name (handle). |
| protected | — | — | Whether the account is protected (private). |
| rest_id | — | — | Numeric X user id. |
| status | — | — | Profile lookup status from the upstream provider. |
| statuses_count | — | — | Total post count. |
| sub_count | — | — | Follower count. |
| verification_type | — | — | Verification type label from X when present. |
No examples provided.
x-twitter.user_timeline ~160
Fetch a user's recent X (Twitter) posts, pinned tweet, and profile summary. Provide user_name (handle without @) or rest_id (numeric user id). At least one is required. When rest_id is set, it takes precedence over user_name. Returns timeline entries with tweet text, engagement counts, media, quoted tweets, and author info. Use cursor from next_cursor to fetch the next page. Cost = 4 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | — | — | Pagination cursor from a previous response next_cursor field. |
| rest_id | — | — | Numeric X user id (rest_id). When provided, user_name is ignored. |
| user_name | — | — | X handle without the leading @ (for example elonmusk). Required when rest_id is omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| next_cursor | — | — | Cursor for the next timeline page, when available. |
| pinned | — | — | Pinned tweet object when the user has one pinned post. |
| prev_cursor | — | — | Cursor for the previous timeline page, when available. |
| status | — | — | Timeline fetch status from the upstream provider (ok on success). |
| timeline | — | — | Recent posts from the user. Additional provider-specific fields may appear on each entry. |
| user | — | — | Profile summary for the requested user. |
No examples provided.
youtube.channel_details ~143
Fetch metadata for a public YouTube channel by channel id or URL. Accepts a channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg) or common YouTube channel URLs (for example https://www.youtube.com/@WWE). Returns title, username, description, subscriber and view counts, join date, verification flags, avatar and banner images, keywords, and external links. Cost = 10 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_id | string | yes | YouTube channel id or URL (for example UCJ5v_MCY6GNUBTO8-D3XoAg or https://www.youtube.com/@WWE). |
| Name | Type | Req | Description |
|---|---|---|---|
| artistBio | — | — | Artist bio text when the channel is a music artist. |
| avatar | — | — | Channel avatar images at different sizes. |
| badges | — | — | Channel badges (for example Official Artist Channel). |
| banner | — | — | Channel banner images for desktop, mobile, and TV layouts. |
| canonicalBaseUrl | — | — | Canonical channel path on YouTube when available. |
| channelId | — | — | Canonical YouTube channel id. |
| country | — | — | Country associated with the channel when available. |
| description | — | — | Channel About description. |
| hasBusinessEmail | — | — | Whether a business email is available for contact. |
| isFamilySafe | — | — | Whether the channel is marked family safe. |
| isVerified | — | — | Whether the channel is verified. |
| isVerifiedArtist | — | — | Whether the channel is a verified artist channel. |
| joinedDate | — | — | Channel creation date (ISO 8601). |
| joinedDateText | — | — | Human-readable join date. |
| keywords | — | — | Channel keywords from the About page. |
| links | — | — | External links listed on the channel About page. |
| stats | — | — | Public channel statistics. |
| title | — | — | Channel display name. |
| username | — | — | Public @ handle when available. |
No examples provided.
youtube.channel_search ~141
Search public videos on a YouTube channel by keyword or phrase. Accepts a bare channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg), not a URL. Returns matching video entries and cursorNext for pagination. Use cursorNext from a prior response as cursor for the next page. Cost = 10 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_id | string | yes | YouTube channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg, not a URL). |
| cursor | — | — | Pagination cursor from cursorNext. |
| query | string | yes | Search keywords or phrase within the channel. |
| Name | Type | Req | Description |
|---|---|---|---|
| contents | — | — | Matching video entries for the current page. Each entry includes a type field and nested video object. |
| cursorNext | — | — | Cursor for the next page, when available. |
No examples provided.
youtube.channel_videos ~147
Fetch a paginated list of videos from a public YouTube channel by its channel id. Accepts a channel id (for example UCg6gPGh8HU2U01vaFCAsvmQ) or common YouTube channel URLs (for example https://www.youtube.com/@ChrisTitusTech). Use cursor from a prior response for the next page. Cost = 10 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| channel_id | string | yes | YouTube channel id or URL (for example UCg6gPGh8HU2U01vaFCAsvmQ or https://www.youtube.com/@ChrisTitusTech). |
| cursor | — | — | Pagination cursor from a previous response cursor field. |
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | — | — | Cursor for the next page, when available. |
| videos | — | — | Channel videos for the current page. |
No examples provided.
youtube.playlist_details ~87
Fetch metadata for a public YouTube playlist by playlist id. Returns title, description, creator summary, video and view counts, thumbnails, badges, and last updated timestamps. Cost = 10 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| playlist_id | string | yes | YouTube playlist id (for example PLcirGkCPmbmFeQ1sm4wFciF03D_EroIfr). |
| Name | Type | Req | Description |
|---|---|---|---|
| author | — | — | Playlist creator summary. |
| badges | — | — | Playlist badges when available. |
| description | — | — | Playlist description. |
| playlistId | — | — | Canonical YouTube playlist id. |
| stats | — | — | Public playlist statistics. |
| thumbnails | — | — | Playlist thumbnail images at different sizes. |
| title | — | — | Playlist title. |
| updatedTime | — | — | Last update date (ISO 8601). |
| updatedTimeText | — | — | Human-readable last update time. |
No examples provided.
youtube.search ~441
Search public YouTube content by keyword or phrase. Returns matching result cards, estimated result count, and spelling suggestions. Use filter parameters to apply multiple YouTube search filters: - upload_date: Last hour, Today, This week, This month, This year - content_type: Video, Channel, Playlist, Movie - duration: Under 4 minutes, 4 - 20 minutes, Over 20 minutes - features: Live, 4K, HD, Subtitles/CC, Creative Commons, 360°, VR180, 3D, HDR, Location, Purchased (multiple allowed) - sort_by: Relevance, Upload date, View count, Rating Filter values are matched case-insensitively. Only one option per group applies except features, which accepts multiple labels. When a requested filter cannot be applied, the API returns the best-effort results available so far and includes unappliedFilters with the labels that were skipped. Use cursor with the same query to paginate: pass cursorNext from a prior response. Filter parameters and cursor cannot be combined. Check didYouMean when the query may be misspelled. Cost = 20 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| content_type | — | — | Content type filter. One of: Video, Channel, Playlist, Movie. |
| cursor | — | — | Pagination cursor from cursorNext. |
| duration | — | — | Duration filter. One of: Under 4 minutes, 4 - 20 minutes, Over 20 minutes. |
| features | — | — | Feature filters. Multiple allowed. Each value must be one of: Live, 4K, HD, Subtitles/CC, Creative Commons, 360°, VR180, 3D, HDR, Location, Purchased. |
| language | string | — | Language code for localized results (for example en). |
| location | string | — | Country code for localized results (for example US). |
| query | string | yes | Search keywords or phrase. |
| sort_by | — | — | Sort order. One of: Relevance, Upload date, View count, Rating. |
| upload_date | — | — | Upload date filter. One of: Last hour, Today, This week, This month, This year. |
| Name | Type | Req | Description |
|---|---|---|---|
| contents | — | — | Search result entries for the current page. Video entries include a type field and nested video object. |
| cursorNext | — | — | Cursor for the next results page, when available. |
| didYouMean | — | — | Suggested corrected query when the search may be misspelled. |
| estimatedResults | — | — | Approximate total number of matching results. |
| unappliedFilters | — | — | Requested filter labels that could not be applied. Present only when at least one filter was skipped. |
No examples provided.
youtube.search_autocomplete ~98
Get YouTube search autocomplete suggestions for a partial query. Returns the normalized query and an array of suggested search phrases. Optional language and location codes localize suggestions (defaults: en, US). Cost = 8 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | — | Language code for localized suggestions (for example en). |
| location | string | — | Country code for localized suggestions (for example US). |
| query | string | yes | Partial search keywords or phrase. |
| Name | Type | Req | Description |
|---|---|---|---|
| query | — | — | Normalized query echoed from the provider. |
| results | — | — | Suggested search phrases for the query. |
No examples provided.
youtube.video_comments ~167
Fetch top-level comments for a public YouTube video by its 11-character video id. Returns comment text, author summary, vote and reply counts, pinned status, total comment count, and cursorNext for the next page. Use sort_by to choose comment order: - sort_by: Top comments, Newest first Sort values are matched case-insensitively. Use cursor with the same video_id to paginate: pass cursorNext from a prior response. sort_by and cursor cannot be combined. Cost = 15 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | — | — | Pagination cursor from a previous response cursorNext field. |
| sort_by | — | — | Comment sort order. One of: Top comments, Newest first. |
| video_id | string | yes | YouTube video id (11 characters, not a URL). |
| Name | Type | Req | Description |
|---|---|---|---|
| comments | — | — | Top-level comments for the current page and sort order. Additional provider-specific fields may appear on each entry. |
| cursorNext | — | — | Cursor for the next comments page, when available. |
| totalCommentsCount | — | — | Total number of comments on the video. |
No examples provided.
youtube.video_details ~146
Fetch metadata for a public YouTube video by video id or URL. Accepts a bare 11-character video id (for example PuQFESk0BrA) or common YouTube watch, youtu.be, Shorts, and embed URLs. Returns title, description, view count, duration, publish date, channel id, category, keywords, and thumbnails. Cost = 10 tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| video_id | string | yes | YouTube video id or URL (for example PuQFESk0BrA, https://youtu.be/PuQFESk0BrA, or https://www.youtube.com/watch?v=PuQFESk0BrA). |
| Name | Type | Req | Description |
|---|---|---|---|
| author | — | — | Channel display name. |
| category | — | — | Primary category label. |
| channel_id | — | — | Uploader channel id. |
| description | — | — | Plain-text video description. |
| is_live_content | — | — | Whether the video is live content (True or False as a string). |
| keywords | — | — | Video keyword tags. |
| number_of_views | — | — | Total view count. |
| published_time | — | — | Publish date (ISO 8601). |
| thumbnails | — | — | Available thumbnail images at different sizes. |
| title | — | — | Video title. |
| type | — | — | Video type (for example NORMAL). |
| video_id | — | — | Canonical YouTube video id. |
| video_length | — | — | Video duration in seconds as a string. |
No examples provided.