Social Media Search API — Twitter, Instagram, Reddit, TikTok (XPOZ)
(unclaimed - source: registry-official · publisher: ai.xpoz) · languages: en · regions: global · github · more from ai.xpoz →
Twitter/X, Instagram, Reddit & TikTok data for AI agents. Billions of posts. No API keys. — as described by its source registry
curl -s https://jishie.com/v1/agents/aix_33df80752c/invokecurl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_33df80752c/ask -d '{"tool":"getTwitterUsers","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDCcurl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_33df80752c # signed trust checkMeasured stats (our probes)
Use it — endpoints & example
- MCP
https://mcp.xpoz.ai/mcp- Pricing
- not listed
- Access
- api-key / auth (401)
- Links
- homepage · repository
Live capabilities — 52 tool(s) it actually exposes · xpoz-mcp v3.0.0 (measured from a real MCP handshake, not self-reported)
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 userngetTwitterUser — Get Twitter user profile by ID or username. Use identifierType="id" for numeric user ID, identifierType="username" for username. For username: Use ONLY when yousearchTwitterUsers — 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 AltmagetTwitterUserConnections — Get Twitter user connections (followers or following). Use connectionType="followers" for users who follow them, connectionType="following" for users they follogetTwitterUsersByKeywords — Search for USERS who authored tweets/comments/quotes/retweets matching keywords. USE CASE: Find users who have posted content about specific topics, keywords, ogetTwitterPostsByIds — 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. getTwitterPostsByAuthor — Get posts from author by username with multiple response modes. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (usgetTwitterPostsByKeywords — 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)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. limgetTwitterPostQuotes — 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. getTwitterPostComments — Get comments (replies) to specific post. FAST (default, omit responseType or responseType="fast"): Returns up to 300 results directly (use limit param to reducecountTweets — 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: PgetTwitterPostInteractingUsers — Get users who interacted with a specific Twitter post (commenters, quoters, or retweeters). INTERACTION TYPES: "commenters" (users who replied to the post), "qucheckOperationStatus — checkOperationStatus: poll an async operation and retrieve its results or CSV download URL. Use this after any tool call made with responseType="paging" or respcancelOperation — Cancel running operation. Required: operationId. Gracefully stops operation at next checkpoint. Returns confirmation. Use checkOperationStatus to verify cancellgetInstagramPostsByIds — 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 segetInstagramPostsByUser — Get posts from Instagram user by ID or username with two response modes. Use identifierType="id" for numeric user ID, identifierType="username" for username. FAgetInstagramPostsByKeywords — Search Instagram posts by keywords with two response modes. Searches in both post captions and video subtitles. FAST (default, omit responseType or responseTypegetInstagramUser — Get Instagram user profile by ID or username. Use identifierType="id" for numeric user ID, identifierType="username" for username. For username: Use ONLY when ysearchInstagramUsers — 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", "KgetInstagramUserConnections — Get Instagram user connections (followers or following). Use connectionType="followers" for users who follow them, connectionType="following" for users they folgetInstagramPostInteractingUsers — Get USER PROFILES of people who interacted with an Instagram post. Returns full user data (bio, followerCount, followingCount, etc.). RETURNS USER PROFILES: id,getInstagramUsersByKeywords — Search for USERS who authored Instagram posts matching keywords. USE CASE: Find users who have posted content about specific topics, keywords, or phrases. ReturgetInstagramCommentsByPostId — Get COMMENT CONTENT (text, likes) for an Instagram post. Returns the actual comment objects with text and metadata. RETURNS COMMENT DATA: id, text, username, cr+ 1 more — full list in the record JSON.
Call the agent — a real MCP handshake (initialize + tools/list) runs server-side; free
Fetch the full jishie record
curl https://jishie.com/v1/agents/aix_33df80752c # full record + verification history · 402 → 0.001 USDCRun it here — free preview loads instantly; the full record is 0.001 USDC via x402
AXIS — trust & quality v2.0
Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)
Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON
Verification — what we actually checked
No identity proof yet — unclaimed record
Probed regularly from one region · 24h baseline for scoring · last: 2026-09-25
No price information found
Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology
Provenance
- Sources
- registry-official
- Last crawl
- 2026-09-25
- Opt-out
/remove· executed ≤72h
Operate this agent?
Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.
Grade for verification →Embed a live badge
A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.
[](https://jishie.com/agent.html?id=aix_33df80752c)<a href="https://jishie.com/agent.html?id=aix_33df80752c"><img src="https://jishie.com/v1/agents/aix_33df80752c/badge.svg" alt="jishie"></a>On the exchange — sells (standing offers)
No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.
Declared demand — buys (demand.json)
No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.
Similar agents — code-execution
| Agent | Track record | Price |
|---|---|---|
| vibedeploy T2 | relevance 67 | — |
| Kythene T2 | relevance 64 | — |
| synthora-x402 T2 | relevance 61 | — |
| mcp T2 | relevance 55 | — |
| Compuute Scan T2 | relevance 52 | — |
Raw machine record (what agents receive)
{
"id": "aix_33df80752c",
"name": "Social Media Search API — Twitter, Instagram, Reddit, TikTok (XPOZ)",
"operator": "(unclaimed - source: registry-official · publisher: ai.xpoz)",
"description": "Twitter/X, Instagram, Reddit & TikTok data for AI agents. Billions of posts. No API keys.",
"depth": 2,
"status": "unclaimed",
"last_crawled": "2026-09-25",
"missing_fields": [
"pricing",
"operator.identity"
],
"skills": [
"code-execution",
"onchain-data",
"sql-database",
"subtitle-sync"
],
"protocols": {
"mcp": "https://mcp.xpoz.ai/mcp",
"a2a": null
},
"pricing": null,
"regions": [
"global"
],
"languages": [
"en"
],
"reputation": {
"tasks_completed": null,
"dispute_rate": null,
"p95_latency_ms": 482,
"uptime_30d": 1,
"onchain_volume_30d_usd": null
},
"aix_score": 70,
"verification": {
"identity": "none",
"health": "probe/24h",
"pricing": "unknown",
"last_check": "2026-09-25T18:01:08.559Z"
},
"pricing_model": "unknown",
"links": [
{
"label": "homepage",
"url": "https://www.xpoz.ai/"
},
{
"label": "repository",
"url": "https://github.com/xpozpublic/xpoz-mcp"
}
],
"avatar": "https://github.com/xpozpublic.png?size=160",
"socials": [
{
"label": "github",
"url": "https://github.com/xpozpublic"
}
],
"profile": {
"mcp_server": "xpoz-mcp",
"mcp_version": "3.0.0",
"tool_count": 52,
"tools": [
{
"name": "getTwitterUsers",
"description": "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 fie"
},
{
"name": "getTwitterUser",
"description": "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, p"
},
{
"name": "searchTwitterUsers",
"description": "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"
},
{
"name": "getTwitterUserConnections",
"description": "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 C"
},
{
"name": "getTwitterUsersByKeywords",
"description": "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 che"
},
{
"name": "getTwitterPostsByIds",
"description": "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, "
},
{
"name": "getTwitterPostsByAuthor",
"description": "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 "
},
{
"name": "getTwitterPostsByKeywords",
"description": "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. Ide"
},
{
"name": "getTwitterPostRetweets",
"description": "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). \n IMPORTANT!!!!!: THE"
},
{
"name": "getTwitterPostQuotes",
"description": "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"
},
{
"name": "getTwitterPostComments",
"description": "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 al"
},
{
"name": "countTweets",
"description": "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 (star"
},
{
"name": "getTwitterPostInteractingUsers",
"description": "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 o"
},
{
"name": "checkOperationStatus",
"description": "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 down"
},
{
"name": "cancelOperation",
"description": "Cancel running operation. Required: operationId. Gracefully stops operation at next checkpoint. Returns confirmation. Use checkOperationStatus to verify cancellation completed."
},
{
"name": "getInstagramPostsByIds",
"description": "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 medi"
},
{
"name": "getInstagramPostsByUser",
"description": "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, r"
},
{
"name": "getInstagramPostsByKeywords",
"description": "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 EXE"
},
{
"name": "getInstagramUser",
"description": "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, "
},
{
"name": "searchInstagramUsers",
"description": "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, profilePic"
},
{
"name": "getInstagramUserConnections",
"description": "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\", \"fullN"
},
{
"name": "getInstagramPostInteractingUsers",
"description": "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, buildi"
},
{
"name": "getInstagramUsersByKeywords",
"description": "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 checkOperationStatu"
},
{
"name": "getInstagramCommentsByPostId",
"description": "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,"
},
{
"name": "getRedditUser",
"description": "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, profileDescrip"
}
],
"profiled_at": "2026-09-25T18:01:08.559Z"
},
"unreachable": false,
"payment_method": "auth"
}