Fetchwire - Social Data
YouTube, TikTok, Instagram, X, Reddit, LinkedIn and Threads: public data in one schema.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"social-data": {
"url": "https://mcp.fetchwire.dev/mcp"
}
}
}Remote endpoints
https://mcp.fetchwire.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢get_user(platform, id)
A user's profile on any platform: follower counts, bio, verification, and platform extras under `extra`. Accepts a handle, id, or public URL. instagram: username or profile URL; for posts, a shortcode or /p/ or /reel/ URL. linkedin: profile slug or /in/ URL; for posts, an activity id or /posts/ URL. reddit: username, u/name, or profile URL; for posts, a t3_ id, bare id, or comments URL. threads: username, numeric user id, or profile URL; for posts, a shortcode or /post/ URL. tiktok: @handle, profile URL, or secUid; for posts, a video id or TikTok URL (short links included). x: screen name or profile URL; for posts, a tweet id or status URL. youtube: channel id (UC…), @handle, or channel URL; for posts, a video id or any YouTube URL.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"description": "One of: youtube, tiktok, instagram, x, reddit, linkedin, threads.",
"title": "Platform",
"type": "string"
},
"id": {
"description": "A handle, a platform id, or any public URL to the account or post. Parsed for you.",
"title": "Id",
"type": "string"
}
},
"required": [
"platform",
"id"
],
"title": "get_userArguments"
}Output Schema
{
"type": "object",
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Handle"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"avatar_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Url"
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Verified"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"followers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Subscribers on YouTube. Approximate unless exact is available.",
"title": "Followers"
},
"posts_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Posts Count"
},
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"joined_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Joined At Text"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id"
],
"title": "Author"
}🟢get_user_posts(platform, id, cursor)
A user's posts, newest first, with view, like, and comment counts. Pass the `next_cursor` from a previous response as `cursor` for the next page. instagram: username or profile URL; for posts, a shortcode or /p/ or /reel/ URL. reddit: username, u/name, or profile URL; for posts, a t3_ id, bare id, or comments URL. threads: username, numeric user id, or profile URL; for posts, a shortcode or /post/ URL. tiktok: @handle, profile URL, or secUid; for posts, a video id or TikTok URL (short links included). x: screen name or profile URL; for posts, a tweet id or status URL. youtube: channel id (UC…), @handle, or channel URL; for posts, a video id or any YouTube URL.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"description": "One of: youtube, tiktok, instagram, x, reddit, linkedin, threads.",
"title": "Platform",
"type": "string"
},
"id": {
"description": "A handle, a platform id, or any public URL to the account or post. Parsed for you.",
"title": "Id",
"type": "string"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The `next_cursor` from a previous response. Omit for the first page.",
"title": "Cursor"
}
},
"required": [
"platform",
"id"
],
"title": "get_user_postsArguments"
}Output Schema
{
"type": "object",
"properties": {
"items": {
"items": {
"$ref": "#/$defs/Post"
},
"title": "Items",
"type": "array"
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Opaque. Pass back as `cursor` to get the next page. Null when exhausted.",
"title": "Next Cursor"
},
"total": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total count when the platform reports one",
"title": "Total"
}
},
"required": [
"items"
],
"$defs": {
"Author": {
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Handle"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"avatar_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Url"
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Verified"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"followers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Subscribers on YouTube. Approximate unless exact is available.",
"title": "Followers"
},
"posts_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Posts Count"
},
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"joined_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Joined At Text"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id"
],
"title": "Author",
"type": "object"
},
"Post": {
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
},
"type": {
"default": "video",
"enum": [
"video",
"short",
"live",
"image",
"text"
],
"title": "Type",
"type": "string"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description or body text",
"title": "Text"
},
"author": {
"anyOf": [
{
"$ref": "#/$defs/Author"
},
{
"type": "null"
}
],
"default": null
},
"created_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact publish time when the platform exposes it",
"title": "Created At"
},
"created_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Platform's relative text such as '7 days ago'",
"title": "Created At Text"
},
"duration_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Seconds"
},
"stats": {
"$ref": "#/$defs/PostStats"
},
"thumbnails": {
"items": {
"$ref": "#/$defs/Thumbnail"
},
"title": "Thumbnails",
"type": "array"
},
"tags": {
"items": {
"type": "string"
},
"title": "Tags",
"type": "array"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Language"
},
"is_live": {
"default": false,
"title": "Is Live",
"type": "boolean"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id",
"url"
],
"title": "Post",
"type": "object"
},
"PostStats": {
"properties": {
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"likes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Likes"
},
"comments": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Comments"
},
"shares": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Shares"
}
},
"title": "PostStats",
"type": "object"
},
"Thumbnail": {
"properties": {
"url": {
"title": "Url",
"type": "string"
},
"width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Width"
},
"height": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Height"
}
},
"required": [
"url"
],
"title": "Thumbnail",
"type": "object"
}
},
"title": "Page[Post]"
}🟢get_post(platform, id)
One post with its stats and author. Accepts a post id or any public URL. instagram: username or profile URL; for posts, a shortcode or /p/ or /reel/ URL. linkedin: profile slug or /in/ URL; for posts, an activity id or /posts/ URL. reddit: username, u/name, or profile URL; for posts, a t3_ id, bare id, or comments URL. threads: username, numeric user id, or profile URL; for posts, a shortcode or /post/ URL. tiktok: @handle, profile URL, or secUid; for posts, a video id or TikTok URL (short links included). x: screen name or profile URL; for posts, a tweet id or status URL. youtube: channel id (UC…), @handle, or channel URL; for posts, a video id or any YouTube URL.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"description": "One of: youtube, tiktok, instagram, x, reddit, linkedin, threads.",
"title": "Platform",
"type": "string"
},
"id": {
"description": "A handle, a platform id, or any public URL to the account or post. Parsed for you.",
"title": "Id",
"type": "string"
}
},
"required": [
"platform",
"id"
],
"title": "get_postArguments"
}Output Schema
{
"type": "object",
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
},
"type": {
"default": "video",
"enum": [
"video",
"short",
"live",
"image",
"text"
],
"title": "Type",
"type": "string"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description or body text",
"title": "Text"
},
"author": {
"anyOf": [
{
"$ref": "#/$defs/Author"
},
{
"type": "null"
}
],
"default": null
},
"created_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact publish time when the platform exposes it",
"title": "Created At"
},
"created_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Platform's relative text such as '7 days ago'",
"title": "Created At Text"
},
"duration_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Seconds"
},
"stats": {
"$ref": "#/$defs/PostStats"
},
"thumbnails": {
"items": {
"$ref": "#/$defs/Thumbnail"
},
"title": "Thumbnails",
"type": "array"
},
"tags": {
"items": {
"type": "string"
},
"title": "Tags",
"type": "array"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Language"
},
"is_live": {
"default": false,
"title": "Is Live",
"type": "boolean"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id",
"url"
],
"$defs": {
"Author": {
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Handle"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"avatar_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Url"
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Verified"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"followers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Subscribers on YouTube. Approximate unless exact is available.",
"title": "Followers"
},
"posts_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Posts Count"
},
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"joined_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Joined At Text"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id"
],
"title": "Author",
"type": "object"
},
"PostStats": {
"properties": {
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"likes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Likes"
},
"comments": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Comments"
},
"shares": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Shares"
}
},
"title": "PostStats",
"type": "object"
},
"Thumbnail": {
"properties": {
"url": {
"title": "Url",
"type": "string"
},
"width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Width"
},
"height": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Height"
}
},
"required": [
"url"
],
"title": "Thumbnail",
"type": "object"
}
},
"title": "Post"
}🟢get_comments(platform, id, cursor)
Comments on a post, flat, with `parent_id` set on replies so the tree is one pass to rebuild. A comment's `replies_cursor` passed as `cursor` returns that thread. instagram: username or profile URL; for posts, a shortcode or /p/ or /reel/ URL. reddit: username, u/name, or profile URL; for posts, a t3_ id, bare id, or comments URL. threads: username, numeric user id, or profile URL; for posts, a shortcode or /post/ URL. tiktok: @handle, profile URL, or secUid; for posts, a video id or TikTok URL (short links included). x: screen name or profile URL; for posts, a tweet id or status URL. youtube: channel id (UC…), @handle, or channel URL; for posts, a video id or any YouTube URL.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"description": "One of: youtube, tiktok, instagram, x, reddit, linkedin, threads.",
"title": "Platform",
"type": "string"
},
"id": {
"description": "A handle, a platform id, or any public URL to the account or post. Parsed for you.",
"title": "Id",
"type": "string"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The `next_cursor` from a previous response. Omit for the first page.",
"title": "Cursor"
}
},
"required": [
"platform",
"id"
],
"title": "get_commentsArguments"
}Output Schema
{
"type": "object",
"properties": {
"items": {
"items": {
"$ref": "#/$defs/Comment"
},
"title": "Items",
"type": "array"
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Opaque. Pass back as `cursor` to get the next page. Null when exhausted.",
"title": "Next Cursor"
},
"total": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total count when the platform reports one",
"title": "Total"
}
},
"required": [
"items"
],
"$defs": {
"Author": {
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Handle"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"avatar_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Url"
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Verified"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"followers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Subscribers on YouTube. Approximate unless exact is available.",
"title": "Followers"
},
"posts_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Posts Count"
},
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"joined_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Joined At Text"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id"
],
"title": "Author",
"type": "object"
},
"Comment": {
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"post_id": {
"title": "Post Id",
"type": "string"
},
"parent_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Parent Id"
},
"author": {
"anyOf": [
{
"$ref": "#/$defs/Author"
},
{
"type": "null"
}
],
"default": null
},
"text": {
"title": "Text",
"type": "string"
},
"created_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Created At Text"
},
"likes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Likes"
},
"reply_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Reply Count"
},
"pinned": {
"default": false,
"title": "Pinned",
"type": "boolean"
},
"by_creator": {
"default": false,
"title": "By Creator",
"type": "boolean"
},
"replies_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pass to the comments endpoint as `cursor` to fetch replies",
"title": "Replies Cursor"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id",
"post_id",
"text"
],
"title": "Comment",
"type": "object"
}
},
"title": "Page[Comment]"
}🟢search_posts(platform, q, sort, cursor)
Search posts or videos by keyword on youtube, tiktok, instagram, x, or reddit. `sort` varies by platform — omit it for the default. LinkedIn and Threads have no keyword search; use list_routes to see what they do offer.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"description": "One of: youtube, tiktok, instagram, x, reddit, linkedin, threads.",
"title": "Platform",
"type": "string"
},
"q": {
"description": "The search text, as a person would type it.",
"title": "Q",
"type": "string"
},
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Platform-specific ordering. Omit for the platform's default.",
"title": "Sort"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The `next_cursor` from a previous response. Omit for the first page.",
"title": "Cursor"
}
},
"required": [
"platform",
"q"
],
"title": "search_postsArguments"
}Output Schema
{
"type": "object",
"properties": {
"items": {
"items": {
"$ref": "#/$defs/Post"
},
"title": "Items",
"type": "array"
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Opaque. Pass back as `cursor` to get the next page. Null when exhausted.",
"title": "Next Cursor"
},
"total": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total count when the platform reports one",
"title": "Total"
}
},
"required": [
"items"
],
"$defs": {
"Author": {
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Handle"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"avatar_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Url"
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Verified"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"followers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Subscribers on YouTube. Approximate unless exact is available.",
"title": "Followers"
},
"posts_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Posts Count"
},
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"joined_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Joined At Text"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id"
],
"title": "Author",
"type": "object"
},
"Post": {
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"url": {
"title": "Url",
"type": "string"
},
"type": {
"default": "video",
"enum": [
"video",
"short",
"live",
"image",
"text"
],
"title": "Type",
"type": "string"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Title"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Description or body text",
"title": "Text"
},
"author": {
"anyOf": [
{
"$ref": "#/$defs/Author"
},
{
"type": "null"
}
],
"default": null
},
"created_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Exact publish time when the platform exposes it",
"title": "Created At"
},
"created_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Platform's relative text such as '7 days ago'",
"title": "Created At Text"
},
"duration_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Duration Seconds"
},
"stats": {
"$ref": "#/$defs/PostStats"
},
"thumbnails": {
"items": {
"$ref": "#/$defs/Thumbnail"
},
"title": "Thumbnails",
"type": "array"
},
"tags": {
"items": {
"type": "string"
},
"title": "Tags",
"type": "array"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Category"
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Language"
},
"is_live": {
"default": false,
"title": "Is Live",
"type": "boolean"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id",
"url"
],
"title": "Post",
"type": "object"
},
"PostStats": {
"properties": {
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"likes": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Likes"
},
"comments": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Comments"
},
"shares": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Shares"
}
},
"title": "PostStats",
"type": "object"
},
"Thumbnail": {
"properties": {
"url": {
"title": "Url",
"type": "string"
},
"width": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Width"
},
"height": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Height"
}
},
"required": [
"url"
],
"title": "Thumbnail",
"type": "object"
}
},
"title": "Page[Post]"
}🟢search_users(platform, q, cursor)
Find accounts by name or keyword on youtube, tiktok, instagram, x, reddit, or threads. Useful for turning a person or brand name into the handle the other tools take. LinkedIn has no profile search.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"description": "One of: youtube, tiktok, instagram, x, reddit, linkedin, threads.",
"title": "Platform",
"type": "string"
},
"q": {
"description": "The search text, as a person would type it.",
"title": "Q",
"type": "string"
},
"cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The `next_cursor` from a previous response. Omit for the first page.",
"title": "Cursor"
}
},
"required": [
"platform",
"q"
],
"title": "search_usersArguments"
}Output Schema
{
"type": "object",
"properties": {
"items": {
"items": {
"$ref": "#/$defs/Author"
},
"title": "Items",
"type": "array"
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Opaque. Pass back as `cursor` to get the next page. Null when exhausted.",
"title": "Next Cursor"
},
"total": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Total count when the platform reports one",
"title": "Total"
}
},
"required": [
"items"
],
"$defs": {
"Author": {
"properties": {
"platform": {
"enum": [
"youtube",
"tiktok",
"instagram",
"x",
"reddit",
"linkedin",
"threads"
],
"title": "Platform",
"type": "string"
},
"id": {
"title": "Id",
"type": "string"
},
"handle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Handle"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Url"
},
"avatar_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Avatar Url"
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Verified"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"followers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Subscribers on YouTube. Approximate unless exact is available.",
"title": "Followers"
},
"posts_count": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Posts Count"
},
"views": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Views"
},
"joined_at_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Joined At Text"
},
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
},
"extra": {
"additionalProperties": true,
"title": "Extra",
"type": "object"
}
},
"required": [
"platform",
"id"
],
"title": "Author",
"type": "object"
}
},
"title": "Page[Author]"
}🟢list_routes(platform, contains)
Every route Fetchwire serves, with what each costs in credits. Free to call. Use it to find the routes the operation tools do not cover — TikTok's shop, live, and trending data, Reddit's subreddits and feeds, LinkedIn's jobs, Instagram's hashtags and places, X's communities and lists — then fetch one with call_route. Filter by `platform`, or by `contains` to match on the path.
Input Schema
{
"type": "object",
"properties": {
"platform": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Narrow to one of: youtube, tiktok, instagram, x, reddit, linkedin, threads.",
"title": "Platform"
},
"contains": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Match on the path, e.g. 'shop' or 'transcript'.",
"title": "Contains"
}
},
"title": "list_routesArguments"
}Output Schema
{
"type": "object",
"properties": {
"count": {
"title": "Count",
"type": "integer"
},
"routes": {
"items": {
"$ref": "#/$defs/RouteInfo"
},
"title": "Routes",
"type": "array"
},
"note": {
"title": "Note",
"type": "string"
}
},
"required": [
"count",
"routes",
"note"
],
"$defs": {
"RouteInfo": {
"properties": {
"path": {
"description": "Pass to call_route.",
"title": "Path",
"type": "string"
},
"credits": {
"description": "What one uncached call costs.",
"title": "Credits",
"type": "integer"
}
},
"required": [
"path",
"credits"
],
"title": "RouteInfo",
"type": "object"
}
},
"title": "RouteList"
}🟢call_route(path, params)
Fetch any Fetchwire route by path, for the routes the operation tools do not cover. Find the path with list_routes first. `params` are the query parameters, e.g. call_route('/v1/tiktok/hashtag/videos', {'id': 'space'}). Spends credits like any other call.
Input Schema
{
"type": "object",
"properties": {
"path": {
"description": "A path from list_routes, starting with /v1/.",
"title": "Path",
"type": "string"
},
"params": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Query parameters for that route, e.g. {'id': 'space'}.",
"title": "Params"
}
},
"required": [
"path"
],
"title": "call_routeArguments"
}🟢get_usage
The calling key's credit balance and this month's usage by endpoint. Free to call.
Input Schema
{
"type": "object",
"properties": {},
"title": "get_usageArguments"
}Output Schema
{
"type": "object",
"properties": {
"key_name": {
"title": "Key Name",
"type": "string"
},
"period": {
"title": "Period",
"type": "string"
},
"credits_used": {
"description": "This month, across all keys of the same account",
"title": "Credits Used",
"type": "integer"
},
"balance": {
"description": "Prepaid credits left on the account. Credits never expire.",
"title": "Balance",
"type": "integer"
},
"credits_remaining": {
"description": "Same as balance, kept for older clients",
"title": "Credits Remaining",
"type": "integer"
},
"by_endpoint": {
"items": {
"$ref": "#/$defs/EndpointUsage"
},
"title": "By Endpoint",
"type": "array"
}
},
"required": [
"key_name",
"period",
"credits_used",
"balance",
"credits_remaining",
"by_endpoint"
],
"$defs": {
"EndpointUsage": {
"properties": {
"endpoint": {
"title": "Endpoint",
"type": "string"
},
"requests": {
"title": "Requests",
"type": "integer"
},
"credits": {
"title": "Credits",
"type": "integer"
},
"cache_hits": {
"title": "Cache Hits",
"type": "integer"
}
},
"required": [
"endpoint",
"requests",
"credits",
"cache_hits"
],
"title": "EndpointUsage",
"type": "object"
}
},
"title": "Usage"
}🟢list_platforms
The platforms Fetchwire serves and which of the six operations each one supports.
Input Schema
{
"type": "object",
"properties": {},
"title": "list_platformsArguments"
}Output Schema
{
"type": "object",
"properties": {
"platforms": {
"items": {
"$ref": "#/$defs/PlatformOps"
},
"title": "Platforms",
"type": "array"
},
"note": {
"title": "Note",
"type": "string"
}
},
"required": [
"platforms",
"note"
],
"$defs": {
"PlatformOps": {
"properties": {
"platform": {
"title": "Platform",
"type": "string"
},
"operations": {
"description": "Which of the six operation tools this platform serves.",
"items": {
"type": "string"
},
"title": "Operations",
"type": "array"
}
},
"required": [
"platform",
"operations"
],
"title": "PlatformOps",
"type": "object"
}
},
"title": "PlatformList"
}Community
Evidence