{"name":"x-posts-lookup","id":"sfoln/x-posts-lookup","title":"Tweet Lookup API – Tweets by ID or URL","description":"Look up X (Twitter) posts by ID or URL in bulk: full text, author, date, likes, reposts, replies, quotes, views, media, hashtags and reply or quote links, one record per post. Deleted or protected posts are flagged as not_found. $0.70 per 1,000 posts.","version":"0.1","status":"ready","family":{"id":"social-media-data","name":"Social media data","description":"Profiles, posts, comments, followers and account audits from X, Instagram, TikTok, YouTube, Reddit, Threads, LinkedIn, Facebook, Bluesky, Telegram, Hacker News and Substack.","actors":31},"categories":["SOCIAL_MEDIA","NEWS","LEAD_GENERATION"],"availability":"on_request","seoTitle":"Tweet Lookup API – $0.70 per 1,000 tweets","seoDescription":"Tweet lookup API: fetch X (Twitter) posts by ID or URL in bulk with text, author, likes, views and media as JSON; deleted posts flagged. $0.70 per 1,000.","summary":"Tweet Lookup API – Tweets by ID or URL fetches X (Twitter) posts by ID or URL in bulk and returns one normalized record per requested post: full text, author, timestamp, likes, reposts, replies, quotes, views, bookmarks, media (incl. best MP4), hashtags, mentions, links, and reply / quote / repost relations. Ideal for refreshing engagement on a list of posts, enriching links collected elsewhere, verifying whether posts still exist, and feeding LLM pipelines.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":10,"events":[{"name":"x-post-looked-up","title":"X post","description":"Charged once per requested post id or URL for which the post was returned, or for which the upstream confirmed it does not exist (deleted, protected or never existed).","priceUsd":0.0007}]},"input":{"description":"Paste post (tweet) ids or x.com / twitter.com status URLs. Each requested post produces exactly one dataset record.","required":["posts"],"fields":[{"name":"posts","title":"Post ids or URLs","type":"array","required":true,"description":"Numeric post ids or status URLs such as https://x.com/jack/status/20, one per line. Duplicates are removed. Accounts on the Apify free plan can process up to 10 posts per run.","prefill":["https://x.com/jack/status/20"],"editor":"stringList"},{"name":"maxItems","title":"Max posts","type":"integer","required":false,"description":"Safety cap on the number of posts looked up in this run.","default":10000,"minimum":1,"maximum":100000},{"name":"includeRaw","title":"Include raw upstream response","type":"boolean","required":false,"description":"Attach the unmodified TwitterAPI.io payload to each record under `raw` (larger output).","default":false}]},"exampleInput":{"posts":["https://x.com/jack/status/20"]},"outputFields":[{"name":"input","type":"string | object","title":"Input","description":"The input item this record corresponds to."},{"name":"status","type":"string","title":"Status","description":"ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan","example":"ok"},{"name":"charged","type":"boolean","title":"Charged","description":"Whether this record incurred a pay-per-event charge."},{"name":"chargedEvent","type":"string","title":"Charged event","description":"Pay-per-event event charged for this record."},{"name":"source","type":"string","title":"Source","description":"Upstream data source (twitterapi = TwitterAPI.io)."},{"name":"fetchedAt","type":"string","title":"Fetched at","description":"ISO timestamp."},{"name":"error","type":"object","title":"Error","description":"code / message when status is not ok."},{"name":"warnings","type":"array","title":"Warnings","description":"Non-fatal notes (e.g. stopped early)."},{"name":"tweetId","type":"string","title":"Requested id","description":"Post id extracted from the input."},{"name":"found","type":"boolean","title":"Found","description":"true when the post was returned."},{"name":"id","type":"string | null","title":"Post id","description":"Numeric post (tweet) id as a string.","example":"20"},{"name":"url","type":"string | null","title":"URL","description":"Link to the post on x.com."},{"name":"text","type":"string | null","title":"Text","description":"Full post text."},{"name":"createdAt","type":"string | null","title":"Created at","description":"ISO 8601 creation time."},{"name":"lang","type":"string | null","title":"Language","description":"Language code detected by X."},{"name":"authorHandle","type":"string | null","title":"Author handle","description":"Author's @handle without @."},{"name":"authorId","type":"string | null","title":"Author id","description":"Author's numeric user id."},{"name":"authorName","type":"string | null","title":"Author name","description":"Author display name."},{"name":"authorFollowers","type":"integer | null","title":"Author followers","description":"Author follower count at fetch time."},{"name":"authorIsBlueVerified","type":"boolean | null","title":"Author blue verified","description":"Author has a blue check."},{"name":"likes","type":"integer | null","title":"Likes","description":"Like count."},{"name":"retweets","type":"integer | null","title":"Reposts","description":"Repost (retweet) count."},{"name":"replies","type":"integer | null","title":"Replies","description":"Reply count."},{"name":"quotes","type":"integer | null","title":"Quotes","description":"Quote count."},{"name":"views","type":"integer | null","title":"Views","description":"View count (null when X does not report it)."},{"name":"bookmarks","type":"integer | null","title":"Bookmarks","description":"Bookmark count."},{"name":"isReply","type":"boolean","title":"Is reply","description":"Post is a reply."},{"name":"inReplyToId","type":"string | null","title":"In reply to post","description":"Parent post id."},{"name":"inReplyToUserId","type":"string | null","title":"In reply to user id","description":"Parent author id."},{"name":"inReplyToHandle","type":"string | null","title":"In reply to handle","description":"Parent author handle."},{"name":"conversationId","type":"string | null","title":"Conversation id","description":"Root post id of the thread."},{"name":"isRetweet","type":"boolean","title":"Is repost","description":"Post is a repost (retweet)."},{"name":"retweetedTweetId","type":"string | null","title":"Reposted post id","description":"Original post id for reposts."},{"name":"isQuote","type":"boolean","title":"Is quote","description":"Post quotes another post."},{"name":"quotedTweetId","type":"string | null","title":"Quoted post id","description":"Quoted post id."},{"name":"hashtags","type":"array","title":"Hashtags","description":"Hashtags without #."},{"name":"mentions","type":"array","title":"Mentions","description":"Mentioned handles without @."},{"name":"urls","type":"array","title":"Links","description":"Expanded links in the post."},{"name":"media","type":"array","title":"Media","description":"Photos / videos: type, url, videoUrl (best MP4), expandedUrl."},{"name":"mediaCount","type":"integer","title":"Media count","description":"Number of attached media items."},{"name":"postedVia","type":"string | null","title":"Posted via","description":"Client app used to post (e.g. Twitter for iPhone)."}],"outputExample":{"input":"https://x.com/jack/status/20","tweetId":"20","found":true,"id":"20","url":"https://x.com/jack/status/20","text":"just setting up my twttr","createdAt":"2006-03-21T20:50:14.000Z","lang":"en","postedVia":"Twitter Web Client","authorHandle":"jack","authorId":"12","authorName":"jack","authorFollowers":6500000,"authorIsBlueVerified":false,"likes":300000,"retweets":120000,"replies":15000,"quotes":9000,"views":null,"bookmarks":2000,"isReply":false,"inReplyToId":null,"inReplyToUserId":null,"inReplyToHandle":null,"conversationId":"20","isRetweet":false,"retweetedTweetId":null,"isQuote":false,"quotedTweetId":null,"hashtags":[],"mentions":[],"urls":[],"media":[],"mediaCount":0,"status":"ok","charged":true,"chargedEvent":"x-post-looked-up","source":"twitterapi","fetchedAt":"2026-10-14T10:00:00.000Z"},"faq":[],"mcpExamplePrompt":"Fetch the post https://x.com/jack/status/20 and report its text, author, likes, reposts and views.","related":["x-post-context","x-post-replies","x-user-mentions","x-profile-lookup"],"urls":{"site":"https://www.sfoln.com/actors/x-posts-lookup/","siteJson":"https://www.sfoln.com/actors/x-posts-lookup.json","siteMarkdown":"https://www.sfoln.com/actors/x-posts-lookup.md","runSync":"https://api.apify.com/v2/actors/sfoln~x-posts-lookup/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~x-posts-lookup/runs","mcp":"https://mcp.apify.com?tools=sfoln/x-posts-lookup","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20Tweet%20Lookup%20API%20%E2%80%93%20Tweets%20by%20ID%20or%20URL%20(sfoln%2Fx-posts-lookup)&body=Please%20publish%20x-posts-lookup.%20What%20we%20plan%20to%20use%20it%20for%3A"},"publisher":{"name":"SFOLN LLC","apifyUsername":"sfoln","url":"https://www.sfoln.com","apifyProfile":"https://apify.com/sfoln","email":"contact@sfoln.com"},"generatedAt":"2026-10-22T04:28:58.477Z"}