Koskamo

TrueScrape MCP

An MCP server that enables AI agents to scrape social media and web data from over 50 platforms including Instagram, TikTok, YouTube, and LinkedIn. It supports fetching profiles, posts, transcripts, and ad details via HTTP transport, with usage billed per credit.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

TrueScrape MCP logo, by TrueScrapeCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by TrueScrape
You need:Get a free key 1,000 credits, once , no card.
MCP endpoint (Streamable HTTP)
https://api.truescrape.com/mcp
Vendor documentation

What you can do with it

  • Pull user profiles and post details from social platforms
  • Extract video transcripts and metadata from YouTube
  • Search and retrieve ad information from Meta Ad Library
  • Monitor channel updates via webhooks or polling

Source and maintenance

Community listingRegistry 0.6.0
Maintenance checked

Protocol and capabilities

Server
truescrape 0.1.0
MCP protocol
2025-06-18
Tools
260 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Social media and creator data: 260 tools. 253 fetch data across 46 platforms; 3 (create_watch, list_watches, cancel_watch) watch it for changes; 4 (create_monitor, list_monitors, get_monitor_mentions, delete_monitor) monitor a term for new mentions. Coverage, by platform and tool count: tiktok (28), facebook (22), instagram (19), youtube (17), deezer (11), github (10), reddit (9), google (8), linkedin (8), mixcloud (8), peertube (7), spotify (7), twitter (6), dailymotion (5), odysee (5), rumble (5), substack (5), threads (5), amazon (4), apple-music (4), bitchute (4), bluesky (4), mastodon (4), pinterest (4), redfin (4), twitch (4), walmart (4), kwai (3), snapchat (3), soundcloud (3), telegram (3), truthsocial (3), zillow (3), ebay (2), hackernews (1), identity (1), inference (1), kick (1), komi (1), linkbio (1), linkme (1), linktree (1), milkshake (1), pillar (1), solo (1), taplink (1) Billing rules. These hold for EVERY data tool, which is why they are stated here once rather than repeated in all 253 of their descriptions: - Failed requests are NEVER charged. Empty results are NEVER charged. - Cache hits cost 0 credits. Pass cache_max_age="7d" when fresh data is not required - it is the single biggest lever on what a task costs. - Each tool states its own credit cost, since that is the part that varies. - A request rejected for bad arguments is never charged either. A tool this deployment is not set up to serve returns a clear not_configured error rather than failing obscurely. It is never charged. Watching. create_watch checks an endpoint on a schedule and POSTs to a webhook: - Creating, listing and cancelling watches is free. - Each check is charged the endpoint's own credit cost, like any call, and is refunded if it fails or comes back empty. The webhook fires only when the data actually changed. - A check the balance cannot cover is refused: nothing fetched, nothing charged. After the second refused check the watch pauses and sends subscription.paused with reason "unpaid". It resumes on its own at its next scheduled check once the balance covers the price. Checks past the daily credit cap are skipped until the next day without pausing. - Each endpoint has a minimum interval, given in create_watch's schema. Each team has a limit on how often its watches check in total per hour, weighted by interval; a create past it is refused with an error naming the limit. One target per call. For bulk work there is a batch job API (/v1/jobs/batch, up to 500 targets in one request) which is NOT exposed as an MCP tool - it is reachable only over plain HTTP with the same API key. If you cannot make HTTP calls directly, call these tools sequentially and tell the user bulk work is cheaper over the HTTP API.

Tools

260 advertised

amazon_offers — amazon: All seller offers for a product
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

All seller offers for a product. Every offer on an Amazon listing (price, seller, condition, Prime eligibility and shipping), alongside the product itself. Costs 3 credits.

amazon_offers input schema
{
  "type": "object",
  "required": [
    "asin"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Marketplace TLD, default \"com\". One of: com, co.uk, ca, de, es, fr, ie, it, co.jp, co.za, in, cn, com.sg, com.mx, ae, com.br, nl, com.au, com.tr, sa, se, pl"
    },
    "asin": {
      "type": "string",
      "description": "Amazon ASIN, e.g. \"B08N5WRWNW\""
    },
    "condition": {
      "enum": [
        "new",
        "used_like_new",
        "used_very_good",
        "used_good",
        "used_acceptable"
      ],
      "type": "string",
      "description": "Filter offers to one condition."
    },
    "country_code": {
      "type": "string",
      "description": "Best-effort locale hint (ISO 3166-1 alpha-2)."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
amazon_offers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
amazon_product — amazon: Product details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Product details. Public details for one Amazon listing: title, brand, price, availability, rating, specifications and an inline review sample. Costs 3 credits.

amazon_product input schema
{
  "type": "object",
  "required": [
    "asin"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Marketplace TLD, default \"com\". One of: com, co.uk, ca, de, es, fr, ie, it, co.jp, co.za, in, cn, com.sg, com.mx, ae, com.br, nl, com.au, com.tr, sa, se, pl"
    },
    "asin": {
      "type": "string",
      "description": "Amazon ASIN, e.g. \"B08N5WRWNW\""
    },
    "country_code": {
      "type": "string",
      "description": "Best-effort locale hint (ISO 3166-1 alpha-2)."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
amazon_product annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
amazon_search — amazon: Search results
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search results. Public Amazon search results for a query: position, price, rating and badges per item. Costs 3 credits.

amazon_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Marketplace TLD, default \"com\". One of: com, co.uk, ca, de, es, fr, ie, it, co.jp, co.za, in, cn, com.sg, com.mx, ae, com.br, nl, com.au, com.tr, sa, se, pl"
    },
    "page": {
      "type": "number",
      "default": 1
    },
    "query": {
      "type": "string",
      "description": "Search terms, e.g. \"wireless mouse\""
    },
    "country_code": {
      "type": "string",
      "description": "Best-effort locale hint (ISO 3166-1 alpha-2)."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
amazon_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
amazon_shop — amazon: Amazon Shop page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Amazon Shop page. A creator's public Amazon storefront: their name, the product links the page exposes, and the storefront feed of idea lists (with Amazon's own item count), shoppable videos (id, title, thumbnail and attached ASINs) and shoppable photos. The first request needs no pageToken and already returns the videos embedded on the page. Pass `pagination.cursor` back as `pageToken`, unchanged, with the same shop URL for the next page; a page can carry lists, videos, photos or any mix. A continuation page carries the feed ONLY. Amazon serves it as a fragment with no profile markup, so every identity field (display name, bio, avatar) is null on page two onwards. ASINs are the products the storefront shows attached to an item, which for a long idea list is the first screenful rather than the whole list; `itemCount` is the true total. Costs 1 credit.

amazon_shop input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Storefront URL (https://www.amazon.com/shop/<handle>) or just the handle"
    },
    "pageToken": {
      "type": "string",
      "description": "Opaque page token returned by a previous response for the same shop URL. Pass it back unchanged and do not infer the response type from its value."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
amazon_shop annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
appleMusic_album — apple-music: Album details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Album details. Public Apple Music album: artist, release date, genre, artwork and total runtime. The track listing and copyright line are in `raw`, behind `include_raw=true`. Costs 1 credit.

appleMusic_album input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Apple Music album id (1708308989) or a music.apple.com album URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
appleMusic_album annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
appleMusic_artist — apple-music: Artist details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Artist details. Public Apple Music artist page: editorial bio, artist image, banner and genre. Apple publishes no follower or play counts, so those fields are null rather than guessed. Costs 1 credit.

appleMusic_artist input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Apple Music artist id (159260351) or a music.apple.com artist URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
appleMusic_artist annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
appleMusic_search — apple-music: Search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search. Search the Apple Music catalogue for tracks, albums or artists. Tracks and albums come back as posts; artists come back as creators. Costs 1 credit.

appleMusic_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "track",
        "album",
        "artist",
        "song"
      ],
      "type": "string",
      "default": "track",
      "description": "`song` is the same as `track`"
    },
    "limit": {
      "type": "number",
      "default": 25
    },
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "country": {
      "type": "string",
      "default": "us",
      "description": "Two-letter storefront, e.g. us, gb, de"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
appleMusic_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
appleMusic_track — apple-music: Track details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Track details. Public Apple Music track: artist, album, duration, genre, release date and the 30-second preview URL. Costs 1 credit.

appleMusic_track input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Apple Music track id (1833328840), a /song/ URL, or an album URL with ?i=<track id>"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
appleMusic_track annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
bitchute_channel — bitchute: Channel profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel profile. A public BitChute channel: name, description, subscriber count, video count, total views and creation date. Costs 1 credit.

bitchute_channel input schema
{
  "type": "object",
  "required": [
    "channel"
  ],
  "properties": {
    "channel": {
      "type": "string",
      "description": "Channel id (EhBWKghMUros), the channel name from its URL (nextnewsnetwork), or a bitchute.com/channel/... URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
bitchute_channel annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
bitchute_channelVideos — bitchute: Channel videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel videos. A BitChute channel's public videos, newest first, 50 per page, with view counts. Likes and comment counts are not in the list; `bitchute.video` has likes. Pass the `cursor` from the previous response to page. Costs 1 credit.

bitchute_channelVideos input schema
{
  "type": "object",
  "required": [
    "channel"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "channel": {
      "type": "string",
      "description": "Channel id (EhBWKghMUros), the channel name from its URL (nextnewsnetwork), or a bitchute.com/channel/... URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
bitchute_channelVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
bitchute_search — bitchute: Search videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search videos. Public BitChute video search, 50 per page, with view counts and the uploading channel. Costs 1 credit.

bitchute_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "sort": {
      "enum": [
        "new",
        "old",
        "views"
      ],
      "type": "string",
      "default": "new"
    },
    "query": {
      "type": "string",
      "description": "Search terms, at least two characters"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
bitchute_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
bitchute_video — bitchute: Video details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video details. A public BitChute video: title, description, hashtags, duration, publish date, channel, views and likes. Dislikes are in `raw`. `commentCount` is always null. Costs 1 credit.

bitchute_video input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "BitChute video URL (bitchute.com/video/uIh_YOS_Lm4/) or a bare video id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
bitchute_video annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
bluesky_post — bluesky: Post
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post. A single public Bluesky post with like, reply, repost and quote counts, plus any attached images or video. Costs 1 credit.

bluesky_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (https://bsky.app/profile/<handle>/post/<id>) or an at:// URI"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
bluesky_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
bluesky_profile — bluesky: Profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile. Public profile for a Bluesky account: followers, following, post count, bio, avatar, banner, and verification status. Costs 1 credit.

bluesky_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (alice.bsky.social), a did:plc:… identifier, or a bsky.app profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
bluesky_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
bluesky_search — bluesky: Search posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search posts. Public Bluesky posts matching a keyword, newest first. Costs 1 credit.

bluesky_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Keyword or phrase to search for"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
bluesky_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
bluesky_userPosts — bluesky: User posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User posts. Recent public posts from a Bluesky account, newest first. Reposts are excluded by default so the feed reflects what the account actually wrote. Costs 1 credit.

bluesky_userPosts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "number",
      "default": 50
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle, did, or bsky.app profile URL"
    },
    "cache_max_age": {
      "type": "string"
    },
    "include_reposts": {
      "type": "string",
      "description": "Include reposts of other accounts. Default false."
    }
  }
}
bluesky_userPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
dailymotion_channel — dailymotion: Channel profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel profile. Public profile of a Dailymotion channel: followers, following, video count, lifetime views, verification badge, country and creation date. Costs 1 credit.

dailymotion_channel input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Channel username (wired), user id (x1audmk) or a dailymotion.com/<username> URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
dailymotion_channel annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
dailymotion_channelVideos — dailymotion: Channel videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel videos. A Dailymotion channel's public uploads, newest first, 50 per page, all the way back to the first upload. Pass the `cursor` from the previous response to page. Costs 1 credit.

dailymotion_channelVideos input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Channel username (wired), user id (x1audmk) or a dailymotion.com/<username> URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
dailymotion_channelVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
dailymotion_search — dailymotion: Search videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search videos. Public Dailymotion video search, 50 per page. Dailymotion returns at most the first 1,000 results for any query, so paging stops there. Costs 1 credit.

dailymotion_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "sort": {
      "enum": [
        "relevance",
        "recent",
        "visited"
      ],
      "type": "string",
      "default": "relevance",
      "description": "`visited` is most viewed"
    },
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
dailymotion_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
dailymotion_video — dailymotion: Video details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video details. Public metadata for a Dailymotion video: views, likes, duration, tags, upload date and channel. Dailymotion has no public comments, so `commentCount` is null. Costs 1 credit.

dailymotion_video input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video id (x9529ik) or a dailymotion.com/video/… or dai.ly/… URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
dailymotion_video annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
dailymotion_transcript — dailymotion: Video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video transcript. A Dailymotion video's captions as one text block plus timed cues. Returns the requested language when the video has it, otherwise the first track. Most are generated automatically by Dailymotion. Costs 1 credit.

dailymotion_transcript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video id (x9529ik) or a dailymotion.com/video/… or dai.ly/… URL"
    },
    "language": {
      "type": "string",
      "description": "Language code, e.g. \"en\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
dailymotion_transcript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_album — deezer: Album details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Album details. A Deezer album: title, artist, label, UPC, release date, fans (`likeCount`) and its tracks. Pass `cursor` to page the tracks of a long album. Costs 1 credit.

deezer_album input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer album id"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_album annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_artist — deezer: Artist profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Artist profile. A Deezer artist: name, fans, album count, picture and link. Costs 1 credit.

deezer_artist input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer artist id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_artist annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_artistAlbums — deezer: Artist albums
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Artist albums. An artist's albums, singles and EPs on Deezer. `likeCount` is the release's fans. Costs 1 credit.

deezer_artistAlbums input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer artist id"
    },
    "limit": {
      "type": "number",
      "default": 25
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_artistAlbums annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_artistTopTracks — deezer: Artist top tracks
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Artist top tracks. An artist's most popular tracks on Deezer, most popular first. Costs 1 credit.

deezer_artistTopTracks input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer artist id"
    },
    "limit": {
      "type": "number",
      "default": 25
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_artistTopTracks annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_charts — deezer: Charts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Charts. Deezer's global top tracks, albums, artists, playlists or podcasts. Costs 1 credit.

deezer_charts input schema
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "tracks",
        "albums",
        "artists",
        "playlists",
        "podcasts"
      ],
      "type": "string",
      "default": "tracks"
    },
    "limit": {
      "type": "number",
      "default": 25
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_charts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_playlist — deezer: Playlist contents
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Playlist contents. A public Deezer playlist: title, owner, description, cover, track count, fans and its tracks. Pass `cursor` to page the tracks of a long playlist. Costs 1 credit.

deezer_playlist input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer playlist id"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_playlist annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_podcast — deezer: Podcast details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Podcast details. A Deezer podcast: title, description, artwork and fans. Deezer publishes no episode count, so `postCount` is null. Costs 1 credit.

deezer_podcast input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer podcast id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_podcast annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_podcastEpisodes — deezer: Podcast episodes
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Podcast episodes. A Deezer podcast's episodes, newest first. Costs 1 credit.

deezer_podcastEpisodes input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer podcast id"
    },
    "limit": {
      "type": "number",
      "default": 25
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_podcastEpisodes annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_search — deezer: Search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search. Search Deezer's catalogue for tracks, albums, artists, playlists or podcasts. Costs 1 credit.

deezer_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "track",
        "album",
        "artist",
        "playlist",
        "podcast"
      ],
      "type": "string",
      "default": "track"
    },
    "limit": {
      "type": "number",
      "default": 25
    },
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_track — deezer: Track details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Track details. A Deezer track: title, artist, album artwork, duration, release date, ISRC and tempo. Costs 1 credit.

deezer_track input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer track id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_track annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
deezer_userPlaylists — deezer: User playlists
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User playlists. A Deezer user's public playlists. Costs 1 credit.

deezer_userPlaylists input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric Deezer user id"
    },
    "limit": {
      "type": "number",
      "default": 25
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
deezer_userPlaylists annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
inference_ageGender — inference: Estimate age and gender from an image
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Estimate age and gender from an image. Apparent age and gender estimated from a public image URL. This is a model ESTIMATE, not measured platform data, and every response is labelled as such. Requires an inference provider to be configured on the deployment. Costs 1 credit.

inference_ageGender input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Public image URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
inference_ageGender annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
ebay_product — ebay: eBay listing details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

eBay listing details. Public details for an eBay listing: title, price, condition, seller and an inline sample of reviews. Costs 1 credit. Pass either `product_id` or `url`.

ebay_product input schema
{
  "type": "object",
  "properties": {
    "tld": {
      "type": "string",
      "description": "eBay marketplace, default com. One of: com, co.uk, com.au, de, ca, fr, it, es, at, ch, com.sg, com.my, ph, ie, pl, nl"
    },
    "url": {
      "type": "string",
      "description": "eBay listing URL, e.g. https://www.ebay.com/itm/166619046796"
    },
    "product_id": {
      "type": "string",
      "description": "Numeric eBay item id, e.g. 166619046796"
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
ebay_product annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
ebay_search — ebay: Search eBay listings
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search eBay listings. Public eBay search results for a query, with eBay's own filters and sort orders. Costs 1 credit.

ebay_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "eBay marketplace, default com. One of: com, co.uk, com.au, de, ca, fr, it, es, at, ch, com.sg, com.my, ph, ie, pl, nl"
    },
    "page": {
      "type": "number"
    },
    "query": {
      "type": "string",
      "description": "Search terms, e.g. \"iphone 13\""
    },
    "sort_by": {
      "enum": [
        "ending_soonest",
        "newly_listed",
        "price_lowest",
        "price_highest",
        "distance_nearest",
        "best_match"
      ],
      "type": "string"
    },
    "condition": {
      "type": "string",
      "description": "Comma list: new, used, open_box, refurbished, for_parts, not_working"
    },
    "seller_id": {
      "type": "string"
    },
    "show_only": {
      "type": "string",
      "description": "Comma list: returns_accepted, authorized_seller, completed_items, sold_items, sale_items, listed_as_lots, search_in_description, benefits_charity, authenticity_guarantee"
    },
    "country_code": {
      "type": "string"
    },
    "buying_format": {
      "type": "string",
      "description": "Comma list: buy_it_now, auction, accepts_offers"
    },
    "cache_max_age": {
      "type": "string"
    },
    "items_per_page": {
      "type": "number"
    }
  }
}
ebay_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_ad — facebook: Ad details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Ad details. One ad from the Meta Ad Library by its archive id. Meta does not expose the archive as an addressable node for every ad; pass `page_id` as well and we find it by scanning that advertiser's archive instead. Costs 1 credit.

facebook_ad input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Ad archive id, or an Ad Library URL containing `?id=`"
    },
    "country": {
      "type": "string",
      "default": "US",
      "description": "Reached country used by the fallback scan"
    },
    "page_id": {
      "type": "string",
      "description": "The advertiser's page id. Enables the archive-scan fallback."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_ad annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_adTranscript — facebook: Ad video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Ad video transcript. Retrieves a transcript for a single Facebook Ad Library video ad by ID or URL, read from the caption track Facebook publishes for the ad's video (`source: "captions"`). Transcription of ad videos without captions is coming soon; until then those answer `not_configured` (501) and are not charged. Credits are only deducted when a transcript is actually returned. Costs 1 credit. Pass exactly one of `id` or `url`.

facebook_adTranscript input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Ad archive id, or an Ad Library URL containing `?id=`"
    },
    "url": {
      "type": "string",
      "description": "An Ad Library URL containing `?id=`"
    },
    "language": {
      "type": "string",
      "description": "Preferred caption locale"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_adTranscript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_adLibraryAdvertisers — facebook: Find advertisers running ads
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Find advertisers running ads. Distinct advertisers whose ads match a search term, with the `page_id` needed by /v1/facebook/ad-library/page-ads. Derived from the ads an Ad Library search returns, ranked by how many of them each advertiser ran. Costs 1 credit.

facebook_adLibraryAdvertisers input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "string",
      "description": "Ads sampled, 1-100. More ads means more advertisers."
    },
    "query": {
      "type": "string",
      "description": "Advertiser name or a term from their ad copy"
    },
    "status": {
      "enum": [
        "active",
        "inactive",
        "all"
      ],
      "type": "string",
      "default": "active"
    },
    "country": {
      "type": "string",
      "default": "US"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_adLibraryAdvertisers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_pageAds — facebook: All ads for one advertiser
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

All ads for one advertiser. Ads a specific Facebook page is running or has run, from Meta's Ad Library. This is the competitor-monitoring endpoint. `pagination.cursor` is filled only where the deployment reads the Graph Ad Library API; otherwise `pagination.hasMore` says whether more exist. Costs 2 credits.

facebook_pageAds input schema
{
  "type": "object",
  "required": [
    "page_id"
  ],
  "properties": {
    "limit": {
      "type": "string",
      "description": "Ads per page, 1-100. Default 25."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "status": {
      "enum": [
        "active",
        "inactive",
        "all"
      ],
      "type": "string",
      "default": "active",
      "description": "Delivery status at the time of the query."
    },
    "ad_type": {
      "enum": [
        "all",
        "political",
        "housing",
        "employment",
        "credit"
      ],
      "type": "string",
      "default": "all",
      "description": "`political` unlocks Meta's spend, impression and demographic fields."
    },
    "country": {
      "type": "string",
      "default": "US",
      "description": "ISO-3166 country code(s) the ad reached, comma-separated. Meta requires at least one."
    },
    "page_id": {
      "type": "string",
      "description": "Numeric page id, or an Ad Library URL containing `view_all_page_id`"
    },
    "end_date": {
      "type": "string",
      "description": "Latest delivery date, YYYY-MM-DD"
    },
    "language": {
      "type": "string",
      "description": "Comma-separated BCP-47 codes, e.g. \"en,es\""
    },
    "platform": {
      "type": "string",
      "description": "Comma-separated: facebook, instagram, messenger, audience_network, threads, whatsapp, oculus"
    },
    "media_type": {
      "enum": [
        "all",
        "image",
        "meme",
        "video",
        "none"
      ],
      "type": "string"
    },
    "start_date": {
      "type": "string",
      "description": "Earliest delivery date, YYYY-MM-DD"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_pageAds annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_adLibrarySearch — facebook: Search the Meta Ad Library
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search the Meta Ad Library. Facebook, Instagram, Messenger and Threads ads matching a search term, from Meta's Ad Library, in the Library's own order. Spend and impression ranges are filled for political and issue ads only where the deployment reads the Graph Ad Library API; `pagination.hasMore` says when more results exist. Costs 2 credits.

facebook_adLibrarySearch input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "string",
      "description": "Ads per page, 1-100. Default 25."
    },
    "query": {
      "type": "string",
      "description": "Search term, matched against ad text and advertiser name"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "status": {
      "enum": [
        "active",
        "inactive",
        "all"
      ],
      "type": "string",
      "default": "active",
      "description": "Delivery status at the time of the query."
    },
    "ad_type": {
      "enum": [
        "all",
        "political",
        "housing",
        "employment",
        "credit"
      ],
      "type": "string",
      "default": "all",
      "description": "`political` unlocks Meta's spend, impression and demographic fields."
    },
    "country": {
      "type": "string",
      "default": "US",
      "description": "ISO-3166 country code(s) the ad reached, comma-separated. Meta requires at least one."
    },
    "end_date": {
      "type": "string",
      "description": "Latest delivery date, YYYY-MM-DD"
    },
    "language": {
      "type": "string",
      "description": "Comma-separated BCP-47 codes, e.g. \"en,es\""
    },
    "platform": {
      "type": "string",
      "description": "Comma-separated: facebook, instagram, messenger, audience_network, threads, whatsapp, oculus"
    },
    "media_type": {
      "enum": [
        "all",
        "image",
        "meme",
        "video",
        "none"
      ],
      "type": "string"
    },
    "start_date": {
      "type": "string",
      "description": "Earliest delivery date, YYYY-MM-DD"
    },
    "search_type": {
      "enum": [
        "unordered",
        "exact_phrase"
      ],
      "type": "string",
      "default": "unordered",
      "description": "`exact_phrase` matches the words in order"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_adLibrarySearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_cityEvents — facebook: Get the events of a city
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Get the events of a city. Public events Facebook is suggesting for a city, from its Events Explore feed (e.g. https://www.facebook.com/events/explore/saint-petersburg-florida/111326725552547). `time` narrows the window to today, this week, or next week; without it Facebook returns whatever it has queued as upcoming, in whatever order it ranks them. Only the first, server-rendered page: host and description are not exposed on this listing (only on /v1/facebook/event). `pagination.hasMore` says whether Facebook has more; this endpoint returns no cursor to fetch them. Costs 1 credit.

facebook_cityEvents input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Explore URL (\"facebook.com/events/explore/<city-slug>/<id>\") or a bare \"<city-slug>/<id>\" pair"
    },
    "time": {
      "enum": [
        "today",
        "this_week",
        "next_week"
      ],
      "type": "string",
      "description": "Narrow to Facebook's own window. Defaults to all upcoming."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_cityEvents annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_commentReplies — facebook: Replies to a comment
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Replies to a comment. Replies under one comment on a public Facebook post, ten per page. Pass the post URL and the comment id (the `id` of any item from /v1/facebook/post-comments), then `pagination.cursor` for the next page. Costs 1 credit.

facebook_commentReplies input schema
{
  "type": "object",
  "required": [
    "url",
    "comment_id"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Full post URL the comment sits on"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "comment_id": {
      "type": "string",
      "description": "Numeric comment id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_commentReplies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_event — facebook: Event details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Event details. Full details for one public Facebook event: description, start and end time, venue with coordinates, host and ticket price range. Costs 1 credit.

facebook_event input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Event URL or numeric event id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_event annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_eventsSearch — facebook: Search public events
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search public events. Public Facebook events matching a search term. Results are ranked and biased toward where Facebook places the request, so the same query can return a different set on another call. Treat this as discovery, not as an enumerable list. Costs 1 credit.

facebook_eventsSearch input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "What to search for, e.g. \"jazz festival\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_eventsSearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_group — facebook: Public group info
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Public group info. Name, member count, privacy setting and description for a public Facebook group. Member count lands in `followerCount` (a group's equivalent of an audience size) and the privacy setting in `category`. Facebook rounds that count on large groups ("12K members"); `raw.memberCountIsApproximate` says whether the number you got was rounded. Costs 1 credit.

facebook_group input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Group URL, group id, or group slug"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_group annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_groupPosts — facebook: Public group posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Public group posts. Recent posts from a public Facebook group, with reaction, comment and share counts where Facebook renders them. Only the newest few stories render to a logged-out visitor, the same limit /v1/facebook/page-posts has. Private groups return an empty result; their posts are not public and we do not log in. Costs 1 credit.

facebook_groupPosts input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Group URL, group id, or group slug"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_groupPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_marketplaceItem — facebook: Marketplace listing details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Marketplace listing details. One public Facebook Marketplace listing: title, full description, price, location, delivery options and every photo. Facebook does not render the seller to a logged-out visitor, so seller identity is not returned. Costs 1 credit.

facebook_marketplaceItem input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Marketplace item URL or numeric listing id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_marketplaceItem annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_marketplaceLocations — facebook: Find a Marketplace location
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Find a Marketplace location. Resolve a place name to the Marketplace location ids /v1/facebook/marketplace/search accepts, plus the neighbouring locations Facebook offers around it. Marketplace is city-scoped, so this is how you search a city you are not sitting in. Costs 1 credit.

facebook_marketplaceLocations input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Place name, e.g. \"London\" or \"San Francisco\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_marketplaceLocations annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_marketplaceSearch — facebook: Search Marketplace listings
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search Marketplace listings. Public Facebook Marketplace listings matching a search term, with price, condition flags, location and photos. `location` takes a city slug or a location id from /v1/facebook/marketplace/locations; without one, Facebook picks the city it places the request in, which you do not control. Pass `location` for results you can repeat. Costs 1 credit.

facebook_marketplaceSearch input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "What to search for, e.g. \"mountain bike\""
    },
    "sort_by": {
      "enum": [
        "best_match",
        "creation_time_descend",
        "price_ascend",
        "price_descend",
        "distance_ascend"
      ],
      "type": "string",
      "description": "Facebook's own sort keys"
    },
    "location": {
      "type": "string",
      "description": "City slug (\"nyc\", \"london\") or a location id from /v1/facebook/marketplace/locations"
    },
    "max_price": {
      "type": "string",
      "description": "Highest price, in the location's currency"
    },
    "min_price": {
      "type": "string",
      "description": "Lowest price, in the location's currency"
    },
    "radius_km": {
      "type": "string",
      "description": "Search radius around the location, in kilometres"
    },
    "cache_max_age": {
      "type": "string"
    },
    "delivery_method": {
      "enum": [
        "local_pick_up",
        "shipping"
      ],
      "type": "string",
      "description": "Restrict to collection-only or shipped listings"
    },
    "days_since_listed": {
      "type": "string",
      "description": "Only listings posted in the last N days"
    }
  }
}
facebook_marketplaceSearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_pagePosts — facebook: Public Page posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Public Page posts. Recent public posts from a Facebook Page, newest first, three per page, with text, reaction, comment and share counts, and the publish timestamp. Pass `pagination.cursor` back for the next three. Costs 1 credit.

facebook_pagePosts input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL, @handle, slug, or numeric page id"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_pagePosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_pageReels — facebook: Public Page videos and reels
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Public Page videos and reels. Public videos and reels from a Facebook Page. Reads the Page's reels tab first, ten per page with `pagination.cursor` for the next ten, and falls back to its video grid, which renders around twenty entries with titles, view counts and durations and has no cursor, so a Page with no reels returns its videos rather than an error. Items are keyed by video id and can be passed straight to /v1/facebook/post or /v1/facebook/post-transcript. Costs 1 credit.

facebook_pageReels input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL, @handle, slug, or numeric page id"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_pageReels annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_post — facebook: Single post, video, or reel
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Single post, video, or reel. One public Facebook post, video or reel by URL, with its text and engagement counts. Costs 1 credit.

facebook_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Full post, video, or reel URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_postComments — facebook: Comments on a post
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Comments on a post. Top-level comments on a public Facebook post, with author, reaction count and reply count, in Facebook's "Most relevant" order. The first page is the head of the thread Facebook renders into the post, usually two comments; pass `pagination.cursor` back for the next ten. The post's full comment total is on /v1/facebook/post. Use /v1/facebook/comment-replies for the replies under one comment. `likeCount` is only as precise as Facebook publishes it: comment reactions ship in abbreviated form ("2.4K") with no exact figure anywhere in the payload, so counts above about a thousand are rounded at source. Costs 1 credit.

facebook_postComments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Full post, video, or reel URL"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_postComments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_postTranscript — facebook: Video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video transcript. Transcript for a public Facebook video or reel, as one text block plus timed cues. Reads the caption track Facebook publishes for the video, auto-generated when the uploader added none (`source: "captions"`). Transcription of videos without captions is coming soon; until then such a video answers `not_configured` (501) and is not charged. Costs 1 credit.

facebook_postTranscript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Full video or reel URL"
    },
    "language": {
      "type": "string",
      "description": "Preferred caption locale, e.g. \"en\" or \"en_US\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_postTranscript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_profile — facebook: Public Page profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Public Page profile. Name, category, follower and like counts, description, banner and outbound links for a public Facebook Page. `followerCount` is as precise as Facebook renders it: exact on a small Page ("498 followers"), rounded on a large one ("28M followers", so ±500,000). `raw.followerCountIsApproximate` says which you got, and `raw.likeCount` carries the exact like figure Facebook always prints. Pass `extra_fetch=true` to also fill `createdAt`, the date the Page was created, which lives only on the Page transparency tab: it costs 1 extra credit and one large additional fetch, refunded if that fetch cannot be read. Costs 1 credit.

facebook_profile input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL, @handle, slug, or numeric page id"
    },
    "extra_fetch": {
      "type": "string",
      "description": "When true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_profileEvents — facebook: Events on a Page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Events on a Page. Events hosted by a public Facebook Page, upcoming ones first, with past events where Facebook still lists them, eight per page; pass `pagination.cursor` back for the next eight. Each carries start time, place, host and the cover photo. Costs 1 credit.

facebook_profileEvents input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL, @handle, slug, or numeric page id"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_profileEvents annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
facebook_profilePhotos — facebook: Photos on a Page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Photos on a Page. Photos from a public Facebook Page's photo grid, eight per page, newest first; pass `pagination.cursor` back for the next eight. Facebook exposes each photo's accessibility caption rather than the text of the post it came from, so that is what lands in `title`. Costs 1 credit.

facebook_profilePhotos input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL, @handle, slug, or numeric page id"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
facebook_profilePhotos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
identity_findSocialProfiles — identity: Find a creator's other social profiles
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Find a creator's other social profiles. Starts from one public profile and reports the other accounts that profile can be shown to own: profiles it links to directly, profiles reached through a recognised link-in-bio page (Linktree, Komi, Pillar, Lnk.Bio, LinkMe), and same-handle accounts on the other supported platforms that link back to the source or share a website only the owner controls. Covers Instagram, TikTok, YouTube, X and Facebook. A same-handle account with no corroboration is reported under `candidates`, never as a profile: the handle matching is a fact handed over, not a claim. There is no search-engine discovery and no display-name matching; neither is evidence of ownership. Every result carries the evidence type it rests on. Each entry in `failures` carries the inner error’s `code` and `message`, so "we checked and found nothing" (`upstream_not_found`, `empty_result`) stays distinguishable from "we could not check" (`upstream_blocked`, `not_configured`); only the second kind sets `partial`. Not covered: any platform outside the five, and links a creator has not published. An X/Twitter source can only be resolved by same-handle probing, because X exposes no bio links at all to a logged-out caller. The 20-second budget stops the composite scheduling new inner fetches; it does not abort one already in flight, so a slow leg is reported as a timeout while its request finishes unread. Link-in-bio expansion is verified against fixtures only, because no channel sampled live from our network published a link-in-bio URL to expand. A `partial: true` answer is cached for the same seven days as a complete one, so pass `cache_max_age=0` to refetch after a transient block rather than being served the gap for a week. Pricing is per source checked: the 10 credits buy the legs this call runs (the starting profile, each link-in-bio page expanded, and each same-handle probe), and a leg listed in `unchecked` is not charged for, so a partial answer costs `ceil(10 x legs answered / legs attempted)` and never more than 10. **Any response with an empty `profiles` AND an empty `candidates` costs nothing at all**, whatever `unchecked` says: an answer carrying no account has delivered nothing to charge for, and the `unchecked` disclosure ships free. When every leg was checked and none carries another account that free answer is an `empty_result`; when nothing beyond the starting profile could be checked it is an error, because "no other accounts" would then be a fact we did not establish. Costs 10 credits.

identity_findSocialProfiles input schema
{
  "type": "object",
  "required": [
    "platform",
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Bare handle (@nasa). YouTube also accepts a UC… channel id. URLs are rejected."
    },
    "platform": {
      "enum": [
        "instagram",
        "tiktok",
        "youtube",
        "x",
        "twitter",
        "facebook"
      ],
      "type": "string",
      "description": "Platform the handle belongs to. `x` is an alias for `twitter`."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
identity_findSocialProfiles annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_repository — github: Repository details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Repository details. Public details for a repository: stars, forks, open issues, topics, language and licence. Stars map to `likeCount`, forks to `shareCount`; open issues and pull requests are `openIssuesCount`. Costs 1 credit.

github_repository input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "\"owner/repo\" or a github.com repository URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_repository annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_trendingDevelopers — github: Trending developers
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Trending developers. The public github.com/trending/developers board. Counts are null: the board renders names and popular repositories, not follower numbers. Costs 1 credit.

github_trendingDevelopers input schema
{
  "type": "object",
  "properties": {
    "since": {
      "enum": [
        "daily",
        "weekly",
        "monthly"
      ],
      "type": "string",
      "default": "daily"
    },
    "language": {
      "type": "string",
      "description": "Language slug, e.g. \"rust\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_trendingDevelopers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_trendingRepositories — github: Trending repositories
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Trending repositories. The public github.com/trending board. `likeCount` is total stars, `shareCount` total forks and `starsInPeriod` the stars gained in the chosen period. Costs 1 credit.

github_trendingRepositories input schema
{
  "type": "object",
  "properties": {
    "since": {
      "enum": [
        "daily",
        "weekly",
        "monthly"
      ],
      "type": "string",
      "default": "daily"
    },
    "language": {
      "type": "string",
      "description": "Language slug, e.g. \"typescript\""
    },
    "cache_max_age": {
      "type": "string"
    },
    "spoken_language_code": {
      "type": "string",
      "description": "Two-letter code, e.g. \"en\""
    }
  }
}
github_trendingRepositories annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_user — github: User or organisation profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User or organisation profile. Public profile for a GitHub user or organisation: followers, public repo count, bio, location and links. Costs 1 credit. Pass either `handle` or `url`.

github_user input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Profile URL, e.g. https://github.com/torvalds"
    },
    "handle": {
      "type": "string",
      "description": "Username, e.g. \"torvalds\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_user annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_activity — github: Public activity
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Public activity. Public events for a user: pushes, pull requests, issues, stars, forks and releases. GitHub caps this feed at 300 events / 90 days regardless of paging. Costs 1 credit. Pass either `handle` or `url`.

github_activity input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Profile URL, e.g. https://github.com/torvalds"
    },
    "cursor": {
      "type": "string",
      "description": "Page number from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Username, e.g. \"torvalds\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_activity annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_contributions — github: Contributions calendar
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Contributions calendar. The contribution graph for one calendar year: a per-day count plus GitHub's 0–4 intensity level, and the annual total. Costs 1 credit. Pass either `handle` or `url`.

github_contributions input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Profile URL, e.g. https://github.com/torvalds"
    },
    "year": {
      "type": "string",
      "description": "Calendar year, e.g. \"2025\". Defaults to the current year."
    },
    "handle": {
      "type": "string",
      "description": "Username, e.g. \"torvalds\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_contributions annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_followers — github: Followers
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Followers. Accounts following this user, 30 per page. GitHub serves a reduced user payload here, so per-account counts are null. Costs 1 credit. Pass either `handle` or `url`.

github_followers input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Profile URL, e.g. https://github.com/torvalds"
    },
    "cursor": {
      "type": "string",
      "description": "Page number from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Username, e.g. \"torvalds\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_followers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_following — github: Following
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Following. Accounts this user follows, 30 per page. GitHub serves a reduced user payload here, so per-account counts are null. Costs 1 credit. Pass either `handle` or `url`.

github_following input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Profile URL, e.g. https://github.com/torvalds"
    },
    "cursor": {
      "type": "string",
      "description": "Page number from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Username, e.g. \"torvalds\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_following annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_pullRequests — github: Pull requests by a user
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Pull requests by a user. Pull requests authored by a user across all public repositories, newest first. `since` / `until` filter on creation date. Costs 1 credit.

github_pullRequests input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "since": {
      "type": "string",
      "description": "Only PRs created on or after this date (YYYY-MM-DD)"
    },
    "until": {
      "type": "string",
      "description": "Only PRs created on or before this date (YYYY-MM-DD)"
    },
    "cursor": {
      "type": "string",
      "description": "Page number from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Username, e.g. \"gaearon\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_pullRequests annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
github_userRepositories — github: User repositories
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User repositories. Public repositories owned by a user or organisation, 30 per page. Costs 1 credit. Pass either `handle` or `url`.

github_userRepositories input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Profile URL, e.g. https://github.com/torvalds"
    },
    "sort": {
      "enum": [
        "created",
        "updated",
        "pushed",
        "full_name"
      ],
      "type": "string",
      "default": "updated"
    },
    "type": {
      "enum": [
        "all",
        "owner",
        "member"
      ],
      "type": "string",
      "default": "owner"
    },
    "cursor": {
      "type": "string",
      "description": "Page number from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Username, e.g. \"torvalds\""
    },
    "direction": {
      "enum": [
        "asc",
        "desc"
      ],
      "type": "string",
      "default": "desc"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
github_userRepositories annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
google_ad — google: Ad details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Ad details. One creative from the Ads Transparency Centre, with every rendering variant and the per-country dates it ran. For a text ad, `headline`, `body` and `linkUrl` come from its rendered preview, and `linkUrl` is the address the ad displays. Costs 1 credit.

google_ad input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Creative URL, e.g. https://adstransparency.google.com/advertiser/AR.../creative/CR...?region=US"
    },
    "region": {
      "type": "string",
      "description": "Overrides the region in the URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
google_ad annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
google_advertiserAds — google: Ads run by an advertiser or domain
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Ads run by an advertiser or domain. Creatives in the Ads Transparency Centre for one advertiser id or one verified domain, with first-shown and last-shown dates. Pass the `cursor` from the previous response to page. Costs 2 credits. Pass either `domain` or `advertiser_id`.

google_advertiserAds input schema
{
  "type": "object",
  "properties": {
    "cursor": {
      "type": "string",
      "description": "Continuation token from the previous response"
    },
    "domain": {
      "type": "string",
      "description": "Verified advertiser domain, e.g. \"nike.com\""
    },
    "region": {
      "type": "string",
      "default": "US",
      "description": "Two-letter country code (US, GB, DE, IN, ...) or a Google geo criteria id"
    },
    "advertiser_id": {
      "type": "string",
      "description": "Advertiser id from /ad-library/advertisers, e.g. \"AR167...\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
google_advertiserAds annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
google_adLibraryAdvertisers — google: Find advertisers in the Ads Transparency Centre
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Find advertisers in the Ads Transparency Centre. Advertisers matching a name, with the advertiser id that /v1/google/ad-library/advertiser-ads needs, plus the verified domains Google suggests for the same term in `domains`. Without `region` every region is searched. `postCount` and `adCountUpper` are the lower and upper bounds of the ad-count range the archive publishes, counted within `region` when one is given. Costs 1 credit.

google_adLibraryAdvertisers input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Advertiser or brand name, e.g. \"nike\""
    },
    "region": {
      "type": "string",
      "description": "Two-letter country code (US, GB, DE, IN, ...) or a Google geo criteria id. Omit to search every region."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
google_adLibraryAdvertisers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
google_jobs — google: Google Jobs results
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Google Jobs results. Job postings for a query: title, company, location and the board it was syndicated from. Shares the `/search` anti-bot gate `google.search` already documents; a blocked attempt returns `upstream_blocked` and is not charged. Costs 5 credits.

google_jobs input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "gl": {
      "type": "string",
      "description": "Two-letter country code Google should bias results toward."
    },
    "hl": {
      "type": "string",
      "default": "en",
      "description": "Host language for the results page, e.g. \"en\", \"de\". Defaults to \"en\"."
    },
    "tld": {
      "type": "string",
      "default": "com",
      "description": "Google marketplace TLD. One of: com, co.uk, ca, de, es, fr, it, co.jp, in, cn, com.sg, com.mx, ae, com.br, nl, com.au, com.tr, sa, se, pl. Defaults to \"com\"."
    },
    "uule": {
      "type": "string",
      "description": "Encoded Google location string for precise geo-targeting."
    },
    "query": {
      "type": "string",
      "description": "Search query"
    },
    "start": {
      "type": "number",
      "description": "0-based result offset."
    },
    "country_code": {
      "type": "string",
      "description": "Two-letter country code. Sets `gl` when `gl` is not given."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
google_jobs annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
google_mapsSearch — google: Google Maps place search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Google Maps place search. Business listings near a coordinate: name, address, phone, rating and hours. Google Maps requires JavaScript to render its result list; an unrendered response returns `upstream_blocked` and is not charged, rather than a silent empty success. Costs 5 credits.

google_mapsSearch input schema
{
  "type": "object",
  "required": [
    "query",
    "latitude",
    "longitude"
  ],
  "properties": {
    "gl": {
      "type": "string",
      "description": "Two-letter country code Google should bias results toward."
    },
    "hl": {
      "type": "string",
      "default": "en",
      "description": "Host language for the results page, e.g. \"en\", \"de\". Defaults to \"en\"."
    },
    "tld": {
      "type": "string",
      "default": "com",
      "description": "Google marketplace TLD. One of: com, co.uk, ca, de, es, fr, it, co.jp, in, cn, com.sg, com.mx, ae, com.br, nl, com.au, com.tr, sa, se, pl. Defaults to \"com\"."
    },
    "uule": {
      "type": "string",
      "description": "Encoded Google location string for precise geo-targeting."
    },
    "query": {
      "type": "string",
      "description": "Search query"
    },
    "start": {
      "type": "number",
      "description": "0-based result offset."
    },
    "latitude": {
      "type": "number",
      "description": "Latitude of the search centre"
    },
    "longitude": {
      "type": "number",
      "description": "Longitude of the search centre"
    },
    "country_code": {
      "type": "string",
      "description": "Two-letter country code. Sets `gl` when `gl` is not given."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
google_mapsSearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
google_news — google: Google News results
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Google News results. News articles for a query: title, source, and published time. Shares the `/search` anti-bot gate `google.search` already documents; a blocked attempt returns `upstream_blocked` and is not charged. Costs 5 credits.

google_news input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "gl": {
      "type": "string",
      "description": "Two-letter country code Google should bias results toward."
    },
    "hl": {
      "type": "string",
      "default": "en",
      "description": "Host language for the results page, e.g. \"en\", \"de\". Defaults to \"en\"."
    },
    "tbs": {
      "enum": [
        "h",
        "d",
        "w",
        "m",
        "y"
      ],
      "type": "string",
      "description": "Time filter: hour/day/week/month/year, as Google's own `qdr` code."
    },
    "tld": {
      "type": "string",
      "default": "com",
      "description": "Google marketplace TLD. One of: com, co.uk, ca, de, es, fr, it, co.jp, in, cn, com.sg, com.mx, ae, com.br, nl, com.au, com.tr, sa, se, pl. Defaults to \"com\"."
    },
    "uule": {
      "type": "string",
      "description": "Encoded Google location string for precise geo-targeting."
    },
    "query": {
      "type": "string",
      "description": "Search query"
    },
    "start": {
      "type": "number",
      "description": "0-based result offset."
    },
    "country_code": {
      "type": "string",
      "description": "Two-letter country code. Sets `gl` when `gl` is not given."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
google_news annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
google_search — google: Web search results
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Web search results. Organic Google results for a query. Google blocks automated queries harder than any other source here, so this endpoint fails more often than the rest; a blocked attempt returns `upstream_blocked` and is not charged. Costs 1 credit.

google_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "page": {
      "type": "string",
      "description": "1-based page number"
    },
    "query": {
      "type": "string"
    },
    "region": {
      "type": "string",
      "default": "US",
      "description": "Two-letter country code (US, GB, DE, IN, ...) or a Google geo criteria id"
    },
    "date_posted": {
      "enum": [
        "hour",
        "day",
        "week",
        "month",
        "year"
      ],
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
google_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
google_shopping — google: Google Shopping results
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Google Shopping results. Shopping tiles for a query: title, price, currency and merchant. Shares the `/search` anti-bot gate `google.search` already documents; a blocked attempt returns `upstream_blocked` and is not charged. Costs 5 credits.

google_shopping input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "gl": {
      "type": "string",
      "description": "Two-letter country code Google should bias results toward."
    },
    "hl": {
      "type": "string",
      "default": "en",
      "description": "Host language for the results page, e.g. \"en\", \"de\". Defaults to \"en\"."
    },
    "tbs": {
      "enum": [
        "h",
        "d",
        "w",
        "m",
        "y"
      ],
      "type": "string",
      "description": "Time filter: hour/day/week/month/year, as Google's own `qdr` code."
    },
    "tld": {
      "type": "string",
      "default": "com",
      "description": "Google marketplace TLD. One of: com, co.uk, ca, de, es, fr, it, co.jp, in, cn, com.sg, com.mx, ae, com.br, nl, com.au, com.tr, sa, se, pl. Defaults to \"com\"."
    },
    "uule": {
      "type": "string",
      "description": "Encoded Google location string for precise geo-targeting."
    },
    "query": {
      "type": "string",
      "description": "Search query"
    },
    "start": {
      "type": "number",
      "description": "0-based result offset."
    },
    "country_code": {
      "type": "string",
      "description": "Two-letter country code. Sets `gl` when `gl` is not given."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
google_shopping annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
hackernews_search — hackernews: Search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search. Hacker News stories and comments matching a search, newest first. Points and comment counts are given for stories; comments come back as plain text with their item page as the URL. Costs 1 credit.

hackernews_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "story",
        "comment",
        "all"
      ],
      "type": "string",
      "default": "all",
      "description": "`story`, `comment`, or `all` for both"
    },
    "query": {
      "type": "string",
      "description": "Search text"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
hackernews_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_audioReels — instagram: Reels using a sound
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Reels using a sound. Reels built on one audio track, the "N reels using this audio" list. Takes the numeric audio id or a /reels/audio/ URL. Falls back to the public audio page, which lists its first grid of reels only once rendered, as links and cover images. Costs 1 credit.

instagram_audioReels input schema
{
  "type": "object",
  "required": [
    "audio_id"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Reels per page, 1-50. Default 12."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "audio_id": {
      "type": "string",
      "description": "Numeric audio id, or a /reels/audio/<id>/ URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_audioReels annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_commentReplies — instagram: Replies under one comment
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Replies under one comment. The full reply thread under a single comment. Take `comment_id` from `data.items[].id` on /v1/instagram/post-comments; the post URL is still required because Instagram addresses replies through the media that carries them. Costs 1 credit.

instagram_commentReplies input schema
{
  "type": "object",
  "required": [
    "url",
    "comment_id"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post, reel or IGTV URL, or a bare shortcode"
    },
    "count": {
      "type": "string",
      "description": "Replies per page, 1-50. Default 24."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "comment_id": {
      "type": "string",
      "description": "`data.items[].id` from /v1/instagram/post-comments"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_commentReplies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_hashtagPosts — instagram: Posts under a hashtag
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Posts under a hashtag. Posts carrying a hashtag. `tab=top` is Instagram's ranking (one fixed page, no cursor); `tab=recent` is chronological and paginates. Falls back to the server-rendered tag page when the JSON surface declines, which returns the top grid only. Set `extra_fetch=true` to fill each post's publish date, like and comment counts and caption from its own page: 1 credit per item fetched, up to the page size. Costs 1 credit.

instagram_hashtagPosts input schema
{
  "type": "object",
  "required": [
    "hashtag"
  ],
  "properties": {
    "tab": {
      "enum": [
        "top",
        "recent"
      ],
      "type": "string",
      "default": "top",
      "description": "Instagram's ranking, or chronological"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response. `recent` only"
    },
    "hashtag": {
      "type": "string",
      "description": "Hashtag (#nasa or nasa), or an /explore/tags/ URL"
    },
    "extra_fetch": {
      "type": "string",
      "description": "When true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_hashtagPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_highlight — instagram: Stories inside a highlight
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Stories inside a highlight. Every story in one highlight reel, oldest first, with its media URLs. Takes the `id` from /v1/instagram/user-highlights, a bare numeric id, or a /stories/highlights/ URL. Costs 1 credit.

instagram_highlight input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Highlight id (\"highlight:17…\" or the bare number), or a /stories/highlights/ URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_highlight annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_popularSearch — instagram: Top posts for a keyword
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Top posts for a keyword. Top posts for a keyword from Instagram's public Popular page for it, the page at instagram.com/popular/<keyword>/: reels, images and carousels together, in Instagram's order. One page; `hasMore` says whether Instagram holds more than it shows. Costs 1 credit.

instagram_popularSearch input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Keyword to search for"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_popularSearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_post — instagram: Post or reel details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post or reel details. One public post, reel or carousel with its caption, media URLs and engagement counts. Falls back to Instagram's public embed payload when the web client's persisted query is unavailable, so a Meta client release degrades this rather than breaking it. Play counts arrive in this same request, so there is no second fetch to skip and no play-count parameter to pass. Costs 1 credit.

instagram_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post, reel or IGTV URL, or a bare shortcode"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_postComments — instagram: Comments on a post or reel
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Comments on a post or reel. Top-level comments, newest first, about fifteen per page, each with its text, author, like count and date. Follow `pagination.cursor` for older comments. Set `include_replies=true` to also return any replies Instagram shipped inline with their parent. For the full reply thread under one comment, use /v1/instagram/comment-replies. Costs 1 credit.

instagram_postComments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post, reel or IGTV URL, or a bare shortcode"
    },
    "count": {
      "type": "string",
      "description": "Comments to ask for per page, 1-50. Default 24. Instagram serves at most about fifteen."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    },
    "include_replies": {
      "type": "string",
      "description": "Include replies that arrived inline with their parent comment"
    }
  }
}
instagram_postComments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_profile — instagram: Profile details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile details. Public profile for an Instagram account: followers, following, post count, bio, links and business category. Private accounts return their public shell with `isPrivate: true` rather than an error. That is a real answer. Costs 1 credit.

instagram_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full instagram.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_profilePostCount — instagram: Post count for a profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post count for a profile. The total post count on a public Instagram profile, exact wherever Instagram publishes the exact figure. Call this when a fuller profile is not needed. `source` names which of the two dialects Instagram ships a count in carried it (`edge_owner_to_timeline_media.count` or `media_count`). Instagram does not expose this metadata for every profile: when neither is present, `postCount` is null and the request is not charged. Costs 1 credit.

instagram_profilePostCount input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full instagram.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_profilePostCount annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_profileSearch — instagram: Search accounts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search accounts. Accounts matching a query, as unified Creators. The follower counts on a search result are Instagram's own summary and are thinner than /v1/instagram/profile. Fetch that for one account you care about. One page only; this surface has no cursor. Costs 1 credit.

instagram_profileSearch input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Handle or name to search for"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_profileSearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_reelsSearch — instagram: Search reels by keyword
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search reels by keyword. Reels matching a keyword, from Instagram's own keyword search rather than its hashtag index. The two return genuinely different sets, so this never quietly substitutes one for the other. Results are whatever Instagram ranked for the query at that moment. Costs 1 credit.

instagram_reelsSearch input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Keyword to search for"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_reelsSearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_search — instagram: Search accounts, hashtags and places
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search accounts, hashtags and places. Instagram's blended search, the one behind the search box. Returns three buckets: `users` as unified Creators, plus `hashtags` and `places`, which have no unified equivalent and keep Instagram's own shape. One page only; this surface has no cursor. Costs 1 credit.

instagram_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "all",
        "users",
        "hashtags",
        "places"
      ],
      "type": "string",
      "default": "all",
      "description": "Restrict to one kind of result"
    },
    "query": {
      "type": "string",
      "description": "What to search for"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_transcript — instagram: Reel or video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Reel or video transcript. The caption track Instagram published for a reel or video, as one text block plus timed cues. This is Instagram's own track, never a transcription of the audio, so a transcript here is what the platform published rather than what a model guessed. Instagram has published no caption track on any reel checked so far, so most requests return `empty_result`, which is free. Costs 1 credit.

instagram_transcript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Reel, post or IGTV URL, or a bare shortcode"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_transcript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_trendingReels — instagram: Reels trending on Explore
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Reels trending on Explore. Reels off Instagram's public Explore grid. Worth knowing what this is and is not: Explore is region-shaped, so what comes back depends on where the request exits, and it is Instagram's editorial surface rather than a global chart. There is no public trending feed on Instagram; this is the closest one that exists. Set `extra_fetch=true` to fill each reel's publish date, caption and duration from its own page: 1 credit per item fetched, up to the page size. Costs 1 credit.

instagram_trendingReels input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "string",
      "description": "Reels per page, 1-50. Default 24."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "extra_fetch": {
      "type": "string",
      "description": "When true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_trendingReels annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_userEmbed — instagram: Profile via the public embed card
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile via the public embed card. A profile read off Instagram's public embed card, with the embed HTML in `raw.html` for anyone who wants to render it. Instagram publishes embeds so third parties can display them, which makes this the profile path it has the least reason to gate. The same reasoning puts the post embed on /v1/instagram/post's fallback. It carries fewer fields than /v1/instagram/profile; reach for it when that one is blocked, or when you want the markup. Costs 1 credit.

instagram_userEmbed input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full instagram.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_userEmbed annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_userHighlights — instagram: Story highlight covers
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Story highlight covers. The highlight reels pinned to a profile: title, cover, and how many stories each holds. Pass an `id` from here to /v1/instagram/highlight for the stories inside one. Highlights are the only Instagram stories that stay public indefinitely: live stories expire in 24 hours and are not served logged-out. Costs 1 credit. Pass either `handle` or `user_id`.

instagram_userHighlights input schema
{
  "type": "object",
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full instagram.com profile URL. Optional if `user_id` is given."
    },
    "user_id": {
      "type": "string",
      "description": "Numeric user id. Skips a lookup. Take it from `data.items[].authorId`."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_userHighlights annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_userPosts — instagram: Posts and reels from a profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Posts and reels from a profile. A profile grid, newest first, twelve posts per page, each with its caption, type and owner. Follow `pagination.cursor` for older posts. On the first page, reels also carry like, comment and play counts; other posts, and every post on later pages, have them null, because the grid does not carry them. No page carries a publish date. Fetch /v1/instagram/post for a specific post to get its counts and date, or set `extra_fetch=true` to fill each post's publish date, like and comment counts and caption from its own page in one call: 1 credit per item fetched, up to the page size. `authorHandle` is read per post: a collab or tagged post appears in a profile grid owned by the OTHER account, and this reports the real owner rather than the handle you asked for. Costs 1 credit.

instagram_userPosts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Posts per page, 1-12. Default 12."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full instagram.com profile URL"
    },
    "extra_fetch": {
      "type": "string",
      "description": "When true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_userPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_userReels — instagram: Reels from a profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Reels from a profile. A profile's reels, newest first, twelve per page, each with like, comment and play counts. Follow `pagination.cursor` for older reels. The first page also carries captions; later pages do not, so `text` is null there, and a collab reel owned by another account has `authorHandle` null. No page carries a publish date; fetch /v1/instagram/post for one reel's date, or set `extra_fetch=true` to fill each reel's publish date, caption and duration from its own page in one call: 1 credit per item fetched, up to the page size. If the reels tab is unavailable, the first page falls back to the clips in the profile grid, with captions but no counts and no cursor. An account with no public reels is an empty result, and is not charged. `raw.source` says which path answered. Costs 1 credit. Pass either `handle` or `user_id`.

instagram_userReels input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "string",
      "description": "Reels per page, 1-12. Default 12."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full instagram.com profile URL. Optional if `user_id` is given."
    },
    "user_id": {
      "type": "string",
      "description": "Numeric user id. Skips a lookup. Take it from `data.items[].authorId`."
    },
    "extra_fetch": {
      "type": "string",
      "description": "When true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_userReels annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
instagram_userTaggedPosts — instagram: Posts a profile is tagged in
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Posts a profile is tagged in. Public posts by other accounts that tagged this user (the "Tagged" tab). Note this is other people's content: `authorHandle` is the poster, not the tagged account. Users can hide the tab, which returns `empty_result`. Costs 1 credit. Pass either `handle` or `user_id`.

instagram_userTaggedPosts input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "string",
      "description": "Posts per page, 1-50. Default 12."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full instagram.com profile URL. Optional if `user_id` is given."
    },
    "user_id": {
      "type": "string",
      "description": "Numeric user id. Skips a lookup. Take it from `data.items[].authorId`."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
instagram_userTaggedPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
kick_clip — kick: Clip
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Clip. A public Kick clip: title, creator, channel, duration, view count, and media URL. Costs 1 credit.

kick_clip input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Clip URL (https://kick.com/<channel>/clips/clip_XXXX or https://kick.com/<channel>?clip=clip_XXXX) or a clip id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
kick_clip annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
komi_page — komi: Komi page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Komi page. Public Komi page as a creator profile: display name, bio, avatar, and every outbound link in order. Costs 1 credit.

komi_page input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL (https://komi.io/<username>) or just the username"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
komi_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
kwai_post — kwai: Post
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post. A single public Kwai video with its view, like, comment and forward counts. Costs 1 credit.

kwai_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (https://www.kwai.com/@<handle>/video/<photo_id> or /photo/<photo_id>)"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
kwai_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
kwai_profile — kwai: Profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile. Public Kwai profile: follower and following counts, public video count, likes received, bio, avatar, and creator category. Costs 1 credit.

kwai_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@carlinhos) or a kwai.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
kwai_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
kwai_userPosts — kwai: User posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User posts. Public videos from a Kwai profile, newest first after any pinned ones, with view, like, comment and forward counts. Pass `pagination.cursor` back as `cursor` for the next page. Costs 1 credit.

kwai_userPosts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@carlinhos) or a kwai.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
kwai_userPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkbio_page — linkbio: Lnk.Bio page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Lnk.Bio page. Public Lnk.Bio page as a creator profile: display name, bio, avatar, and every outbound link in order. Costs 1 credit.

linkbio_page input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL (https://lnk.bio/<username>) or just the username"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkbio_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkedin_ad — linkedin: Ad details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Ad details. One ad from LinkedIn's public Ad Library: creative, copy, advertiser, and the paying entity. Ads covered by EU disclosure rules also carry run dates, target countries and impression bands; ads outside those rules do not, and those fields come back null rather than guessed. Costs 1 credit.

linkedin_ad input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Ad Library URL (linkedin.com/ad-library/detail/...) or the numeric ad id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkedin_ad annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkedin_adsSearch — linkedin: Search ads
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search ads. Search LinkedIn's public Ad Library by advertiser or keyword. Pass `company` (a company page slug or numeric id) to list one advertiser's ads, `keyword` to search copy, or both. Returns the first page LinkedIn server-renders, about 25 ads; the total number of matches is in `raw.totalMatches`. Costs 1 credit. Pass `company`, `keyword`, or both. The Ad Library will not return an unfiltered archive.

linkedin_adsSearch input schema
{
  "type": "object",
  "properties": {
    "company": {
      "type": "string",
      "description": "Company page slug (\"microsoft\") or numeric company id (\"1035\")"
    },
    "keyword": {
      "type": "string",
      "description": "Words to match in the ad copy"
    },
    "end_date": {
      "type": "string",
      "description": "Latest run date, YYYY-MM-DD"
    },
    "countries": {
      "type": "string",
      "description": "Comma-separated ISO-3166 country codes the ad reached, e.g. \"US,GB\""
    },
    "start_date": {
      "type": "string",
      "description": "Earliest run date, YYYY-MM-DD"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkedin_adsSearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkedin_company — linkedin: Company page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Company page. A LinkedIn company page: description, industry, follower count, headquarters, size, type, founding year, specialties, employee count and logo. Also works for school and showcase pages. Costs 1 credit.

linkedin_company input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Company URL (linkedin.com/company/...) or the company slug"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkedin_company annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkedin_companyPosts — linkedin: Company posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Company posts. Recent posts from a company page, with reaction and comment counts. Read from the company page itself: LinkedIn's dedicated /posts/ tab is behind the sign-in wall, but the same updates render on the public page. That caps the result at roughly the last ten posts. There is no logged-out pagination, so `hasMore` is always false. Posts by members that the company features carry that member as the author. Costs 1 credit.

linkedin_companyPosts input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Company URL (linkedin.com/company/...) or the company slug"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkedin_companyPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkedin_post — linkedin: Post details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post details. One LinkedIn post: full text, media, author, publication time, reactions and comment count. Top-level comments LinkedIn publishes on the page ride along in `raw.comments`. Costs 1 credit.

linkedin_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (linkedin.com/posts/... or /feed/update/urn:li:activity:...) or the numeric id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkedin_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkedin_postTranscript — linkedin: Post transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post transcript. Captions for a LinkedIn video post, as one text block plus timed cues, read from the caption track LinkedIn publishes with the video, its automatic captions included. A post without video, or a video without a caption track, returns an empty result, which is never charged. Costs 1 credit.

linkedin_postTranscript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL, a urn:li:activity / ugcPost / share urn, or the numeric activity id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkedin_postTranscript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkedin_profile — linkedin: Person's profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Person's profile. A LinkedIn member's public profile: name, headline, location, follower count, avatar, current employers and education. LinkedIn masks parts of a logged-out profile with asterisks; masked values are dropped rather than returned as `****`. Costs 1 credit.

linkedin_profile input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Profile URL (linkedin.com/in/...) or the profile slug"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkedin_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkedin_searchPosts — linkedin: Search posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search posts. Keyword search over LinkedIn posts. LinkedIn gates content search behind sign-in for every logged-out caller (/search/results/content/ redirects to /uas/login regardless of origin IP), and we do not scrape authenticated sessions, so this endpoint reports the gate rather than pretending to be broken. It is shipped so callers get one clear, unbilled answer instead of a 404 on a documented route. Costs 1 credit.

linkedin_searchPosts input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "date_posted": {
      "enum": [
        "past-24h",
        "past-week",
        "past-month"
      ],
      "type": "string",
      "description": "Restrict to recent posts"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkedin_searchPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linkme_page — linkme: LinkMe page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

LinkMe page. Public LinkMe page as a creator profile: display name, bio, avatar, and every outbound link in order. Costs 1 credit.

linkme_page input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL (https://link.me/<username>) or just the username"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linkme_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
linktree_page — linktree: Linktree page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Linktree page. Public Linktree page as a creator profile: display name, bio, avatar, and every outbound link in order. Costs 1 credit.

linktree_page input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL (https://linktr.ee/<username>) or just the username"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
linktree_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mastodon_post — mastodon: Post
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post. A single public Mastodon post with its favourite, reply and boost counts and attached media. Costs 1 credit.

mastodon_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL on the server that hosts it, e.g. https://mastodon.social/@Gargron/117498495330835648"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mastodon_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mastodon_postReplies — mastodon: Post replies
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post replies. Public replies to a Mastodon post, in thread order, from every server the hosting server knows of. Servers return at most about 60 replies to a signed-out reader. Replies from accounts that opted out of search engine indexing are left out. Costs 1 credit.

mastodon_postReplies input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL on the server that hosts it, e.g. https://mastodon.social/@Gargron/117498495330835648"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mastodon_postReplies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mastodon_profile — mastodon: Profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile. A public Mastodon account, read from its own server: follower, following and post counts, bio, avatar, header image and profile links. Accounts that opted out of search engine indexing are refused, free. Costs 1 credit.

mastodon_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle with its server (Gargron@mastodon.social or @Gargron@mastodon.social) or a profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mastodon_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mastodon_userPosts — mastodon: User posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User posts. An account's public posts, newest first, with favourite, reply and boost counts. Boosts of other people's posts are left out. Costs 1 credit.

mastodon_userPosts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "number",
      "default": 20
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle with its server (Gargron@mastodon.social or @Gargron@mastodon.social) or a profile URL"
    },
    "cache_max_age": {
      "type": "string"
    },
    "exclude_replies": {
      "type": "string",
      "description": "Leave out replies to other posts"
    }
  }
}
mastodon_userPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
milkshake_page — milkshake: Milkshake page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Milkshake page. Public Milkshake page as a creator profile: display name, bio, avatar, and every outbound link in order. Costs 1 credit.

milkshake_page input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL (https://msha.ke/<username>) or just the username"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
milkshake_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mixcloud_profile — mixcloud: Profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile. Public Mixcloud profile: followers, following, upload count, bio, avatar, cover image and location. Costs 1 credit.

mixcloud_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Mixcloud username (spartacus), or a mixcloud.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mixcloud_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mixcloud_search — mixcloud: Search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search. Search Mixcloud uploads, users or tags. Results are ranked by Mixcloud and can change between calls. Costs 1 credit.

mixcloud_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "cloudcast",
        "user",
        "tag"
      ],
      "type": "string",
      "default": "cloudcast",
      "description": "`cloudcast` for uploads, `user` for accounts, `tag` for tags"
    },
    "limit": {
      "type": "number",
      "default": 20
    },
    "query": {
      "type": "string",
      "description": "Search text"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mixcloud_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mixcloud_tag — mixcloud: Popular uploads for a tag
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Popular uploads for a tag. A tag's popular uploads as Mixcloud ranks them, with plays, favourites, reposts and comments. Costs 1 credit.

mixcloud_tag input schema
{
  "type": "object",
  "required": [
    "tag"
  ],
  "properties": {
    "tag": {
      "type": "string",
      "description": "Tag slug (house, deep-house), or a mixcloud.com/genres/ URL"
    },
    "limit": {
      "type": "number",
      "default": 20
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mixcloud_tag annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mixcloud_upload — mixcloud: Upload details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Upload details. One Mixcloud upload: plays, favourites, reposts, comments, duration, tags and description. The tracklist, when the uploader published one, is in `raw.sections`. Costs 1 credit.

mixcloud_upload input schema
{
  "type": "object",
  "required": [
    "handle",
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "The upload slug: the last part of its URL, e.g. \"cinematic-soundscapes\""
    },
    "handle": {
      "type": "string",
      "description": "Mixcloud username (spartacus), or a mixcloud.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mixcloud_upload annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mixcloud_uploadComments — mixcloud: Upload comments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Upload comments. Public comments on a Mixcloud upload. Pass the `cursor` from the previous response to page. Costs 1 credit.

mixcloud_uploadComments input schema
{
  "type": "object",
  "required": [
    "handle",
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "The upload slug: the last part of its URL, e.g. \"cinematic-soundscapes\""
    },
    "limit": {
      "type": "number",
      "default": 20
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Mixcloud username (spartacus), or a mixcloud.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mixcloud_uploadComments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mixcloud_followers — mixcloud: User followers
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User followers. A user's followers, most recent first: username, display name and avatar. Counts are not part of this list; fetch a profile for them. Costs 1 credit.

mixcloud_followers input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "default": 20
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Mixcloud username (spartacus), or a mixcloud.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mixcloud_followers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mixcloud_following — mixcloud: Accounts a user follows
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Accounts a user follows. Accounts a user follows, most recent first: username, display name and avatar. Counts are not part of this list; fetch a profile for them. Costs 1 credit.

mixcloud_following input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "default": 20
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Mixcloud username (spartacus), or a mixcloud.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mixcloud_following annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
mixcloud_userUploads — mixcloud: User uploads
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User uploads. A user's public uploads, newest first, with plays, favourites, reposts and comments. Pass the `cursor` from the previous response to page. Costs 1 credit.

mixcloud_userUploads input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "default": 20
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Mixcloud username (spartacus), or a mixcloud.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
mixcloud_userUploads annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
odysee_channel — odysee: Channel
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel. Public metadata for an Odysee channel: title, description, avatar, banner, subscriber count, number of videos, website and creation date. Costs 1 credit.

odysee_channel input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Channel name (@veritasium), name with claim suffix (@veritasium:f), or an odysee.com or lbry:// channel URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
odysee_channel annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
odysee_channelVideos — odysee: Channel videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel videos. An Odysee channel's videos, newest first, 50 per page, with view and like counts. Pass the `cursor` from the previous response to page. Costs 1 credit.

odysee_channelVideos input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Channel name (@veritasium), name with claim suffix (@veritasium:f), or an odysee.com or lbry:// channel URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
odysee_channelVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
odysee_search — odysee: Search videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search videos. Odysee videos matching a keyword, in Odysee search order, 20 per page, with view and like counts. Costs 1 credit.

odysee_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Keywords to search for"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
odysee_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
odysee_video — odysee: Video details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video details. Public metadata for an Odysee video: title, description, duration, tags, release date, channel, and view, like and comment counts. Dislikes are in `raw.dislikeCount`. Costs 1 credit.

odysee_video input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Odysee video URL (odysee.com/@channel:x/video-name:y), lbry:// URL, or 40-character claim id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
odysee_video annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
odysee_comments — odysee: Video comments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video comments. Top-level comments on an Odysee video, 50 per page, with like and reply counts. Pass the `cursor` from the previous response to page. Costs 1 credit.

odysee_comments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Odysee video URL (odysee.com/@channel:x/video-name:y), lbry:// URL, or 40-character claim id"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
odysee_comments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
peertube_channel — peertube: Channel profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel profile. Public profile of a PeerTube channel, read from the instance that hosts it: followers, following, video count, avatar, banner and creation date. Costs 1 credit.

peertube_channel input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Channel as name@instance (blender_channel@video.blender.org) or a channel URL on its instance"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
peertube_channel annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
peertube_channelVideos — peertube: Channel videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel videos. A PeerTube channel's public videos, newest first, 50 per page. Tags are not included in list items; `peertube.video` returns them. Pass the `cursor` from the previous response to page. Costs 1 credit.

peertube_channelVideos input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Channel as name@instance (blender_channel@video.blender.org) or a channel URL on its instance"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
peertube_channelVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
peertube_search — peertube: Search videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search videos. Search public videos across PeerTube instances through Sepia Search, the PeerTube project's index, 50 per page. Covers the instances Sepia indexes, not every server. Costs 1 credit.

peertube_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
peertube_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
peertube_video — peertube: Video details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video details. Public metadata for a PeerTube video: views, likes, comment count, duration, tags, publish date and channel. Costs 1 credit.

peertube_video input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL (https://video.blender.org/w/9UhsEGd8vM4PTtg6bphpEM) or <video id>@<instance>"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
peertube_video annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
peertube_comments — peertube: Video comments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video comments. Top-level comments on a PeerTube video, newest first, 100 per page, including those posted from other fediverse servers. `replyCount` gives each thread's replies; `peertube.commentReplies` returns them. Costs 1 credit.

peertube_comments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL (https://video.blender.org/w/9UhsEGd8vM4PTtg6bphpEM) or <video id>@<instance>"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
peertube_comments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
peertube_commentReplies — peertube: Comment replies
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Comment replies. Every reply under one top-level comment on a PeerTube video, nested replies included, each with `parentId` naming the comment it answers. Costs 1 credit.

peertube_commentReplies input schema
{
  "type": "object",
  "required": [
    "url",
    "commentId"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL (https://video.blender.org/w/9UhsEGd8vM4PTtg6bphpEM) or <video id>@<instance>"
    },
    "commentId": {
      "type": "string",
      "description": "`id` of a top-level comment from `peertube.comments`"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
peertube_commentReplies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
peertube_transcript — peertube: Video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video transcript. A PeerTube video's captions as one text block plus timed cues. Returns the requested language when the video has it, otherwise the first track. `isAutoGenerated` says whether the instance transcribed it automatically. Costs 1 credit.

peertube_transcript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL (https://video.blender.org/w/9UhsEGd8vM4PTtg6bphpEM) or <video id>@<instance>"
    },
    "language": {
      "type": "string",
      "description": "Language code, e.g. \"en\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
peertube_transcript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
pillar_page — pillar: Pillar page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Pillar page. Public Pillar page as a creator profile: display name, bio, avatar, and every outbound link in order. Costs 1 credit.

pillar_page input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL (https://pillar.io/<username>) or just the username"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
pillar_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
pinterest_board — pinterest: Board and its pins
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Board and its pins. Board metadata plus a page of its pins. Pass the `cursor` from the previous response to page through the board. Costs 1 credit.

pinterest_board input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Board URL, e.g. https://www.pinterest.com/pinterest/spice-up-your-dinner-plans/"
    },
    "cursor": {
      "type": "string",
      "description": "Bookmark from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
pinterest_board annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
pinterest_pin — pinterest: Pin details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Pin details. Public details for a pin: title, description, reactions, comments, shares and full-resolution media. The destination link and save count are in `raw`. Costs 1 credit.

pinterest_pin input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Pin URL, e.g. https://www.pinterest.com/pin/1130122100248990600/"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
pinterest_pin annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
pinterest_search — pinterest: Search pins
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search pins. Public Pinterest search results for a query, as unified posts. Costs 1 credit.

pinterest_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Search terms, e.g. \"minimalist kitchen\""
    },
    "cursor": {
      "type": "string",
      "description": "Bookmark from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
pinterest_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
pinterest_userBoards — pinterest: Boards owned by a user
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Boards owned by a user. Public boards on a profile, most recently pinned-to first, with pin and follower counts. Costs 1 credit.

pinterest_userBoards input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "Bookmark from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Username, e.g. \"pinterest\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
pinterest_userBoards annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_post — reddit: Post details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post details. One Reddit post with its score, comment count, body text and media. Use `reddit.postComments` for the comment tree. They are separate endpoints, so a post with no comments is still a paid, cached result rather than an empty one. Costs 1 credit.

reddit_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (reddit.com/r/.../comments/...) or a post id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_commentReplies — reddit: Comment replies
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Comment replies. The reply thread under a single comment: the continuation behind Reddit's "load more comments". Takes a comment permalink, or "postId:commentId". Costs 1 credit.

reddit_commentReplies input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Comment permalink (.../comments/{post}/{slug}/{comment}/) or \"postId:commentId\""
    },
    "sort": {
      "enum": [
        "confidence",
        "top",
        "new",
        "controversial",
        "old",
        "qa"
      ],
      "type": "string",
      "default": "confidence"
    },
    "depth": {
      "type": "string",
      "description": "Reply levels below the comment, 1-10. Default 6."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_commentReplies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_postComments — reddit: Post comments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post comments. A post's comment tree, flattened into reading order with `parentId` preserved so callers can rebuild it. Returns the comments Reddit shows on the post's first page, with `raw.totalComments` giving the post's full count and `pagination.hasMore` true when more exist; `pagination.cursor` is null. Reddit collapses deep threads behind continuation stubs; fetch those with `reddit.commentReplies`. Costs 1 credit.

reddit_postComments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (reddit.com/r/.../comments/...) or a post id"
    },
    "sort": {
      "enum": [
        "confidence",
        "top",
        "new",
        "controversial",
        "old",
        "qa"
      ],
      "type": "string",
      "default": "confidence",
      "description": "Reddit's comment sorts. \"confidence\" is the site default (\"Best\")."
    },
    "depth": {
      "type": "string",
      "description": "Reply levels to walk, 1-10. Default 4."
    },
    "limit": {
      "type": "string",
      "description": "Top-level comments to request, 1-500. Default 100."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_postComments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_postTranscript — reddit: Video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video transcript. Transcript for a Reddit-hosted video, from a direct v.redd.it URL, a post URL, or a post id. Reddit auto-captions much of its hosted video and publishes the result as a WebVTT file beside the video; this returns it as one text block plus timed cues, with the raw WebVTT in `raw.rawVtt`. English is the only caption language observed. Videos with no caption file return an empty result and are not charged. A caption track Reddit advertises only in segmented form, named by the playlist with no flat `.vtt` beside the video, is reported as `upstream_schema_drift` today and is likewise never charged. Covers Reddit-hosted video only. A post linking to YouTube or another site has no Reddit caption file and returns an empty result. A post URL or id is resolved to its video first, so a `v.redd.it` URL is one request quicker. Costs 1 credit.

reddit_postTranscript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (reddit.com/r/.../comments/...), a post id, or a v.redd.it URL"
    },
    "language": {
      "type": "string",
      "default": "en",
      "description": "Preferred caption language. Reddit has only been observed publishing \"en\"."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_postTranscript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_search — reddit: Search posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search posts. Reddit post search, site-wide or restricted to one subreddit with `subreddit`, in Reddit's own ranking with scores and comment counts. Reddit returns seven results a page; pass `pagination.cursor` for the next. `raw.posts` names each result's subreddit. Body text comes from Reddit's feed of the same query and is null for a result that feed does not carry. `raw.via` names the surface that answered; on `atom`, scores and comment counts are null. Costs 1 credit.

reddit_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "sort": {
      "enum": [
        "relevance",
        "hot",
        "top",
        "new",
        "comments"
      ],
      "type": "string",
      "default": "relevance"
    },
    "limit": {
      "type": "string",
      "description": "Results per page, 1-100. Default 25."
    },
    "query": {
      "type": "string",
      "description": "Search terms. Reddit's own syntax works, e.g. `flair:\"news\"`."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "subreddit": {
      "type": "string",
      "description": "Restrict to one subreddit"
    },
    "timeframe": {
      "enum": [
        "hour",
        "day",
        "week",
        "month",
        "year",
        "all"
      ],
      "type": "string",
      "description": "Window for the search. Default \"all\"."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_subreddit — reddit: Subreddit posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Subreddit posts. Posts from a subreddit, sorted the way Reddit sorts them, with scores and comment counts. `sort=top` and `sort=controversial` accept a `timeframe`. `raw.posts` adds each post's subreddit, flair, post type and upvote ratio. `raw.via` names the surface that answered; when Reddit serves only its Atom feed (`atom`), scores and comment counts are null. Costs 1 credit.

reddit_subreddit input schema
{
  "type": "object",
  "required": [
    "subreddit"
  ],
  "properties": {
    "sort": {
      "enum": [
        "hot",
        "new",
        "top",
        "rising",
        "controversial"
      ],
      "type": "string",
      "default": "hot"
    },
    "limit": {
      "type": "string",
      "description": "Posts per page, 1-100. Default 25."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "subreddit": {
      "type": "string",
      "description": "Subreddit name (\"aww\", \"r/aww\") or a full reddit.com/r/... URL"
    },
    "timeframe": {
      "enum": [
        "hour",
        "day",
        "week",
        "month",
        "year",
        "all"
      ],
      "type": "string",
      "description": "Window for sort=top / sort=controversial. Default \"day\"."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_subreddit annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_subredditDetails — reddit: Subreddit details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Subreddit details. Public metadata for a subreddit: title, description, icon, banner, and where Reddit shows them, subscribers, people online now, creation date and whether it is private or restricted. `raw.via` names the surface: on `shreddit`, subscribers, creation date and privacy are null, and `raw.weeklyVisitors` and `raw.weeklyContributions` carry Reddit's weekly activity figures. Costs 1 credit.

reddit_subredditDetails input schema
{
  "type": "object",
  "required": [
    "subreddit"
  ],
  "properties": {
    "subreddit": {
      "type": "string",
      "description": "Subreddit name (\"aww\", \"r/aww\") or a full reddit.com/r/... URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_subredditDetails annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_user — reddit: User profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User profile. A Reddit account's public profile: display name, description, avatar, account age, and karma (returned under `raw.karma`, since the unified schema has no karma field). Costs 1 credit.

reddit_user input schema
{
  "type": "object",
  "required": [
    "username"
  ],
  "properties": {
    "username": {
      "type": "string",
      "description": "Username (\"spez\", \"u/spez\") or a reddit.com/user/... URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_user annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
reddit_userPosts — reddit: User posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User posts. Posts submitted by a Reddit account, newest first by default. Falls back to the account's Atom feed when the JSON surface is blocked. Costs 1 credit.

reddit_userPosts input schema
{
  "type": "object",
  "required": [
    "username"
  ],
  "properties": {
    "sort": {
      "enum": [
        "new",
        "hot",
        "top"
      ],
      "type": "string",
      "default": "new"
    },
    "limit": {
      "type": "string",
      "description": "Posts per page, 1-100. Default 25."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "username": {
      "type": "string",
      "description": "Username (\"spez\", \"u/spez\") or a reddit.com/user/... URL"
    },
    "timeframe": {
      "enum": [
        "hour",
        "day",
        "week",
        "month",
        "year",
        "all"
      ],
      "type": "string",
      "description": "Window for sort=top. Default \"all\"."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
reddit_userPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
redfin_agent — redfin: Real estate agent profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Real estate agent profile. Public profile for a Redfin agent or partner agent: name, brokerage, contact and bio. Costs 1 credit.

redfin_agent input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Redfin marketplace, default com. One of: com, ca"
    },
    "url": {
      "type": "string",
      "description": "Redfin agent or partner-agent profile URL, e.g. https://www.redfin.com/real-estate-agents/the-home-team"
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
redfin_agent annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
redfin_forRent — redfin: For-rent property details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

For-rent property details. Public details for one Redfin rental: price (or starting price for a multi-unit building), specs, availability and amenities. Costs 1 credit.

redfin_forRent input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Redfin marketplace, default com. One of: com, ca"
    },
    "url": {
      "type": "string",
      "description": "Redfin rental URL, e.g. https://www.redfin.com/CA/San-Francisco/952-Sutter-St-94109/apartment/1594243"
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
redfin_forRent annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
redfin_forSale — redfin: For-sale property details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

For-sale property details. Public details for one Redfin for-sale listing: price, specs, agent, price history and nearby schools. Costs 1 credit.

redfin_forSale input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Redfin marketplace, default com. One of: com, ca"
    },
    "url": {
      "type": "string",
      "description": "Redfin for-sale listing URL, e.g. https://www.redfin.com/CA/San-Francisco/2040-Laguna-St-94115/unit-201/home/1642558"
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
redfin_forSale annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
redfin_search — redfin: Search Redfin listing results
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search Redfin listing results. Public results from a Redfin search or listing-results page URL (a city, zip code or filtered search). Costs 1 credit.

redfin_search input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Redfin marketplace, default com. One of: com, ca"
    },
    "url": {
      "type": "string",
      "description": "Redfin search page URL, e.g. https://www.redfin.com/zipcode/94109"
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
redfin_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
rumble_channelVideos — rumble: Channel videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel videos. A Rumble channel's public uploads, newest first, 25 per page. Pass the `cursor` from the previous response to page. Costs 1 credit.

rumble_channelVideos input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Channel handle (Asmongold), c/Handle, user/Handle, or a full rumble.com URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
rumble_channelVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
rumble_search — rumble: Search videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search videos. Public Rumble video search results, 25 per page. Costs 1 credit.

rumble_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "sort": {
      "enum": [
        "relevance",
        "views",
        "date"
      ],
      "type": "string",
      "default": "relevance"
    },
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
rumble_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
rumble_video — rumble: Video details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video details. Public metadata for a Rumble video: exact view count, likes and dislikes, comment count, duration, upload date, channel and follower count. Costs 1 credit.

rumble_video input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Rumble watch URL (rumble.com/v7e9i52-slug.html) or a bare permalink id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
rumble_video annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
rumble_comments — rumble: Video comments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video comments. Public comments on a Rumble video, including replies. Rumble hides comments behind a login on some videos; when it does, this returns an unbilled empty result rather than logging in. Costs 1 credit.

rumble_comments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Rumble watch URL (rumble.com/v7e9i52-slug.html) or a bare permalink id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
rumble_comments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
rumble_transcript — rumble: Video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video transcript. A Rumble video's captions as one text block plus timed cues. Returns the requested language when the video has it, otherwise the default track. Costs 1 credit.

rumble_transcript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Rumble watch URL (rumble.com/v7e9i52-slug.html) or a bare permalink id"
    },
    "language": {
      "type": "string",
      "description": "Language code, e.g. \"en\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
rumble_transcript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
snapchat_profile — snapchat: User profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User profile. Public Snapchat profile. Creator and business accounts return subscriber count, bio, website and avatar; personal accounts return the handle, display name and Bitmoji avatar, which is all Snapchat publishes for them. Costs 1 credit.

snapchat_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (teamsnapchat) or a snapchat.com/add/<handle> URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
snapchat_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
snapchat_spotlight — snapchat: Spotlight by link
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Spotlight by link. A public Snapchat Spotlight video: view, like, comment and share counts, caption and hashtags, duration, creator, thumbnail, media URL, and the auto-generated transcript when Snapchat has one. Costs 1 credit.

snapchat_spotlight input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Spotlight URL (https://www.snapchat.com/spotlight/<id>)"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
snapchat_spotlight annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
snapchat_spotlightComments — snapchat: Spotlight comments by link
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Spotlight comments by link. Public comments on a Snapchat Spotlight, ranked the way Snapchat ranks them, with reaction and threaded-reply counts. Pass the `cursor` from the previous response to page. Costs 1 credit.

snapchat_spotlightComments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Spotlight URL (https://www.snapchat.com/spotlight/<id>)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
snapchat_spotlightComments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
solo_page — solo: Solo page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Solo page. Public Solo page as a creator profile: display name, bio, avatar, and every outbound link in order. Costs 1 credit.

solo_page input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL (https://solo.to/<username>) or just the username"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
solo_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
soundcloud_artist — soundcloud: Artist profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Artist profile. Public SoundCloud profile: followers, following, track count, bio, avatar and header image. Costs 1 credit.

soundcloud_artist input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (flume), or a full soundcloud.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
soundcloud_artist annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
soundcloud_artistTracks — soundcloud: Artist tracks
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Artist tracks. An artist's public uploads, newest first. Pass the `cursor` from the previous response to page. Costs 1 credit.

soundcloud_artistTracks input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "default": 50
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (flume), or a full soundcloud.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
soundcloud_artistTracks annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
soundcloud_track — soundcloud: Track details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Track details. Public metadata for a SoundCloud track: plays, likes, reposts, comments, duration, genre and publisher metadata (ISRC, label, writers). Costs 1 credit.

soundcloud_track input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Track URL, or \"user/track-slug\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
soundcloud_track annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
spotify_album — spotify: Album details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Album details. Public Spotify album: title, artist, release date, artwork and total runtime. The track listing, release type (album or single) and track count are in `raw`. Add `include_raw=true`. Costs 1 credit.

spotify_album input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Spotify album id, spotify:album: URI, or open.spotify.com album URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
spotify_album annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
spotify_artist — spotify: Artist details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Artist details. Public Spotify artist: name, exact follower count, biography, artwork and external links. Monthly listeners and current top tracks with play counts are in `raw`. Costs 1 credit.

spotify_artist input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Spotify artist id, spotify:artist: URI, or open.spotify.com artist URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
spotify_artist annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
spotify_playlist — spotify: Playlist contents
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Playlist contents. Public Spotify playlist: name, owner, description, cover art, total track count and its tracks, 50 per `cursor` page, up to the first 100. On a longer playlist the last page reports `hasMore` true with a null `cursor`: the remaining tracks exist but are not served. Costs 1 credit. Pass exactly one of `id` or `url`.

spotify_playlist input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Spotify playlist id, spotify:playlist: URI, or open.spotify.com playlist URL"
    },
    "url": {
      "type": "string",
      "description": "open.spotify.com playlist URL"
    },
    "cursor": {
      "type": "string",
      "description": "Offset into the track list. Pass back `pagination.cursor`"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
spotify_playlist annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
spotify_podcast — spotify: Podcast details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Podcast details. A Spotify podcast: title, publisher, description, artwork and episode count, with its rating and topics in `raw`. Two fields carry something different here than they do elsewhere: `category` holds the show's publisher, and `postCount` is its episode count. The unified schema has no publisher field, and naming it here is better than leaving you to infer it. Costs 1 credit.

spotify_podcast input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Spotify show id, spotify:show: URI, or open.spotify.com show URL"
    },
    "market": {
      "type": "string",
      "default": "US",
      "description": "ISO 3166-1 alpha-2 market code"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
spotify_podcast annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
spotify_podcastEpisodes — spotify: Podcast episodes
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Podcast episodes. Episodes for a Spotify podcast, newest first. Pass the `cursor` from the previous response to page. `hasMore` true with a null `cursor` means the show has more episodes than this response can page to. Costs 1 credit.

spotify_podcastEpisodes input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Spotify show id, spotify:show: URI, or open.spotify.com show URL"
    },
    "limit": {
      "type": "number",
      "default": 50
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "market": {
      "type": "string",
      "default": "US",
      "description": "ISO 3166-1 alpha-2 market code"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
spotify_podcastEpisodes annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
spotify_search — spotify: Search
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search. Search Spotify's catalogue for tracks, albums, artists, podcasts or episodes. Uses Spotify's official Web API, so this endpoint needs app credentials; everything else on this platform is keyless. Costs 1 credit.

spotify_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "type": {
      "enum": [
        "track",
        "album",
        "artist",
        "show",
        "episode"
      ],
      "type": "string",
      "default": "track"
    },
    "limit": {
      "type": "number",
      "default": 20
    },
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "market": {
      "type": "string",
      "default": "US",
      "description": "ISO 3166-1 alpha-2 market code"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
spotify_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
spotify_track — spotify: Track details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Track details. Public Spotify track: title, artists, artwork, duration, release date and the preview clip URL. `viewCount` is the play count when the track is among its artist's top tracks, and null otherwise. The explicit-content label is in `raw`. Costs 1 credit.

spotify_track input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Spotify track id, spotify:track: URI, or open.spotify.com track URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
spotify_track annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
substack_comments — substack: Post comments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post comments. Every public comment on a Substack post, replies included, newest first; `parentId` links a reply to its comment. Comments a publication shows only to paid subscribers are not available. Costs 1 credit.

substack_comments input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric post id, as returned in `id` by `substack.posts`"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
substack_comments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
substack_post — substack: Post
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post. One Substack post with its text, reactions, comments, restacks and word count. For a subscriber-only post, `text` is the public preview and `truncated` is true. Costs 1 credit.

substack_post input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Numeric post id, as returned in `id` by `substack.posts`"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
substack_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
substack_posts — substack: Publication posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Publication posts. A publication's posts, newest first, with reactions, comments, restacks and word count. Substack shows no view counts. Pass the `cursor` from the previous response to page. Costs 1 credit.

substack_posts input schema
{
  "type": "object",
  "required": [
    "publication"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "default": 20
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from the previous response"
    },
    "publication": {
      "type": "string",
      "description": "The publication: its name on Substack (garymarcus), its host (garymarcus.substack.com or www.lennysnewsletter.com), or any URL on it"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
substack_posts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
substack_profile — substack: Profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile. A Substack writer's public profile: followers, bio, links, and their main publication. Subscribers appear only as Substack's rounded badge. Costs 1 credit.

substack_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Substack handle (lenny), @handle, or a substack.com/@handle URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
substack_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
substack_publication — substack: Publication
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Publication. A Substack publication: name, description, author, custom domain, whether it sells paid plans, and its rounded subscriber badge. Custom domains are accepted. Costs 1 credit.

substack_publication input schema
{
  "type": "object",
  "required": [
    "publication"
  ],
  "properties": {
    "publication": {
      "type": "string",
      "description": "The publication: its name on Substack (garymarcus), its host (garymarcus.substack.com or www.lennysnewsletter.com), or any URL on it"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
substack_publication annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
taplink_page — taplink: Taplink page
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Taplink page. Public Taplink page as a creator profile: display name, bio, avatar, and every outbound link in order. Costs 1 credit.

taplink_page input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Page URL (https://taplink.cc/<username>) or just the username"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
taplink_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
telegram_channel — telegram: Channel
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel. Public Telegram channel or group metadata including its name, description, avatar, verification status, subscriber or member count, and public media counters. The subscriber or member count is exact, read from the channel's t.me page, and falls back to the rounded preview value ("9.66M") when that page cannot be read. The media counters in `raw.counters` are Telegram's rounded display text. Uses Telegram's public web preview and does not use a logged-in Telegram account, so private channels, invite-only groups and user accounts are not covered. An old username still resolves to the channel that took it over, so `handle` here is the header username and may differ from the one inside a post id, so join on a post `id`, never on the handle. Costs 1 credit.

telegram_channel input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Public channel or group username: @telegram, telegram, or https://t.me/telegram"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
telegram_channel annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
telegram_channelPosts — telegram: Channel posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel posts. One public web-preview page of Telegram posts with text, publish date, views, reactions when exposed, forwards, media (photos and the playable video file), and link previews. Twenty posts per page, newest first. Pass the returned cursor to fetch the previous page. Empty and terminal pages are not charged. `viewCount` is Telegram's own rounded display value ("1.37M" → 1370000), not an exact count; the original text is in `raw.messages[].viewsText`. `likeCount` totals every public reaction, paid stars included, from Telegram's rounded display values, and is null when a post shows no reactions. Each reaction, the forward source and the link preview are under `raw`. A post `id` carries the CANONICAL username of the channel, which differs from the one you asked for when an old username still resolves to it. Join on `id`, not on the handle you passed. Costs 1 credit.

telegram_channelPosts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Public channel or group username: @telegram, telegram, or https://t.me/telegram"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
telegram_channelPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
telegram_post — telegram: Post
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post. A single public Telegram post with its text, publish date, views, reactions when exposed, forward source, media (photos and the playable video file), and link preview. `viewCount` is Telegram's own rounded display value ("1.37M" → 1370000), not an exact count; the original text is in `raw.viewsText`. `likeCount` totals every public reaction, paid stars included, from Telegram's rounded display values, and is null when the post shows no reactions. Each reaction, the forward source and the link preview are under `raw`. Reads the public post embed and does not use a logged-in Telegram account. Costs 1 credit.

telegram_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post link: https://t.me/<handle>/<message id>, for example https://t.me/telegram/441"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
telegram_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
threads_post — threads: Post
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post. A single public Threads post with like count, reply count, and any attached media. Costs 1 credit.

threads_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (https://www.threads.com/@handle/post/ABC) or a shortcode"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
threads_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
threads_profile — threads: Profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile. Public Threads profile: follower count, bio, bio links, avatar, and verification status. Costs 1 credit.

threads_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@zuck) or a threads.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
threads_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
threads_search — threads: Search posts by keyword
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search posts by keyword. Public Threads posts matching a keyword. Costs 1 credit.

threads_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Keyword to search for"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
threads_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
threads_searchUsers — threads: Search users
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search users. Public Threads accounts matching a keyword. Costs 1 credit.

threads_searchUsers input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Keyword or partial handle"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
threads_searchUsers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
threads_userPosts — threads: User posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User posts. Public posts from a Threads profile in the order the profile shows them, with like, reply and repost counts. Pass `pagination.cursor` back as `cursor` for the next page. Costs 1 credit.

threads_userPosts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@zuck) or a threads.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
threads_userPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_adLibraryAd — tiktok: One TikTok ad
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

One TikTok ad. One TikTok ad by id or URL. Two public surfaces carry ads and an id alone does not say which: Creative Center Top Ads (ads.tiktok.com) is checked first, then the Commercial Content Library (library.tiktok.com). Pass a URL from either and only that source is queried. Both return the same `Ad` shape; fields a source does not publish are null rather than inferred - Top Ads carries no flight dates or advertiser entity, and the library carries no performance metrics. `countries` here is the ad's own targeting, unlike a search result's, where it is the market that was searched. An id neither source knows is a 404; an id that only one source could be asked about is not, because a source that did not answer has not said no. Reach bands stay in `raw`, not in the impressions fields, because reach is not impressions. Costs 1 credit.

tiktok_adLibraryAd input schema
{
  "type": "object",
  "required": [
    "ad_id"
  ],
  "properties": {
    "ad_id": {
      "type": "string",
      "description": "Numeric ad id, a library.tiktok.com `/ads/detail?ad_id=` URL, or an ads.tiktok.com Top Ads URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_adLibraryAd annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_adLibrarySearch — tiktok: Search the TikTok Ads Library
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search the TikTok Ads Library. Ads in TikTok's public Commercial Content Library, by keyword (`query`) or by advertiser (`advertiser_name`). An advertiser name is resolved through TikTok's own typeahead first, then searched as an entity, so it matches the registered legal name ("NIKE Retail B.V.") rather than a brand. Results are NOT global: TikTok publishes this archive per market and refuses a search without one, so `region` is required, validated against the market list the library itself publishes rather than a fixed list here, and every result ran in that market, which is what each ad's `countries` reports. TikTok returns its own relevance ranking; we ask for the most recently shown first, but that is only a tiebreak within it, so results are not ordered by date. Cursor-paginated 12 at a time, each ad carrying its public library.tiktok.com detail URL. Pages are not guaranteed disjoint: the archive re-ranks live, so an ad can repeat across pages. Political and election ads are outside the archive. Reach is published as a band and is not impressions, so it stays in `raw.estimated_audience` rather than the impressions fields. Costs 1 credit.

tiktok_adLibrarySearch input schema
{
  "type": "object",
  "required": [
    "region"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Keyword, matched against ad text and advertiser name"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "region": {
      "type": "string",
      "description": "Market to search. TikTok publishes this archive per market; one of AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IS, IT, LI, LT, LU, LV, MT, NL, NO, PL, PT, RO, SE, SI, SK, TR."
    },
    "cache_max_age": {
      "type": "string"
    },
    "advertiser_name": {
      "type": "string",
      "description": "Advertiser name, resolved through TikTok's typeahead to one advertiser entity"
    }
  }
}
tiktok_adLibrarySearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_collectionVideos — tiktok: Collection videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Collection videos. Videos in a public TikTok collection, a creator-curated playlist of other people's posts as well as their own. Costs 1 credit. Pass either `url` or `collection_id`.

tiktok_collectionVideos input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Collection URL, e.g. https://www.tiktok.com/@nasa/collection/Artemis-7123…"
    },
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 30)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    },
    "collection_id": {
      "type": "string",
      "description": "Numeric collection id"
    }
  }
}
tiktok_collectionVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_commentReplies — tiktok: Replies to a comment
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Replies to a comment. The reply thread under one TikTok comment. `parentId` on each reply points back at the comment it answers, so nested threads reconstruct cleanly. Costs 1 credit.

tiktok_commentReplies input schema
{
  "type": "object",
  "required": [
    "comment_id",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "The video the comment is on: URL, share link, or numeric id"
    },
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "comment_id": {
      "type": "string",
      "description": "`id` of the parent comment, from `tiktok.comments`"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_commentReplies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_comments — tiktok: Comments on a video
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Comments on a video. Top-level comments on a TikTok, with like counts, reply counts, pinned status and a flag for the creator's own replies. Use `tiktok.commentReplies` to expand a thread. Costs 1 credit.

tiktok_comments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL (preferred), share link, or numeric video id"
    },
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_comments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_popularCreators — tiktok: Popular creators
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Popular creators. Creators trending in a market, from TikTok's own Creative Center leaderboard. Filter by country, follower band and category. Costs 1 credit.

tiktok_popularCreators input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "period": {
      "enum": [
        "7",
        "30",
        "120"
      ],
      "type": "string",
      "default": "7",
      "description": "Trailing window in days: 7, 30 or 120"
    },
    "region": {
      "type": "string",
      "description": "Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market."
    },
    "cache_max_age": {
      "type": "string"
    },
    "follower_band": {
      "enum": [
        "1k-10k",
        "10k-100k",
        "100k-1m",
        "1m+"
      ],
      "type": "string",
      "description": "Restrict to creators in this follower range"
    }
  }
}
tiktok_popularCreators annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_followers — tiktok: Accounts following a creator
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Accounts following a creator. The public follower list for a TikTok account, newest first. TikTok caps how deep this list can be walked regardless of paging. Requires a configured TikTok signer. Costs 1 credit.

tiktok_followers input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 30, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full tiktok.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_followers annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_hashtag — tiktok: Hashtag details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Hashtag details. Stats for a TikTok hashtag: total videos and total views, plus its description and cover. Read straight off the tag page, so it needs no signer. Costs 1 credit.

tiktok_hashtag input schema
{
  "type": "object",
  "required": [
    "hashtag"
  ],
  "properties": {
    "hashtag": {
      "type": "string",
      "description": "Tag without the # (fyp), or a full /tag/ URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_hashtag annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_hashtagVideos — tiktok: Videos using a hashtag
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Videos using a hashtag. TikToks carrying a given hashtag, in TikTok's own feed order, with a cursor for the next page. Costs 1 credit.

tiktok_hashtagVideos input schema
{
  "type": "object",
  "required": [
    "hashtag"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 30, max 30)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "hashtag": {
      "type": "string",
      "description": "Tag without the # (fyp), or a full /tag/ URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_hashtagVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_live — tiktok: Live stream info
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Live stream info. Details of a creator's stream while they are live: room id, title, cover, current viewers and start time. A creator who is not live returns `empty_result`, a real answer that costs nothing, so this works as a cheap "are they live?" poll. Pass `room_id` (from a previous response's `roomId`) to look the room up directly on TikTok's own webcast surface. No third-party provider is involved. On the `room_id` path `handle` may come back empty if the webcast payload omits the room owner. Costs 1 credit. Pass either `handle` or `room_id`.

tiktok_live input schema
{
  "type": "object",
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full tiktok.com profile URL"
    },
    "room_id": {
      "type": "string",
      "description": "TikTok LIVE room id, e.g. from a previous tiktok.live response's `roomId`"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_live annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_playlistVideos — tiktok: Videos in a playlist
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Videos in a playlist. The videos inside one TikTok playlist, in the creator's chosen order. Requires a configured TikTok signer. Costs 1 credit.

tiktok_playlistVideos input schema
{
  "type": "object",
  "required": [
    "playlist_id"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 30, max 30)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "playlist_id": {
      "type": "string",
      "description": "`id` from `tiktok.playlists`, or a /playlist/ URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_playlistVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_playlists — tiktok: A creator's playlists
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

A creator's playlists. The playlists (TikTok calls them "mixes") a creator has organised their videos into. Pair with `tiktok.playlistVideos` to walk one. Requires a configured TikTok signer. Costs 1 credit.

tiktok_playlists input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 30)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full tiktok.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_playlists annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_product — tiktok: Product details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Product details. A single TikTok Shop product: title, description, images, price and original price, rating, review and sales counts, stock, category and the seller. `price` is the lowest-priced variant; it is null when TikTok hides the digits from logged-out visitors. Catalogues are per market: `region` picks one, default US. Costs 1 credit.

tiktok_product input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Product id, or a tiktok.com/shop/pdp/… URL"
    },
    "region": {
      "type": "string",
      "description": "Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_product annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_profile — tiktok: Profile details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile details. Public profile for a TikTok account: followers, following, video count, bio, bio link, verification and account region. Private accounts return their public shell with `isPrivate: true` rather than an error. That is a real answer, not a failure. Total likes received (TikTok's "hearts") is in `raw`, since it is a like total rather than the lifetime view count `viewCount` means elsewhere in the schema. Costs 1 credit.

tiktok_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full tiktok.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_profileRegion — tiktok: Creator region
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Creator region. The market TikTok assigns a creator's account. Read from TikTok's own `region` field: on the profile where TikTok publishes one, otherwise from the region stamped on the creator's recent posts. Never inferred from language, timezone or content. Costs 1 credit. Pass either `handle` or `url`.

tiktok_profileRegion input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Profile URL, e.g. https://www.tiktok.com/@nasa"
    },
    "handle": {
      "type": "string",
      "description": "Creator handle, e.g. @nasa"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_profileRegion annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_searchSuggestions — tiktok: Search suggestions
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search suggestions. TikTok's typeahead completions for a partial query: what the platform thinks people are looking for. Useful for keyword research. Costs 1 credit.

tiktok_searchSuggestions input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Partial search term"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_searchSuggestions annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_productReviews — tiktok: Product reviews
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Product reviews. The reviews a TikTok Shop product page shows, with star rating, reviewer, photos and the purchased variant. That is the page's first screen, not every review. `region` picks the market, default US. Costs 1 credit.

tiktok_productReviews input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Product id, or a tiktok.com/shop/pdp/… URL"
    },
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "region": {
      "type": "string",
      "description": "Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_productReviews annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_shopProducts — tiktok: Seller's product catalogue
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Seller's product catalogue. The products a TikTok Shop store lists, page by page, with price, rating, review and sales counts. Pass the store's URL (tiktok.com/shop/store/<name>/<seller_id>). `region` picks the market, default US. Costs 1 credit.

tiktok_shopProducts input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "TikTok Shop store URL, e.g. https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079"
    },
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "region": {
      "type": "string",
      "description": "Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_shopProducts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_shopSearch — tiktok: Search TikTok Shop
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search TikTok Shop. The products TikTok Shop search returns for a query, page by page, with price, rating, review and sales counts. US market. Costs 1 credit.

tiktok_shopSearch input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "query": {
      "type": "string",
      "description": "Search terms"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "region": {
      "type": "string",
      "description": "Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_shopSearch annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_song — tiktok: Sound / song details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Sound / song details. Details for a TikTok sound: title, artist, album, cover, clip length, and how many videos use it. Costs 1 credit.

tiktok_song input schema
{
  "type": "object",
  "required": [
    "song"
  ],
  "properties": {
    "song": {
      "type": "string",
      "description": "Music id, or a full tiktok.com/music/… URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_song annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_songVideos — tiktok: Videos using a sound
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Videos using a sound. TikToks built on a given sound: the endpoint behind "who is using my track", with a cursor for the next page. Costs 1 credit.

tiktok_songVideos input schema
{
  "type": "object",
  "required": [
    "song"
  ],
  "properties": {
    "song": {
      "type": "string",
      "description": "Music id, or a full tiktok.com/music/… URL"
    },
    "count": {
      "type": "string",
      "description": "Items per page (default 30, max 30)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_songVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_popularSongs — tiktok: Popular songs
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Popular songs. Sounds trending in a market, the endpoint behind music A&R and sync-licensing research. From TikTok's Creative Center. Costs 1 credit.

tiktok_popularSongs input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "period": {
      "enum": [
        "7",
        "30",
        "120"
      ],
      "type": "string",
      "default": "7",
      "description": "Trailing window in days: 7, 30 or 120"
    },
    "region": {
      "type": "string",
      "description": "Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_popularSongs annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_transcript — tiktok: Video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video transcript. The spoken transcript of a TikTok, as one text block plus timed cues. Returns the ORIGINAL spoken-language track by default rather than whichever track TikTok lists first, so the text reflects what was actually said. Pass `language` for a specific track. A miss is an error listing what is available, never a silent substitution into another language. Costs 1 credit.

tiktok_transcript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL (preferred), share link, or numeric video id"
    },
    "language": {
      "type": "string",
      "description": "BCP-47 or ISO-639 code, e.g. \"en\", \"es\", \"pt-BR\". Omit for the original spoken track."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_transcript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_trending — tiktok: Trending feed
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Trending feed. TikTok's logged-out For You feed for a region, showing what the platform is pushing to a brand-new visitor right now. Not a ranking anyone can reproduce: TikTok personalises even the anonymous feed, so two calls a second apart return different videos. Costs 1 credit.

tiktok_trending input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 30, max 30)"
    },
    "region": {
      "type": "string",
      "default": "US",
      "description": "Two-letter country code, e.g. US, GB, DE"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_trending annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_userVideos — tiktok: Videos posted by a creator
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Videos posted by a creator. A creator's public posts, newest first, with view/like/comment/share counts. Photo posts are included and typed as `image` or `carousel`. Up to 15 per page, with a cursor for older posts. Costs 1 credit.

tiktok_userVideos input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 35, max 35)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@nike), or a full tiktok.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_userVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_userShowcase — tiktok: Creator's product showcase
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Creator's product showcase. Products a creator has pinned to their profile showcase. This is what they are actually promoting, as opposed to what they sell. Requires a configured TikTok signer. Costs 1 credit.

tiktok_userShowcase input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Creator handle, e.g. @charlidamelio"
    },
    "region": {
      "type": "string",
      "description": "Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_userShowcase annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_video — tiktok: Video or photo-post details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video or photo-post details. Full public metadata for one TikTok: caption, hashtags, mentions, author, sound, duration, and view/like/comment/share counts. Photo posts return every image in `mediaUrls`. Accepts a full URL, a share link (vm.tiktok.com), or a numeric video id. Costs 1 credit.

tiktok_video input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL (preferred), share link, or numeric video id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_video annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
tiktok_popularVideos — tiktok: Popular videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Popular videos. Videos trending in a market over a trailing window, from TikTok's Creative Center. Distinct from `/v1/tiktok/trending`, which is the personalised For You feed. Costs 1 credit.

tiktok_popularVideos input schema
{
  "type": "object",
  "properties": {
    "count": {
      "type": "string",
      "description": "Items per page (default 20, max 50)"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "period": {
      "enum": [
        "7",
        "30",
        "120"
      ],
      "type": "string",
      "default": "7",
      "description": "Trailing window in days: 7, 30 or 120"
    },
    "region": {
      "type": "string",
      "description": "Two-letter market code (US, GB, ID…). TikTok feeds and catalogues are per-market."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
tiktok_popularVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
truthsocial_post — truthsocial: Post
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post. A single public Truth with its engagement counts and attached media. Costs 1 credit.

truthsocial_post input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (https://truthsocial.com/@handle/posts/<id>) or a bare numeric post id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
truthsocial_post annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
truthsocial_profile — truthsocial: Profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile. Public Truth Social profile: follower and following counts, Truth count, bio, avatar, header image, and verification status. Costs 1 credit.

truthsocial_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@realDonaldTrump) or a truthsocial.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
truthsocial_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
truthsocial_userPosts — truthsocial: User posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

User posts. Recent public Truths from an account, newest first, with favourite, reply and ReTruth counts. Costs 1 credit.

truthsocial_userPosts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "number",
      "default": 20
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response (Mastodon `max_id`)"
    },
    "handle": {
      "type": "string",
      "description": "Handle or profile URL"
    },
    "user_id": {
      "type": "string",
      "description": "Numeric account id, if you already have it"
    },
    "cache_max_age": {
      "type": "string"
    },
    "exclude_replies": {
      "type": "string"
    }
  }
}
truthsocial_userPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitch_clip — twitch: Clip details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Clip details. Public metadata for a Twitch clip: views, duration, creator, broadcaster, category, and the offset into the source VOD. Costs 1 credit.

twitch_clip input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Clip URL (twitch.tv/<channel>/clip/<slug> or clips.twitch.tv/<slug>) or a bare slug"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitch_clip annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitch_profile — twitch: Channel profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel profile. Public Twitch channel: followers, partner/affiliate status, bio, avatar, banner, account age, and whether the channel is live right now. Costs 1 credit.

twitch_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Channel login (shroud), or a twitch.tv URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitch_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitch_userSchedule — twitch: Stream schedule
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Stream schedule. A channel's published schedule for the current week, plus the next upcoming segment. Segments are returned as posts of type `live` whose `publishedAt` is the scheduled start time. Costs 1 credit.

twitch_userSchedule input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Channel login (hasanabi), or a twitch.tv URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitch_userSchedule annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitch_userVideos — twitch: Channel videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel videos. A channel's public VODs, highlights or uploads. Returns up to 100 per call, because Twitch gates deeper pages behind a browser integrity challenge and we do not run browser sessions. Costs 1 credit.

twitch_userVideos input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "default": 30
    },
    "handle": {
      "type": "string",
      "description": "Channel login (shroud), or a twitch.tv URL"
    },
    "sort_by": {
      "enum": [
        "time",
        "views"
      ],
      "type": "string",
      "default": "time"
    },
    "filter_by": {
      "enum": [
        "archive",
        "highlight",
        "upload"
      ],
      "type": "string",
      "default": "archive",
      "description": "archive = past broadcasts, highlight = clipped highlights, upload = uploaded videos"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitch_userVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitter_community — twitter: Community details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Community details. Public details for an X Community: name, description, member count, topic, join policy, banner and the creator's handle. Read from the server-rendered community page, which X still serves to logged-out callers. Costs 1 credit.

twitter_community input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Community URL (x.com/i/communities/...) or the numeric id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitter_community annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitter_communityTweets — twitter: Community posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Community posts. Recent posts in an X Community, with likes, retweets, replies and **view counts**. The community page publishes metrics X's embed CDN does not. One page only: X serves logged-out callers a single rendered batch and no continuation token, so `hasMore` is always false. Costs 1 credit.

twitter_communityTweets input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Community URL (x.com/i/communities/...) or the numeric id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitter_communityTweets annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitter_profile — twitter: Profile details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Profile details. Public profile for an X account: bio, location, avatar, banner, website, exact follower, following and post counts, join date and verified badge. Costs 1 credit.

twitter_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@jack), or a full x.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitter_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitter_tweet — twitter: Post details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post details. One public post with its text, media and engagement. Served from X's embed CDN, which is the most durable logged-out surface X still operates; with TWITTER_BEARER_TOKEN set it uses the official API instead and adds retweet, quote and impression counts. Costs 1 credit.

twitter_tweet input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (x.com/user/status/123...) or a bare post id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitter_tweet annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitter_tweetTranscript — twitter: Post transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Post transcript. Captions for a video post on X, as one text block plus timed cues. Sourced from the caption track in the video's HLS playlist, which is the only transcript X exposes to logged-out callers. Posts whose author never attached captions return an empty result and are not charged. Costs 1 credit.

twitter_tweetTranscript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (x.com/user/status/123...) or a bare post id"
    },
    "language": {
      "type": "string",
      "description": "BCP-47 code, e.g. \"en\". Defaults to the first track."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitter_tweetTranscript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
twitter_userTweets — twitter: Recent posts from an account
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Recent posts from an account. An account's public posts with media, likes, replies and retweets. With TWITTER_BEARER_TOKEN this pages through the timeline; without one it returns the single page X's embedded timeline exposes, a selection of the account's posts rather than the latest, or the pinned post and latest few from the profile page when that timeline is unavailable. Costs 1 credit.

twitter_userTweets input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "count": {
      "type": "string",
      "description": "Posts to return, 5-100. Defaults to 20 on the official API and to every post on the page otherwise."
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response. Official API only."
    },
    "handle": {
      "type": "string",
      "description": "Handle (@jack), or a full x.com profile URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
twitter_userTweets annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
walmart_category — walmart: Browse a Walmart category
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Browse a Walmart category. Public Walmart category listing: the same shape as `walmart.search`, keyed by category id instead of a query. Costs 3 credits.

walmart_category input schema
{
  "type": "object",
  "required": [
    "category"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Walmart marketplace, default com. One of: com, ca"
    },
    "page": {
      "type": "number"
    },
    "category": {
      "type": "string",
      "description": "Walmart category id, e.g. \"3944_1089430_37807\""
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
walmart_category annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
walmart_product — walmart: Walmart product details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Walmart product details. Public details for a Walmart listing: title, price, availability, seller, ratings, images and specifications, read from the page's own __NEXT_DATA__ payload. Costs 3 credits.

walmart_product input schema
{
  "type": "object",
  "required": [
    "product_id"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Walmart marketplace, default com. One of: com, ca"
    },
    "product_id": {
      "type": "string",
      "description": "Numeric Walmart item id, the last path segment of an /ip/ URL, e.g. 18210919718"
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
walmart_product annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
walmart_reviews — walmart: Walmart product reviews
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Walmart product reviews. Paginated customer reviews for a Walmart product, from its dedicated reviews page. Costs 3 credits.

walmart_reviews input schema
{
  "type": "object",
  "required": [
    "product_id"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Walmart marketplace, default com. One of: com, ca"
    },
    "page": {
      "type": "number"
    },
    "sort": {
      "enum": [
        "relevancy",
        "helpful",
        "submission-desc",
        "submission-asc",
        "rating-desc",
        "rating-asc"
      ],
      "type": "string"
    },
    "ratings": {
      "type": "string",
      "description": "Comma list of star ratings to include, e.g. \"5,4\""
    },
    "product_id": {
      "type": "string",
      "description": "Numeric Walmart item id, e.g. 18210919718"
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    },
    "verified_purchase": {
      "type": "string"
    }
  }
}
walmart_reviews annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
walmart_search — walmart: Search Walmart
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search Walmart. Public Walmart search results for a query: position, price, rating and availability per item. Costs 3 credits.

walmart_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "tld": {
      "type": "string",
      "description": "Walmart marketplace, default com. One of: com, ca"
    },
    "page": {
      "type": "number"
    },
    "query": {
      "type": "string",
      "description": "Search terms, e.g. \"laptop\""
    },
    "country_code": {
      "type": "string"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
walmart_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_channel — youtube: Channel details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel details. Public details for a YouTube channel: subscribers, video count, description, links. Costs 1 credit.

youtube_channel input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Handle (@mrbeast), channel id (UC...), or full URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_channel annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_channelVideos — youtube: Channel videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel videos. Recent public uploads for a channel. Use `tab` to switch between videos and shorts. With `extra_fetch=true`, each item is fetched individually to fill its exact view count, publish date and duration. Costs 1 credit per item fetched, up to the page size. Costs 1 credit.

youtube_channelVideos input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "tab": {
      "enum": [
        "videos",
        "shorts",
        "streams"
      ],
      "type": "string",
      "default": "videos"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@mrbeast), channel id, or full URL"
    },
    "extra_fetch": {
      "type": "string",
      "description": "When true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_channelVideos annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_channelCommunityPosts — youtube: Channel community posts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel community posts. A channel's Posts tab (what YouTube used to call Community). Images, multi-image carousels, shared videos and polls all come back as posts; poll options are under `raw`. Costs 1 credit.

youtube_channelCommunityPosts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@mrbeast), channel id (UC…), or full URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_channelCommunityPosts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_channelLives — youtube: Channel live streams
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel live streams. A channel's Live tab: streams that are live now, scheduled, or finished and still on the tab. `viewCount` is concurrent viewers while a stream is live and total views once it ends. YouTube swaps the label, and we surface whichever it gave us. Costs 1 credit.

youtube_channelLives input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@mrbeast), channel id (UC…), or full URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_channelLives annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_channelPlaylists — youtube: Channel playlists
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel playlists. Playlists a channel has made public. Pass an `id` from here to /v1/youtube/playlist for the videos in it. Costs 1 credit.

youtube_channelPlaylists input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@mrbeast), channel id (UC…), or full URL"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_channelPlaylists annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_channelShorts — youtube: Channel shorts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Channel shorts. A channel's Shorts grid, newest first, about 48 per page. Shorts carry no duration or publish date on this surface, because YouTube does not render either, so both are null rather than guessed. With `extra_fetch=true`, each Short is fetched individually to fill its exact view count, publish date and duration. Costs 1 credit per item fetched, up to the page size. Costs 1 credit.

youtube_channelShorts input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "handle": {
      "type": "string",
      "description": "Handle (@mrbeast), channel id (UC…), or full URL"
    },
    "extra_fetch": {
      "type": "string",
      "description": "When true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_channelShorts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_communityPost — youtube: Community post details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Community post details. One community post by id or permalink, with its full text, attachments, like count and exact comment count. Poll questions and options are under `raw`. Costs 1 credit.

youtube_communityPost input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Post URL (youtube.com/post/Ugk…) or bare post id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_communityPost annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_playlist — youtube: Playlist contents
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Playlist contents. The videos in a public playlist, in playlist order, 100 per page. Playlist metadata (title, description, owner) comes back alongside the items. Costs 1 credit.

youtube_playlist input schema
{
  "type": "object",
  "required": [
    "playlist_id"
  ],
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "playlist_id": {
      "type": "string",
      "description": "Playlist id (PL…), or any URL containing `list=`"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_playlist annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_search — youtube: Search videos
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search videos. Public YouTube search results for a query: videos and Shorts in YouTube’s ranking order, with a cursor for the next page. Costs 1 credit.

youtube_search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_searchHashtag — youtube: Search by hashtag
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search by hashtag. Videos or Shorts carrying a hashtag, as YouTube ranks them on the hashtag landing page. `type=shorts` switches to the Shorts tab, which is a different result set rather than a filter over the same one. Costs 1 credit.

youtube_searchHashtag input schema
{
  "type": "object",
  "required": [
    "hashtag"
  ],
  "properties": {
    "type": {
      "enum": [
        "all",
        "shorts"
      ],
      "type": "string",
      "default": "all"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "hashtag": {
      "type": "string",
      "description": "Hashtag, with or without the leading #"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_searchHashtag annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_searchTypeahead — youtube: Search typeahead
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search typeahead. YouTube's own search suggestions for a partial query, the autocomplete list the search box shows. Useful as a keyword-research signal: these are ranked by what people actually search for. Costs 1 credit.

youtube_searchTypeahead input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "description": "Partial search query"
    },
    "region": {
      "type": "string",
      "default": "US",
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "language": {
      "type": "string",
      "default": "en",
      "description": "Interface language"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_searchTypeahead annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_trendingShorts — youtube: Trending shorts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Trending shorts. Shorts YouTube is currently surfacing, by region. Note that YouTube retired the global Trending feed (/feed/trending now serves the ordinary home feed), so this reads the ranked Shorts surface instead, which is what still exists. Results differ per request; it is deliberately not subscribable. With `extra_fetch=true`, each Short is fetched individually to fill its exact view count, publish date and duration. Costs 1 credit per item fetched, up to the page size. Costs 1 credit.

youtube_trendingShorts input schema
{
  "type": "object",
  "properties": {
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "region": {
      "type": "string",
      "default": "US",
      "description": "ISO 3166-1 alpha-2 country code"
    },
    "extra_fetch": {
      "type": "string",
      "description": "When true, fetches each item's own page to fill fields the list page leaves null. Costs 1 extra credit per page fetched, up to the page size."
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_trendingShorts annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_transcript — youtube: Video transcript
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video transcript. Full transcript for a YouTube video, as one text block plus timed cues. Returns the requested language when available, otherwise the default track. Costs 1 credit.

youtube_transcript input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL or 11-character video id"
    },
    "language": {
      "type": "string",
      "description": "BCP-47 language code, e.g. \"en\", \"es\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_transcript annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_video — youtube: Video or Short details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video or Short details. Public metadata for a YouTube video or Short, including view/like counts. Costs 1 credit.

youtube_video input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL or 11-character video id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_video annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_commentReplies — youtube: Comment replies
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Comment replies. Replies to one comment thread. Takes a `cursor` from the `replyCursors` list on `/v1/youtube/video/comments`, or (as a convenience) a video `url` plus `comment_id`, in which case we locate the thread on the first comment page for you. Costs 1 credit. Pass either `cursor` (from `replyCursors` on /v1/youtube/video/comments), or both `url` and `comment_id`.

youtube_commentReplies input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL or id. Required only when using `comment_id`"
    },
    "cursor": {
      "type": "string",
      "description": "Reply cursor from `/v1/youtube/video/comments`, or `pagination.cursor` to page deeper"
    },
    "comment_id": {
      "type": "string",
      "description": "Top-level comment id (Ugx…) to fetch replies for"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_commentReplies annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_videoComments — youtube: Video comments
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video comments. Top-level comments on a video, about 20 per page. Pass `pagination.cursor` back as `cursor` for the next page. Each item that has replies also appears in `replyCursors`; feed that cursor to `/v1/youtube/video/comment-replies`. Use `order=newest` when polling for new comments, since `top` is re-ranked by YouTube and will churn. Costs 1 credit.

youtube_videoComments input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL or 11-character video id"
    },
    "order": {
      "enum": [
        "top",
        "newest"
      ],
      "type": "string",
      "default": "top"
    },
    "cursor": {
      "type": "string",
      "description": "`pagination.cursor` from a previous response"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_videoComments annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
youtube_videoSponsors — youtube: Video sponsors (inferred)
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Video sponsors (inferred). Brands, promo codes and affiliate links inferred from a video's description, plus YouTube's own paid-promotion disclosure. Every signal carries the description line it was read from and a confidence, because this is inference over prose. YouTube publishes no structured sponsor data. Experimental: expect to check `evidence` before acting on `low` confidence. Costs 1 credit.

youtube_videoSponsors input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Video URL or 11-character video id"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
youtube_videoSponsors annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
zillow_agent — zillow: Zillow agent profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Zillow agent profile. Public Zillow agent/team profile: brokerage, license, rating and review count, where published. Costs 1 credit.

zillow_agent input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Zillow agent profile URL, e.g. https://www.zillow.com/profile/<username>"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
zillow_agent annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
zillow_property — zillow: Zillow listing details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Zillow listing details. Public details for a Zillow listing: price, status, beds/baths, area, address and an inline photo set. Costs 1 credit. Pass either `zpid` or `url`.

zillow_property input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Zillow listing URL, e.g. https://www.zillow.com/homedetails/<slug>/<zpid>_zpid/"
    },
    "zpid": {
      "type": "string",
      "description": "Zillow property id (zpid), e.g. \"120900080\""
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
zillow_property annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
zillow_search — zillow: Search Zillow listings by location
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search Zillow listings by location. Public Zillow search results for a location, as full listing records. Costs 1 credit. Pass either `location` or `url`.

zillow_search input schema
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Zillow search URL, e.g. https://www.zillow.com/austin-tx/"
    },
    "page": {
      "type": "number",
      "default": 1
    },
    "location": {
      "type": "string",
      "description": "City/state or ZIP, e.g. \"Austin, TX\""
    },
    "listing_type": {
      "enum": [
        "sale",
        "rent"
      ],
      "type": "string",
      "default": "sale"
    },
    "cache_max_age": {
      "type": "string"
    }
  }
}
zillow_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": true
}
create_watch — Watch an endpoint for changes
Advertised by the server during the last successful anonymous check.
Open-world

Check an endpoint on a schedule and POST to webhook_url when its data changes. Each check is charged the endpoint's own credit cost, and refunded if it fails or comes back empty; creating a watch costs nothing.

create_watch input schema
{
  "type": "object",
  "required": [
    "endpoint",
    "params",
    "webhook_url"
  ],
  "properties": {
    "params": {
      "type": "object",
      "description": "The arguments that endpoint's own tool takes."
    },
    "endpoint": {
      "enum": [
        "amazon.offers",
        "amazon.product",
        "amazon.shop",
        "appleMusic.album",
        "appleMusic.artist",
        "appleMusic.track",
        "bitchute.channel",
        "bitchute.channelVideos",
        "bitchute.video",
        "bluesky.post",
        "bluesky.profile",
        "bluesky.userPosts",
        "dailymotion.channel",
        "dailymotion.channelVideos",
        "dailymotion.video",
        "dailymotion.transcript",
        "deezer.album",
        "deezer.artist",
        "deezer.artistAlbums",
        "deezer.artistTopTracks",
        "deezer.playlist",
        "deezer.podcast",
        "deezer.podcastEpisodes",
        "deezer.track",
        "deezer.userPlaylists",
        "ebay.product",
        "facebook.ad",
        "facebook.adTranscript",
        "facebook.pageAds",
        "facebook.adLibrarySearch",
        "facebook.event",
        "facebook.group",
        "facebook.groupPosts",
        "facebook.marketplaceItem",
        "facebook.pagePosts",
        "facebook.pageReels",
        "facebook.post",
        "facebook.postTranscript",
        "facebook.profile",
        "facebook.profileEvents",
        "facebook.profilePhotos",
        "github.repository",
        "github.user",
        "github.activity",
        "github.contributions",
        "github.followers",
        "github.following",
        "github.pullRequests",
        "github.userRepositories",
        "google.ad",
        "google.advertiserAds",
        "google.jobs",
        "google.news",
        "instagram.commentReplies",
        "instagram.highlight",
        "instagram.post",
        "instagram.postComments",
        "instagram.profile",
        "instagram.profilePostCount",
        "instagram.transcript",
        "instagram.userEmbed",
        "instagram.userHighlights",
        "instagram.userPosts",
        "instagram.userReels",
        "instagram.userTaggedPosts",
        "kick.clip",
        "komi.page",
        "kwai.post",
        "kwai.profile",
        "kwai.userPosts",
        "linkbio.page",
        "linkedin.ad",
        "linkedin.adsSearch",
        "linkedin.company",
        "linkedin.companyPosts",
        "linkedin.post",
        "linkedin.postTranscript",
        "linkedin.profile",
        "linkme.page",
        "linktree.page",
        "mastodon.post",
        "mastodon.postReplies",
        "mastodon.userPosts",
        "milkshake.page",
        "mixcloud.profile",
        "mixcloud.upload",
        "mixcloud.uploadComments",
        "mixcloud.userUploads",
        "odysee.channel",
        "odysee.channelVideos",
        "odysee.video",
        "odysee.comments",
        "peertube.channel",
        "peertube.channelVideos",
        "peertube.video",
        "peertube.comments",
        "peertube.commentReplies",
        "peertube.transcript",
        "pillar.page",
        "pinterest.board",
        "pinterest.pin",
        "pinterest.userBoards",
        "reddit.post",
        "reddit.commentReplies",
        "reddit.postComments",
        "reddit.postTranscript",
        "reddit.subredditDetails",
        "reddit.user",
        "redfin.agent",
        "redfin.forRent",
        "redfin.forSale",
        "rumble.channelVideos",
        "rumble.video",
        "rumble.comments",
        "rumble.transcript",
        "snapchat.profile",
        "snapchat.spotlight",
        "snapchat.spotlightComments",
        "solo.page",
        "soundcloud.artist",
        "soundcloud.artistTracks",
        "soundcloud.track",
        "spotify.album",
        "spotify.artist",
        "spotify.playlist",
        "spotify.podcast",
        "spotify.podcastEpisodes",
        "spotify.track",
        "substack.comments",
        "substack.post",
        "substack.posts",
        "substack.profile",
        "substack.publication",
        "taplink.page",
        "telegram.channel",
        "telegram.channelPosts",
        "telegram.post",
        "threads.post",
        "threads.profile",
        "threads.userPosts",
        "tiktok.adLibraryAd",
        "tiktok.adLibrarySearch",
        "tiktok.collectionVideos",
        "tiktok.commentReplies",
        "tiktok.comments",
        "tiktok.followers",
        "tiktok.hashtag",
        "tiktok.playlistVideos",
        "tiktok.playlists",
        "tiktok.product",
        "tiktok.profile",
        "tiktok.profileRegion",
        "tiktok.productReviews",
        "tiktok.shopProducts",
        "tiktok.song",
        "tiktok.transcript",
        "tiktok.userVideos",
        "tiktok.userShowcase",
        "tiktok.video",
        "truthsocial.post",
        "truthsocial.profile",
        "truthsocial.userPosts",
        "twitch.clip",
        "twitch.profile",
        "twitch.userVideos",
        "twitter.community",
        "twitter.profile",
        "twitter.tweet",
        "twitter.tweetTranscript",
        "twitter.userTweets",
        "walmart.product",
        "walmart.reviews",
        "youtube.channel",
        "youtube.channelVideos",
        "youtube.channelCommunityPosts",
        "youtube.channelLives",
        "youtube.channelPlaylists",
        "youtube.channelShorts",
        "youtube.communityPost",
        "youtube.playlist",
        "youtube.transcript",
        "youtube.video",
        "youtube.commentReplies",
        "youtube.videoComments",
        "youtube.videoSponsors",
        "zillow.agent",
        "zillow.property"
      ],
      "type": "string",
      "description": "Endpoint to watch. Search, trending and popular endpoints are not watchable: they change on every request."
    },
    "webhook_url": {
      "type": "string",
      "description": "URL that receives a POST on each change."
    },
    "interval_seconds": {
      "type": "integer",
      "maximum": 604800,
      "minimum": 3600,
      "description": "Seconds between checks, at most 604800. At least 3600 for every endpoint. Omit it to use the endpoint's suggested interval: hourly for prices and live data, every 6 hours for posts and comments, daily for profiles and ads, weekly for music, link-in-bio pages and transcripts. Each check is charged, so a slower interval costs less."
    }
  }
}
create_watch annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
list_watches — List watches
Advertised by the server during the last successful anonymous check.
Advertised read-only

This team's watches, including paused ones. Free.

list_watches input schema
{
  "type": "object",
  "properties": {}
}
list_watches annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
cancel_watch — Cancel a watch
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a watch. Free.

cancel_watch input schema
{
  "type": "object",
  "required": [
    "subscription_id"
  ],
  "properties": {
    "subscription_id": {
      "type": "string",
      "description": "subscriptionId from create_watch or list_watches."
    }
  }
}
cancel_watch annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
create_monitor — Monitor a term for new mentions
Advertised by the server during the last successful anonymous check.
Open-world

Watch a term (a brand, product, domain or competitor) across social platforms on a schedule, keeping only posts that mention it and were not seen before. New mentions go to webhook_url if given, and always to get_monitor_mentions. Costs 1 credit per platform per check, charged whenever a platform answers, even if nothing mentions the term; a failed platform costs nothing, and there is nothing per mention. Creating a monitor is free.

create_monitor input schema
{
  "type": "object",
  "required": [
    "term"
  ],
  "properties": {
    "term": {
      "type": "string",
      "description": "The word or phrase to find, up to 200 characters."
    },
    "platforms": {
      "type": "array",
      "items": {
        "enum": [
          "reddit",
          "hackernews",
          "bluesky",
          "youtube",
          "threads",
          "instagram",
          "tiktok"
        ],
        "type": "string"
      },
      "description": "Omit to watch all of them. Fewer platforms cost less per check."
    },
    "webhook_url": {
      "type": "string",
      "description": "URL that receives a POST with each batch of new mentions."
    },
    "interval_seconds": {
      "type": "integer",
      "maximum": 604800,
      "minimum": 3600,
      "description": "Seconds between checks. Omit for every 6 hours."
    }
  }
}
create_monitor annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
list_monitors — List monitors
Advertised by the server during the last successful anonymous check.
Advertised read-only

This team's monitors with their mention counts and the state of each platform. Free.

list_monitors input schema
{
  "type": "object",
  "properties": {}
}
list_monitors annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
get_monitor_mentions — Read found mentions
Advertised by the server during the last successful anonymous check.
Advertised read-only

Mentions found by monitors, newest first, 50 per page. New mentions come first; those already out there when the monitor started follow, marked baseline: true. Free.

get_monitor_mentions input schema
{
  "type": "object",
  "properties": {
    "cursor": {
      "type": "string",
      "description": "nextCursor from the previous page."
    },
    "monitor_id": {
      "type": "string",
      "description": "monitorId from create_monitor or list_monitors. Omit for every monitor."
    }
  }
}
get_monitor_mentions annotations
{
  "readOnlyHint": true,
  "openWorldHint": false
}
delete_monitor — Delete a monitor
Advertised by the server during the last successful anonymous check.
Advertised destructive

Deleting stops the monitor and permanently deletes all mentions it found. This cannot be undone. Free.

delete_monitor input schema
{
  "type": "object",
  "required": [
    "monitor_id"
  ],
  "properties": {
    "monitor_id": {
      "type": "string",
      "description": "monitorId from create_monitor or list_monitors."
    }
  }
}
delete_monitor annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1158 ms
95th percentile latency
1158 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1158 ms · metadata changed · 260 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http truescrape-mcp https://api.truescrape.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add truescrape-mcp --url https://api.truescrape.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable truescrape-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "truescrape-mcp": {
      "url": "https://api.truescrape.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "truescrape-mcp": {
      "type": "streamableHttp",
      "url": "https://api.truescrape.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start truescrape-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "truescrape-mcp": {
      "type": "http",
      "url": "https://api.truescrape.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http truescrape-mcp https://api.truescrape.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "truescrape-mcp": {
      "url": "https://api.truescrape.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "truescrape-mcp": {
      "serverUrl": "https://api.truescrape.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like TrueScrape MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.