MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Data access / search

Social Media Search API — Twitter, Instagram, Reddit, TikTok (XPOZ)

Twitter/X, Instagram, Reddit & TikTok data for AI agents. Billions of posts. No API keys.

Checks passed
14 / 22

1 failed · 7 not measured

Median response
195 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
52

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 203 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-06-18, serverInfo.name xpoz-mcp.

  • Pass
    Lists tools

    tools/list returned 52 tools.

  • Pass
    Current protocol

    Negotiated 2025-06-18. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 195 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 202 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    384 of 570 parameters have a description (67%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-07-14T13:56:06.314985Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using Social Media Search API — Twitter, Instagram, Reddit, TikTok (XPOZ)

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http social-media-search-api-twitter-instagram-reddit-tiktok-xpoz https://mcp.xpoz.ai/mcp

Capabilities

Tools 52

addTrackedItems

Add keywords/users to track. Accepts array of items with phrase, type (keyword/user/subreddit/hashtag), platform (twitter/instagram/reddit/tiktok). Subreddit is Reddit-only, hashtag is TikTok-only. Returns error if plan limit exceeded.

Discovered
cancelOperation

Cancel running operation. Required: operationId. Gracefully stops operation at next checkpoint. Returns confirmation. Use checkOperationStatus to verify cancellation completed.

Discovered
checkAccessKeyStatus

Check access key status without revealing key. Required: authentication. Returns: status, metadata.

Discovered
checkOperationStatus

checkOperationStatus: poll an async operation and retrieve its results or CSV download URL. Use this after any tool call made with responseType="paging" or responseType="csv" — those return an operationId that must be polled via checkOperationStatus to get the actual data. Also handles background job status checks, presigned S3 link retrieval for data dumps, and completion polling for long-running queries. Required: operationId. HANDLES TWO TYPES: (1) Query operations (op_toolname_xxx): returns paginated results + dataDumpExportOperationId. (2) Export operations (op_datadump_xxx): returns download URL for CSV download. CRITICAL: You MUST keep polling until operation finishes. DO NOT stop until status is success/no_data/error/cancelled. POLLING LOOP: (1) Call immediately after getting operation ID. (2) If status=running, wait exactly 5 seconds. (3) Call again after 5 seconds. (4) Repeat step 2-3 continuously until status changes to success/no_data/error/cancelled. (5) Only stop when operation is finished. NOTE: status values returned are wire-level ResponseStatus (success/no_data/error/running/cancelled). Returns: For queries - results, pagination, dataDumpExportOperationId. For exports - downloadUrl, fileName, totalRows. NEVER make calls without 5 second waits between them.

Discovered
countTweets

Count tweets containing a specific phrase within a date range. Returns the total count of matching tweets (int) directly, or zero if none found. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). Filters: date range (startDate/endDate in YYYY-MM-DD). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Default: startDate=6 months ago if not provided. Use for analytics and trend analysis without retrieving full tweet data. This is a safe, read-only tool for analyzing searchable information.

Discovered
getAccountDetails

Get authenticated user's account details: plan (name, features), billing (period, next renewal date; null for Free plan), and usage (subscription credits remaining, extra credits remaining, extra tracked items). Required: authentication. Returns: nested plan/billing/usage object.

Discovered
getCreditsUsageHistory

Get authenticated user's credits and export-rows usage over time, for analyzing usage patterns. Params: range ("today" | "7d" | "current_month" | "lifetime", default current_month), granularity ("hour" | "day", default day). Returns time-series buckets for both credits and exportRows, each with subscriptionUsed, extraUsed, totalUsed, extraPurchased. Use for trend analysis and spotting usage spikes. For current remaining balances, use getAccountDetails instead. Required: authentication.

Discovered
getInstagramCommentsByPostId

Get COMMENT CONTENT (text, likes) for an Instagram post. Returns the actual comment objects with text and metadata. RETURNS COMMENT DATA: id, text, username, createdAtDate, likeCount, childCommentCount. Use for reading what people said. NOT FOR USER PROFILES: To get detailed user profiles (bio, followerCount, followingCount) of commenters, use getInstagramPostInteractingUsers with interactionType="commenters" instead. IMPORTANT: postId must be in strong_id format (e.g., "3606450040306139062_4836333238") - use the full "id" value from other Instagram tools, NOT just the media_id. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: sentiment analysis, reading discussions, analyzing comment content, engagement patterns. Date filters: OMIT startDate/endDate parameters by default. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Optional fields: ["id", "text", "username", "createdAtDate", "likeCount"]. This is a safe, read-only tool for analyzing searchable information.

Discovered
getInstagramPostInteractingUsers

Get USER PROFILES of people who interacted with an Instagram post. Returns full user data (bio, followerCount, followingCount, etc.). RETURNS USER PROFILES: id, username, fullName, biography, followerCount, followingCount, isVerified, profilePicUrl. Use for analyzing WHO engaged with a post. NOT FOR COMMENT TEXT: To read the actual comment content (what people wrote), use getInstagramCommentsByPostId instead. INTERACTION TYPES: "commenters" (users who commented), "likers" (users who liked). WHEN TO USE THIS TOOL: Analyzing commenters/likers demographics, finding influencers who engaged, building audience profiles, network analysis of who interacts with posts. WHEN TO USE getInstagramCommentsByPostId: Reading comment text, sentiment analysis of what was said, analyzing discussion content. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for commenters when stale. PAGING (responseType="paging"): Async paginated results (1000 users per page with default fields), returns operationId - IMMEDIATELY call checkOperationStatus to get results. CSV export included via dataDumpExportOperationId. Supports pageNumber/tableName for subsequent pages. Optional fields (default: ["id", "username", "fullName"]). Available: biography, isPrivate, isVerified, followerCount, followingCount, mediaCount, profilePicUrl. This is a safe, read-only tool for analyzing searchable information.

Discovered
getInstagramPostsByIds

Get multiple Instagram posts by IDs (1-50 IDs per request). Returns results directly. Returns only found posts, omitting not-found IDs for flexibility. First searches database, then external API for missing/stale data in parallel. Use when you have multiple exact post IDs. NOT for search - use getInstagramPostsByKeywords. PERFORMANCE: Much more efficient than multiple single-ID calls. Batches database queries and parallelizes API calls. IMPORTANT: postIds must be in strong_id format (e.g., "3606450040306139062_4836333238") - use the full "id" value from other Instagram tools, NOT just the media_id. To find a post from an Instagram URL (e.g., instagram.com/p/ABC123/), extract the shortcode from the URL path and use getInstagramPostsByKeywords to search, or ask the user for the post ID. Optional fields parameter for performance: ["id", "caption", "likeCount"]. Returns: results array with id, caption, userId, username, createdAtDate, engagement metrics, count, dataSource. This is a safe, read-only tool for analyzing searchable information.

Discovered
getInstagramPostsByKeywords

Search Instagram posts by keywords with two response modes. Searches in both post captions and video subtitles. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: content analysis, hashtag trends, brand monitoring across thousands of posts. Returns by default: id, caption, username, createdAtDate. First searches database, then external API if data is stale or missing. NOT for URL lookups or post ID lookups - use getInstagramPostsByIds instead. Query must be plain text keywords/phrases, not URLs or IDs. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). Date filters: OMIT startDate/endDate parameters by default. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Specify to get additional/different fields. Available: Core (id, caption, userId, username, fullName, createdAtDate), Engagement (likeCount, commentCount, reshareCount, mediaRepostCount, saveCount, videoPlayCount), Media (mediaType, imageUrl, videoUrl, subtitles, videoDuration). This is a safe, read-only tool for analyzing searchable information.

Discovered
getInstagramPostsByUser

Get posts from Instagram user by ID or username with two response modes. Use identifierType="id" for numeric user ID, identifierType="username" for username. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: engagement analysis, content trends, posting patterns across all posts. Returns by default: id, caption, username, createdAtDate. Date filters: OMIT startDate/endDate parameters by default to retrieve all posts. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Specify to get additional/different fields. Available: Core (id, caption, userId, username, fullName, createdAtDate), Engagement (likeCount, commentCount, reshareCount, mediaRepostCount, saveCount, videoPlayCount), Media (mediaType, imageUrl, videoUrl, subtitles, videoDuration). This is a safe, read-only tool for analyzing searchable information.

Discovered
getInstagramUser

Get Instagram user profile by ID or username. Use identifierType="id" for numeric user ID, identifierType="username" for username. For username: Use ONLY when you have the precise username (e.g., "cristiano"). For person names or fuzzy search, use searchInstagramUsers instead. Optional fields parameter for performance (default: ["id", "username", "fullName"]). Available fields: id, username, fullName, biography, isPrivate, isVerified, followerCount, followingCount, mediaCount, profilePicUrl, and more. Returns: single user profile with userId, username, fullName, followerCount, followingCount, mediaCount, biography, isVerified, isPrivate, profilePicUrl. This is a safe, read-only tool for analyzing searchable information.

Discovered
getInstagramUserConnections

Get Instagram user connections (followers or following). Use connectionType="followers" for users who follow them, connectionType="following" for users they follow. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. PAGING (responseType="paging"): Async paginated results (100 users per page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. Optional fields parameter for performance (default: ["id", "username", "fullName"]). Available fields: id, username, fullName, biography, isPrivate, isVerified, followerCount, followingCount, mediaCount, profilePicUrl, and more. DATA FRESHNESS: Automatically checks data age (> 1 week triggers refresh from API). FORCE LATEST: Use sparingly - forceLatest=true bypasses cache for real-time data (increases latency/costs). CRITICAL - Understanding totalRows vs totalDataCount: totalRows indicates ONLY what we have in our database. totalDataCount (when present) shows the actual count from Instagram. If totalDataCount is missing or undefined, you CANNOT claim totalRows represents all connections - it only shows our partial database data. If totalDataCount > totalRows, we only have partial data. Always check if totalDataCount exists before making claims about total counts. This is a safe, read-only tool for analyzing searchable information.

Discovered
getInstagramUsersByKeywords

Search for USERS who authored Instagram posts matching keywords. USE CASE: Find users who have posted content about specific topics, keywords, or phrases. Returns unique, deduplicated user profiles. RESPONSE MODES (responseType parameter): "fast" (DEFAULT): Returns up to 300 results directly in one call. Use limit param to reduce. Best for quick lookups. "paging": Async paginated results (100/page). Returns operation ID - call checkOperationStatus to get results. Use pageNumber/tableName for subsequent pages. "csv": Async CSV export. Returns dataDumpExportOperationId - call checkOperationStatus to get S3 download link. Best for bulk export. PAGING MODE DETAILS: FIRST CALL: Omit pageNumber and tableName. Creates cached table, returns page 1 with pagination metadata (tableName, totalPages, totalRows). SUBSEQUENT PAGES: Use tableName from first response with pageNumber (2, 3, etc.). BULK FETCH: Use pageNumberEnd with pageNumber and tableName for multiple consecutive pages. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). FILTERS: - startDate/endDate: Filter by post date (YYYY-MM-DD format). OMIT by default, only use if user explicitly requests date range. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Optional fields parameter for performance (default: ["id", "username", "fullName"]). Available fields: id, username, fullName, biography, isPrivate, isVerified, followerCount, followingCount, mediaCount, profilePicUrl, and more. AGGREGATE FIELDS (from matching posts) - MUST BE EXPLICITLY REQUESTED IN FIELDS: aggRelevance (relevance score for sorting), relevantPostsCount (count of matching posts per user), relevantPostsLikesSum, relevantPostsCommentsSum, relevantPostsResharesSum, relevantPostsMediaRepostsSum, relevantPostsSavesSum, relevantPostsVideoPlaysSum. These return aggregated metrics from all matched posts for each user. Returns: results array of unique user profiles, count. In paging mode: pagination object, dataDumpExportOperationId for CSV. This is a safe, read-only tool for analyzing searchable information.

Discovered
getRedditCommentById

Get a single Reddit comment by its ID. Accepts the bare base36 comment id or the t1_-prefixed form (e.g. "laz1ytq" or "t1_laz1ytq"), as returned by getRedditPostWithCommentsById and getRedditCommentsByKeywords. First searches database, then fetches from the external API if the comment is missing or stale (>1 week). NOT for searching - use getRedditCommentsByKeywords for keyword search. Optional fields parameter for performance (default: ["id", "body", "authorUsername", "createdAtDate"]). Returns: single comment with id, body, author, parent ids, score, and timestamps. This is a safe, read-only tool for analyzing searchable information.

Discovered
getRedditCommentsByKeywords

Search Reddit comments by keywords. Searches in comment body text. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: sentiment analysis, discussion trends, community opinions across thousands of comments. DATABASE-ONLY: Searches existing database records only. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). Date filters: OMIT startDate/endDate parameters by default. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FILTERS: subreddit (limit to specific subreddit without r/ prefix). Optional fields parameter for performance: ["id", "body", "authorUsername", "postSubredditName", "score", "createdAtDate"]. Returns by default: id, body, authorUsername, createdAtDate. This is a safe, read-only tool for analyzing searchable information.

Discovered
getRedditPostsByKeywords

Search Reddit posts by keywords with two response modes. Searches in post titles and selftext. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: sentiment analysis, subreddit trends, community discussions across thousands of posts. Returns by default: id, title, authorUsername, subredditName, createdAtDate. First searches database, then external API if data is stale or missing. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). Date filters: OMIT startDate/endDate parameters by default. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FILTERS: sort (relevance, hot, top, new, comments), time (hour, day, week, month, year, all), subreddit (limit to specific subreddit). FIELDS parameter (optional): Specify to get additional/different fields. Available: Core (id, title, selftext, url, permalink), Author (authorId, authorUsername), Subreddit (subredditName, subredditId), Engagement (score, upvotes, downvotes, upvoteRatio, commentsCount, crosspostsCount), Flags (isSelf, isVideo, over18, spoiler, locked, stickied, archived). This is a safe, read-only tool for analyzing searchable information.

Discovered
getRedditPostWithCommentsById

Get Reddit post by ID with its comments. Returns both the post data and comments in a single response. FAST (default, omit responseType or responseType="fast"): Returns post and up to 300 comments directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100 comments/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. RESPONSE STRUCTURE: Returns { results: { post: {...}, comments: [...] }, count, guidance }. PAGING MODE DETAILS: FIRST CALL: Omit pageNumber and tableName. Creates cached table for comments, returns page 1 with post data and pagination metadata. SUBSEQUENT PAGES: Use tableName from first response with pageNumber (2, 3, etc.) to fetch additional comment pages. Post data is NOT returned on subsequent pages. FIELD SELECTION: Use postFields for post data optimization, commentFields for comment data optimization. First searches database for both post and comments, then external API if data is stale or missing. This is a safe, read-only tool for analyzing searchable information.

Discovered
getRedditSubredditsByKeywords

Search for SUBREDDITS where Reddit posts match keywords. Returns unique, deduplicated subreddit profiles. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce). Auto API fallback for fresh data. PAGING (responseType="paging"): Async paginated results (100 per page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). FILTERS: - startDate/endDate: Filter by post date (YYYY-MM-DD format). OMIT by default, only use if user explicitly requests date range. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Optional fields parameter for performance (default: ["id", "displayName", "title", "subscribersCount"]). Available fields: id, displayName, title, publicDescription, description, subscribersCount, activeUserCount, and more. AGGREGATE FIELDS (from matching posts) - MUST BE EXPLICITLY REQUESTED IN FIELDS: aggRelevance (relevance score for sorting), relevantPostsCount (count of matching posts per subreddit), relevantPostsUpvotesSum, relevantPostsCommentsCountSum. This is a safe, read-only tool for analyzing searchable information.

Discovered
getRedditSubredditWithPostsByName

Get Reddit subreddit by name with its posts. FAST (default, omit responseType or responseType="fast"): Returns subreddit data with up to 300 posts directly (use limit param to reduce). Auto API fallback for fresh data. PAGING (responseType="paging"): Async paginated results (100 posts per page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. RESPONSE STRUCTURE: Returns { results: { subreddit: {...}, posts: [...] }, pagination: {...} }. FIELD SELECTION: Use subredditFields for subreddit data optimization, postFields for post data optimization. First searches database for both subreddit and posts, then external API if data is stale or missing. This is a safe, read-only tool for analyzing searchable information.

Discovered
getRedditUser

Get Reddit user profile by username. Returns user profile including karma breakdown (link, comment, total), account status (gold, mod, employee), and profile info. Use without u/ prefix (e.g., "spez" not "u/spez"). Optional fields parameter for performance (default: ["id", "username", "totalKarma"]). Available fields: id, username, profileUrl, profilePicUrl, snoovatarImg, linkKarma, commentKarma, totalKarma, awardeeKarma, awarderKarma, isGold, isMod, isEmployee, hasVerifiedEmail, isSuspended, verified, isBlocked, acceptFollowers, hasSubscribed, hideFromRobots, prefShowSnoovatar, profileDescription, profileBannerUrl, profileTitle, createdAt. Returns: single user profile with id, username, karma metrics, account flags, and profile details. This is a safe, read-only tool for analyzing searchable information.

Discovered
getRedditUsersByKeywords

Search for USERS who authored Reddit posts matching keywords. USE CASE: Find users who have posted content about specific topics. Returns unique, deduplicated user profiles. RESPONSE MODES (responseType parameter): "fast" (DEFAULT): Returns up to 300 results directly in one call. Use limit param to reduce. Best for quick lookups. "paging": Async paginated results (100/page). Returns operation ID - call checkOperationStatus to get results. Use pageNumber/tableName for subsequent pages. "csv": Async CSV export. Returns dataDumpExportOperationId - call checkOperationStatus to get S3 download link. Best for bulk export. PAGING MODE DETAILS: FIRST CALL: Omit pageNumber and tableName. Creates cached table, returns page 1 with pagination metadata (tableName, totalPages, totalRows). SUBSEQUENT PAGES: Use tableName from first response with pageNumber (2, 3, etc.). BULK FETCH: Use pageNumberEnd with pageNumber and tableName for multiple consecutive pages. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). FILTERS: - startDate/endDate: Filter by post date (YYYY-MM-DD format). OMIT by default, only use if user explicitly requests date range. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. - subreddit: Filter to specific subreddit (without r/ prefix). Optional fields parameter for performance (default: ["id", "username", "totalKarma"]). Available fields: id, username, profileUrl, profilePicUrl, snoovatarImg, linkKarma, commentKarma, totalKarma, profileDescription, and more. AGGREGATE FIELDS (from matching posts) - MUST BE EXPLICITLY REQUESTED IN FIELDS: aggRelevance (relevance score for sorting), relevantPostsCount (count of matching posts per user), relevantPostsUpvotesSum, relevantPostsCommentsCountSum. These return aggregated metrics from all matched posts for each user. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokCommentsByPostId

Get COMMENT CONTENT (text, likes) for a Tiktok post. Returns the actual comment objects with text and metadata. RETURNS COMMENT DATA: id, text, username, createdAtDate, likeCount. Use for reading what people said. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: sentiment analysis, reading discussions, analyzing comment content, engagement patterns. Date filters: OMIT startDate/endDate by default. ONLY pass if user explicitly requests date range. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Optional fields: ["id", "text", "username", "createdAtDate", "likeCount"]. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokPostsByHashtags

Search Tiktok posts by hashtags with three response modes. Searches the hashtags column directly (NOT post descriptions). Pass hashtags as an array of bare alphanumeric strings - do NOT include leading "#". OR semantics: matches posts containing ANY of the listed hashtags. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: hashtag trend analysis, viral hashtag tracking, cross-hashtag content discovery. Returns by default: id, description, username, createdAtDate. NOT for keyword/phrase search in descriptions - use getTiktokPostsByKeywords instead. NOT for URL or post ID lookups - use getTiktokPostsByIds instead. Date filters: OMIT startDate/endDate parameters by default to retrieve all posts. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Specify to get additional/different fields. Available: Core (id, description, userId, username, nickname, createdAtDate), Engagement (likeCount, commentCount, playCount, forwardCount, collectCount, downloadCount), Media (videoThumbnail, videoUrl, duration, postType), Content (hashtags, transcriptsJson). This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokPostsByIds

Get multiple Tiktok posts by IDs (1-100 IDs per request). Returns results directly. First searches database, then external API for missing/stale data. Optional fields parameter for performance: ["id", "description", "likeCount"]. Returns: results array with id, description, userId, username, createdAtDate, engagement metrics. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokPostsByKeywords

Search Tiktok posts by keywords with three response modes. Searches post descriptions and video transcripts. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: trend analysis, hashtag tracking, viral content discovery across Tiktok. Returns by default: id, description, username, createdAtDate. NOT for URL lookups or post ID lookups - use getTiktokPostsByIds instead. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). Date filters: OMIT startDate/endDate parameters by default to retrieve all posts. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Specify to get additional/different fields. Available: Core (id, description, userId, username, nickname, createdAtDate), Engagement (likeCount, commentCount, playCount, forwardCount, collectCount, downloadCount), Media (videoThumbnail, videoUrl, duration, postType), Content (hashtags, transcriptsJson). This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokPostsBySound

Get Tiktok posts that use a specific sound/music with three response modes. Required: soundId (numeric ID from searchTiktokSounds). FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. Returns by default: id, description, username, createdAtDate. NOT for keyword/phrase search - use getTiktokPostsByKeywords. NOT for hashtags - use getTiktokPostsByHashtags. Date filters: OMIT startDate/endDate by default. ONLY pass if user explicitly requests a date range (YYYY-MM-DD). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Core (id, description, userId, username, nickname, createdAtDate), Engagement (likeCount, commentCount, playCount, forwardCount, collectCount, downloadCount), Media (videoThumbnail, videoUrl, duration, postType), Content (hashtags, transcriptsJson). This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokPostsByUser

Get posts from Tiktok user by ID or username with three response modes. Use identifierType="id" for numeric user ID, identifierType="username" for username. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: engagement analysis, content trends, viral video detection, processing thousands of posts. Returns by default: id, description, username, createdAtDate. First searches database, then external API if data is stale or missing. Date filters: OMIT startDate/endDate parameters by default to retrieve all posts. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Specify to get additional/different fields. Available: Core (id, description, userId, username, nickname, createdAtDate), Engagement (likeCount, commentCount, playCount, forwardCount, collectCount, downloadCount), Media (videoThumbnail, videoUrl, duration, postType), Content (hashtags, transcriptsJson). This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokUser

Get Tiktok user profile by ID or username. Use identifierType="id" for numeric user ID, identifierType="username" for username. For username: Use ONLY when you have the precise username. For person names or fuzzy search, use searchTiktokUsers instead. Optional fields parameter for performance (default: ["id", "username", "nickname"]). Available fields: id, username, nickname, signature, isPrivate, isVerified, followerCount, followingCount, likeCount, postCount, avatar, and more. Returns: single user profile. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokUsersByHashtags

Search for USERS who authored Tiktok posts tagged with specific hashtags. USE CASE: Find users who have posted content tagged with one or more hashtags. Returns unique, deduplicated user profiles. Pass hashtags as an array of bare alphanumeric strings - do NOT include leading "#". OR semantics: matches users who posted content tagged with ANY of the listed hashtags. RESPONSE MODES (responseType parameter): "fast" (DEFAULT): Returns up to 300 results directly in one call. Use limit param to reduce. Best for quick lookups. "paging": Async paginated results (100/page). Returns operation ID - call checkOperationStatus to get results. Use pageNumber/tableName for subsequent pages. "csv": Async CSV export. Returns dataDumpExportOperationId - call checkOperationStatus to get S3 download link. Best for bulk export. NOT for keyword/phrase search in descriptions - use getTiktokUsersByKeywords instead. FILTERS: startDate/endDate (YYYY-MM-DD format). OMIT by default. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Optional fields parameter for performance (default: ["id", "username", "nickname"]). AGGREGATE FIELDS (from matching posts) - MUST BE EXPLICITLY REQUESTED IN FIELDS: aggRelevance, relevantPostsCount, relevantPostsLikesSum, relevantPostsCommentsSum, relevantPostsPlaysSum, relevantPostsForwardsSum. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTiktokUsersByKeywords

Search for USERS who authored Tiktok posts matching keywords. USE CASE: Find users who have posted content about specific topics. Returns unique, deduplicated user profiles. RESPONSE MODES (responseType parameter): "fast" (DEFAULT): Returns up to 300 results directly in one call. Use limit param to reduce. Best for quick lookups. "paging": Async paginated results (100/page). Returns operation ID - call checkOperationStatus to get results. Use pageNumber/tableName for subsequent pages. "csv": Async CSV export. Returns dataDumpExportOperationId - call checkOperationStatus to get S3 download link. Best for bulk export. PAGING MODE DETAILS: FIRST CALL: Omit pageNumber and tableName. Creates cached table, returns page 1 with pagination metadata (tableName, totalPages, totalRows). SUBSEQUENT PAGES: Use tableName from first response with pageNumber (2, 3, etc.). BULK FETCH: Use pageNumberEnd with pageNumber and tableName for multiple consecutive pages. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). FILTERS: startDate/endDate (YYYY-MM-DD format). OMIT by default. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Optional fields parameter for performance (default: ["id", "username", "nickname"]). AGGREGATE FIELDS (from matching posts) - MUST BE EXPLICITLY REQUESTED IN FIELDS: aggRelevance, relevantPostsCount, relevantPostsLikesSum, relevantPostsCommentsSum, relevantPostsPlaysSum, relevantPostsForwardsSum. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTrackedItems

Get tracked keywords and users. Returns: phrase, type (keyword/user/subreddit/hashtag), platform (twitter/instagram/reddit/tiktok). Subreddit is Reddit-only, hashtag is TikTok-only.

Discovered
getTwitterPostComments

Get comments (replies) to specific post. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze all comments. Ideal for: sentiment analysis, discussion themes, community engagement analysis. First searches database, then external API if data is stale (>10 days). Date filter: OMIT startDate by default. ONLY pass if user explicitly requests filtering from specific date (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Use to analyze community response and discussion. NOT for quotes - use getTwitterPostQuotes. Optional fields parameter for performance: ["id", "text", "authorUsername", "createdAt"]. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterPostInteractingUsers

Get users who interacted with a specific Twitter post (commenters, quoters, or retweeters). INTERACTION TYPES: "commenters" (users who replied to the post), "quoters" (users who quoted the post), "retweeters" (users who retweeted the post). FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback when DB data is stale or insufficient. Results include guidance for paging mode. PAGING (responseType="paging"): Async paginated results (1000/page with default fields, 100/page if extra fields). Returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: audience analysis, engagement patterns, network graphs across thousands of users. PAGING MODE DETAILS: FIRST CALL: Omit pageNumber and tableName. Creates cached table, returns page 1 with pagination metadata (tableName, totalPages, totalRows). SUBSEQUENT PAGES: Use tableName from first response with pageNumber (2, 3, etc.) to fetch additional pages. Cannot pass pageNumber without tableName. BULK FETCH: Optionally use pageNumberEnd with pageNumber and tableName to fetch multiple consecutive pages at once (e.g., pageNumber=1, pageNumberEnd=5 returns pages 1-5). Optional fields parameter for performance (default: ["id", "username", "name"]). Available fields: id, username, name, description, location, followersCount, followingCount, verified, profileImageUrl, and more. DATA FRESHNESS: Automatically checks data age (> 1 week triggers refresh from API). FORCE LATEST: Use sparingly - forceLatest=true bypasses cache for real-time data (increases latency/costs). Use for: Finding who engaged with a specific post, analyzing post reach and audience, building engagement networks. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterPostQuotes

Get quote posts of specific post. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze all quote tweets. Ideal for: sentiment analysis on reactions, commentary patterns, viral spread analysis. First searches database, then external API if data is stale (>10 days). Date filter: OMIT startDate by default. ONLY pass if user explicitly requests filtering from specific date (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Use to analyze commentary on post. NOT for retweets - use getTwitterPostRetweets. Optional fields parameter for performance: ["id", "text", "authorUsername", "createdAt"]. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterPostRetweets

Get retweets of specific post. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Database-only. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. Database-only search for historical retweet data. Date filter: OMIT startDate by default. ONLY pass if user explicitly requests filtering from specific date (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. Use to analyze post amplification patterns. NOT for quotes - use getTwitterPostQuotes. Optional fields parameter for performance: ["id", "authorUsername", "createdAt"]. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterPostsByAuthor

Get posts from author by username with multiple response modes. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: statistical analysis, trend detection, data visualization, processing thousands of posts. Returns by default: id, text, authorUsername, createdAtDate. First searches database, then external API if data is stale or missing. Date filters: OMIT startDate/endDate parameters by default to retrieve all posts. ONLY pass these if user explicitly requests specific date range (YYYY-MM-DD format). IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Specify to get additional/different fields. Available: Core (id, text, authorId, authorUsername, createdAt), Engagement (retweetCount, replyCount, quoteCount, impressionCount, bookmarkCount), Metadata (lang, source, suspended, deleted), Relations (conversationId, quotedTweetId, retweetedTweetId, replyToTweetId, replyToUserId, replyToUsername), Content (hashtags, mentions, mediaUrls), Location (placeName, placeCountry, placeCountryCode, placeBoundingBoxCoordinates, placeCentroid). This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterPostsByIds

Get multiple Twitter posts by numeric IDs (1-100 IDs per request). Returns results directly. Returns only found tweets, omitting not-found IDs for flexibility. First searches database, then external API for missing/stale data in parallel. Use when you have multiple exact post IDs. NOT for search - use getTwitterPostsByKeywords. PERFORMANCE: Much more efficient than multiple single-ID calls. Batches database queries and parallelizes API calls. Optional fields parameter for performance: ["id", "text", "retweetCount"]. Returns: results array with id, text, authorId, createdAt, metrics (retweets, replies, quotes), count, dataSource. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterPostsByKeywords

Search posts by keywords. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. Results include guidance for full mode. PAGING (responseType="paging"): Async paginated results (100/page), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: sentiment analysis, trend detection, content analysis across thousands of posts. Returns by default: id, text, authorUsername, createdAtDate. First searches database, then external API if data is stale or missing. NOT for URL lookups - use getTwitterPostsByIds. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). SORT: sortBy="relevance" (default, best matches first) or sortBy="latest" (newest first). Filters: language, authorId/authorUsername, countryCode (2-letter ISO code, feature-gated - only accounts with the country filter enabled; filters by the tagged place country in both database and on-demand results). Date filters: OMIT startDate/endDate by default. ONLY pass if user explicitly requests specific date range (YYYY-MM-DD format). Use filterOutRetweets=true to exclude retweets. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. FIELDS parameter (optional): Specify to get additional/different fields. Available: Core (id, text, authorId, authorUsername, createdAt), Engagement (retweetCount, replyCount, quoteCount, impressionCount, bookmarkCount), Metadata (lang, source, suspended, deleted), Relations (conversationId, quotedTweetId, retweetedTweetId, replyToTweetId, replyToUserId, replyToUsername), Content (hashtags, mentions, mediaUrls), Location (placeName, placeCountry, placeCountryCode, placeBoundingBoxCoordinates, placeCentroid). This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterUser

Get Twitter user profile by ID or username. Use identifierType="id" for numeric user ID, identifierType="username" for username. For username: Use ONLY when you have the precise username (e.g., "elonmusk"). For person names or fuzzy search, use searchTwitterUsers instead. Optional fields parameter for performance (default: ["id", "username", "name"]). Available fields: id, profileImageUrl, profileBannerUrl, profileInterstitialType, status, username, verifiedType, name, description, location, protected, verified, followersCount, followingCount, tweetCount, listedCount, likesCount, mediaCount, pinnedTweetId, source, nLang, nLangsFiltered, label, labelType, isVerified, modifiedAt, createdAt, verifiedSinceDatetime, accountBasedIn, locationAccurate, usernameChanges, lastUsernameChangeDatetime. NOTE: Use "tweetCount" not "statusesCount". Returns: single user profile with id, username, name, bio, followers_count, following_count, tweet_count, created_at, authenticity_score, inauthentic_type. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterUserConnections

Get Twitter user connections (followers or following). Use connectionType="followers" for users who follow them, connectionType="following" for users they follow. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reduce, e.g. limit=5). Auto API fallback for fresh data. PAGING (responseType="paging"): Async paginated results (1000/page with default fields, 100/page with extra fields), returns operationId for polling via checkOperationStatus. Supports pageNumber/tableName for subsequent pages. CSV (responseType="csv"): Async single CSV download, returns operationId, poll for S3 link. CODE EXECUTION: For csv mode, download CSV and use code execution to analyze full dataset. Ideal for: network analysis, audience demographics, engagement patterns. Optional fields parameter for performance (default: ["id", "username", "name"]). Available fields: id, username, name, description, location, followersCount, followingCount, verified, profileImageUrl, and more. DATA FRESHNESS: Automatically checks data age (> 1 week triggers refresh from API). FORCE LATEST: Use sparingly - forceLatest=true bypasses cache for real-time data (increases latency/costs). CRITICAL - Understanding totalRows vs totalDataCount: totalRows indicates ONLY what we have in our database. totalDataCount (when present) shows the actual count from Twitter. If totalDataCount is missing or undefined, you CANNOT claim totalRows represents all connections - it only shows our partial database data. If totalDataCount > totalRows, we only have partial data. Always check if totalDataCount exists before making claims about total counts. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterUsers

Get one or more Twitter user profiles by IDs or usernames (1-100 per request). Use identifierType="id" for numeric user IDs, identifierType="username" for usernames. All identifiers must be the same type. For single user: pass array of 1, e.g. identifiers=["elonmusk"]. For person names or fuzzy search, use searchTwitterUsers instead. PERFORMANCE: More efficient than multiple single calls, but can still take time for many users. Returns only found users, omitting not-found identifiers for flexibility. Optional fields parameter for performance (default: ["id", "username", "name"]). Available fields: id, profileImageUrl, profileBannerUrl, profileInterstitialType, status, username, verifiedType, name, description, location, protected, verified, followersCount, followingCount, tweetCount, listedCount, likesCount, mediaCount, pinnedTweetId, source, nLang, nLangsFiltered, label, labelType, isVerified, modifiedAt, createdAt, verifiedSinceDatetime, accountBasedIn, locationAccurate, usernameChanges, lastUsernameChangeDatetime. NOTE: Use "tweetCount" not "statusesCount". Returns: array of user profiles with count and dataSource. This is a safe, read-only tool for analyzing searchable information.

Discovered
getTwitterUsersByKeywords

Search for USERS who authored tweets/comments/quotes/retweets matching keywords. USE CASE: Find users who have posted content about specific topics, keywords, or phrases. Returns unique, deduplicated user profiles. RESPONSE MODES (responseType parameter): "fast" (DEFAULT): Returns up to 300 results directly in one call. Use limit param to reduce. Best for quick lookups. "paging": Async paginated results (100/page). Returns operation ID - call checkOperationStatus to get results. Use pageNumber/tableName for subsequent pages. "csv": Async CSV export. Returns dataDumpExportOperationId - call checkOperationStatus to get S3 download link. Best for bulk export. PAGING MODE DETAILS: FIRST CALL: Omit pageNumber and tableName. Creates cached table, returns page 1 with pagination metadata (tableName, totalPages, totalRows). SUBSEQUENT PAGES: Use tableName from first response with pageNumber (2, 3, etc.). BULK FETCH: Use pageNumberEnd with pageNumber and tableName for multiple consecutive pages. QUERY SYNTAX: Plain keywords (bitcoin, climate change), quoted phrases ("deep learning"), boolean expressions (AI AND crypto, bitcoin OR ethereum, politics NOT sports), or parenthesized groups ((startup OR entrepreneur) NOT "venture capital"). AND/OR/NOT must have a term on both sides. @handles like @karpathy are supported. Field operators (from:, lang:) are stripped. Forward slashes are treated as spaces (24/7 becomes 24 7). FILTERS: - startDate/endDate: Filter by tweet date (YYYY-MM-DD format). OMIT by default, only use if user explicitly requests date range. IMPORTANT!!!!!: THE CURRENT YEAR IS 2026. When user requests relative dates (last week, last month), verify the current date from your system context and double-check the calculated dates - models often get the year wrong, searching one year earlier than intended. - language: Filter tweets by language (en, EN, English, es, Spanish, etc.). Optional fields parameter for performance (default: ["id", "username", "name"]). Available fields: id, username, name, description, location, followersCount, followingCount, verified, profileImageUrl, and more. AGGREGATE FIELDS (from matching tweets) - MUST BE EXPLICITLY REQUESTED IN FIELDS: aggRelevance (relevance score for sorting), relevantTweetsCount (count of matching tweets per user), relevantTweetsImpressionsSum, relevantTweetsLikesSum, relevantTweetsQuotesSum, relevantTweetsRepliesSum, relevantTweetsRetweetsSum. These return aggregated metrics from all matched tweets for each user. Returns: results array of unique user profiles, count. In paging mode: pagination object, dataDumpExportOperationId for CSV. This is a safe, read-only tool for analyzing searchable information.

Discovered
getUserAccessKey

Retrieve authenticated user access key. Required: authentication, confirmation. Returns: access key, metadata.

Discovered
removeTrackedItems

Remove tracked keywords/users. Accepts array of items with phrase, type (keyword/user/subreddit/hashtag), platform (twitter/instagram/reddit/tiktok). Subreddit is Reddit-only, hashtag is TikTok-only. Use getTrackedItems first to see current items.

Discovered
searchInstagramUsers

Search users by person name, partial username, or fuzzy match using real-time external API. PRIMARY USE: When given person's name (e.g., "Cristiano Ronaldo", "Kim Kardashian"), partial info, or uncertain username. Use for: Name-based search, finding multiple candidates, fuzzy matching, discovering users. NOT for: Exact username lookup (use getInstagramUser when username is certain). Optional fields parameter for performance (default: ["id", "username", "fullName"]). Available fields: id, username, fullName, biography, isPrivate, isVerified, followerCount, followingCount, mediaCount, profilePicUrl, and more. Returns: array of matching users (default 10, max 10) with userId, username, fullName, followerCount, biography, profilePicUrl. This is a safe, read-only tool for analyzing searchable information.

Discovered
searchRedditSubreddits

Search Reddit subreddits by keywords using real-time external API. Searches subreddit names and descriptions to find communities. Use for: Discovering communities about topics, finding niche subreddits, exploring Reddit communities. Optional fields parameter for performance (default: ["id", "displayName", "title", "subscribersCount"]). Available fields: id, displayName, title, publicDescription, description, subscribersCount, activeUserCount, subredditType, over18, lang, url, subredditUrl, iconImg, bannerImg, headerImg, communityIcon, createdAt. Returns: array of matching subreddits (default 50, max 50) with id, name, description, subscriber count. This is a safe, read-only tool for analyzing searchable information.

Discovered
searchRedditUsers

Search Reddit users by name, username, or profile description using real-time external API. PRIMARY USE: When given a person's name (e.g., "spez", "GallowBoob"), partial info, or uncertain username. Use for: Name-based search, finding multiple candidates, fuzzy matching, discovering users. NOT for: Exact username lookup (use getRedditUser when username is certain). Optional fields parameter for performance (default: ["id", "username", "totalKarma"]). Available fields: id, username, profileUrl, profilePicUrl, snoovatarImg, linkKarma, commentKarma, totalKarma, awardeeKarma, awarderKarma, isGold, isMod, isEmployee, hasVerifiedEmail, isSuspended, verified, isBlocked, acceptFollowers, hasSubscribed, hideFromRobots, prefShowSnoovatar, profileDescription, profileBannerUrl, profileTitle, createdAt. Returns: array of matching users (default 50, max 50) with id, username, karma metrics, profile info. This is a safe, read-only tool for analyzing searchable information.

Discovered
searchTiktokSounds

Search Tiktok sounds/music by keyword. Use to discover sound/music objects (by title, artist, or album), then pass the returned id to getTiktokPostsBySound to find posts using that sound. Optional fields parameter (default: ["id", "title", "author", "userCount"]). Returns: array of sounds (up to 300) with id, title, author, userCount. This is a safe, read-only tool for analyzing searchable information.

Discovered
searchTiktokUsers

Search Tiktok users by name or username via external API. Use for: Name-based search, finding multiple candidates, fuzzy matching, discovering users. NOT for: Exact username lookup (use getTiktokUser when username is certain). Optional fields parameter for performance (default: ["id", "username", "nickname"]). Returns: array of matching users (default 10, max 10). This is a safe, read-only tool for analyzing searchable information.

Discovered
searchTwitterUsers

Search users by person name, partial username, or fuzzy match using real-time external API. PRIMARY USE: When given person's name (e.g., "Elon Musk", "Sam Altman"), partial info, or uncertain username. Use for: Name-based search, finding multiple candidates, fuzzy matching, discovering users. NOT for: Exact username lookup (use getTwitterUser when username is certain). Optional fields parameter for performance (default: ["id", "username", "name"]). Available fields: id, username, name, description, location, followersCount, followingCount, verified, profileImageUrl, and more. Returns: array of matching users (default 10, max 10) with id, username, name, bio, followers_count. This is a safe, read-only tool for analyzing searchable information.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected203 ms52
Connected186 ms52