{"name":"x-profile-lookup","id":"sfoln/x-profile-lookup","title":"Twitter Profile Scraper (X)","description":"Scrape X (Twitter) profiles by handle, URL or user ID: followers, following, post count, bio, website, location, verification, join date and pinned posts, one JSON record per account. Suspended accounts are flagged. $1 per 1,000 profiles; invalid handles are free.","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","LEAD_GENERATION","AUTOMATION"],"availability":"on_request","seoTitle":"Twitter Profile Scraper API – $1 per 1,000 profiles","seoDescription":"Twitter (X) profile scraper API: followers, following, posts, bio, website and verification of any account by handle or ID as JSON. $1 per 1,000 profiles.","summary":"Twitter Profile Scraper (X) looks up X (Twitter) accounts by handle, profile URL or numeric user ID and returns one normalized profile record per account: follower and following counts, total posts, bio with expanded links, website, location, blue-check and verification type, join date, avatar and banner, pinned posts and automation labels. Built for influencer vetting, CRM enrichment, audience research and AI agents that need a quick, structured answer about an account.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":10,"events":[{"name":"x-profile-looked-up","title":"X profile","description":"Charged once per X (Twitter) handle or user id for which a profile was returned, or for which the upstream confirmed the account does not exist or is suspended/unavailable.","priceUsd":0.001}]},"input":{"description":"Paste X (Twitter) handles or profile URLs, and/or numeric user ids. Each account produces one dataset record with a normalized profile and a `status` field.","required":[],"fields":[{"name":"handles","title":"Handles or profile URLs","type":"array","required":false,"description":"X handles (with or without @) or profile URLs such as https://x.com/nasa, one per line. Duplicates are removed. Accounts on the Apify free plan can process up to 10 profiles per run (handles and user ids together).","prefill":["apify","https://x.com/NASA"],"editor":"stringList"},{"name":"userIds","title":"Numeric user ids","type":"array","required":false,"description":"Optional numeric X user ids (e.g. 11348282), one per line. Looked up in addition to the handles.","editor":"stringList"},{"name":"maxItems","title":"Max profiles","type":"integer","required":false,"description":"Safety cap on the number of profiles looked up in this run.","default":5000,"minimum":1,"maximum":100000},{"name":"concurrency","title":"Concurrency","type":"integer","required":false,"description":"Parallel upstream lookups (1–5).","default":3,"minimum":1,"maximum":5},{"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":{"handles":["apify","https://x.com/NASA"]},"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":"found","type":"boolean","title":"Found","description":"true when a live profile was returned."},{"name":"handle","type":"string | null","title":"Handle","description":"@handle without @.","example":"NASA"},{"name":"userId","type":"string | null","title":"User id","description":"Numeric user id."},{"name":"name","type":"string | null","title":"Name","description":"Display name."},{"name":"bio","type":"string | null","title":"Bio","description":"Profile description with t.co links expanded."},{"name":"location","type":"string | null","title":"Location","description":"Free-text location."},{"name":"url","type":"string | null","title":"Website","description":"Website link from the profile (expanded)."},{"name":"profileUrl","type":"string | null","title":"Profile URL","description":"https://x.com/<handle>"},{"name":"followers","type":"integer | null","title":"Followers","description":"Follower count."},{"name":"following","type":"integer | null","title":"Following","description":"Following count."},{"name":"tweets","type":"integer | null","title":"Posts","description":"Total posts incl. replies and reposts (statusesCount)."},{"name":"likes","type":"integer | null","title":"Likes given","description":"Posts this account liked (favouritesCount)."},{"name":"mediaCount","type":"integer | null","title":"Media","description":"Media posts count."},{"name":"isBlueVerified","type":"boolean | null","title":"Blue check","description":"Has a blue check (X Premium)."},{"name":"verifiedType","type":"string | null","title":"Verified type","description":"e.g. Business, Government; null for none."},{"name":"profileImageUrl","type":"string | null","title":"Avatar URL","description":"Profile picture URL."},{"name":"coverImageUrl","type":"string | null","title":"Banner URL","description":"Header image URL."},{"name":"createdAt","type":"string | null","title":"Joined","description":"Account creation time (ISO 8601)."},{"name":"isAutomated","type":"boolean | null","title":"Automated","description":"Labelled as an automated account."},{"name":"automatedBy","type":"string | null","title":"Automated by","description":"Operator handle for automated accounts."},{"name":"canDm","type":"boolean | null","title":"Open DMs","description":"Accepts direct messages from anyone."},{"name":"possiblySensitive","type":"boolean | null","title":"Sensitive","description":"Profile marked possibly sensitive."},{"name":"withheldInCountries","type":"array","title":"Withheld in","description":"Country codes where the account is withheld."},{"name":"pinnedTweetIds","type":"array","title":"Pinned post ids","description":"Ids of pinned posts."},{"name":"unavailable","type":"boolean","title":"Unavailable","description":"Account suspended / deactivated / otherwise unavailable."},{"name":"unavailableReason","type":"string | null","title":"Unavailable reason","description":"e.g. suspended."},{"name":"unavailableMessage","type":"string | null","title":"Unavailable message","description":"Message shown by X."}],"outputExample":{"input":"NASA","found":true,"handle":"NASA","userId":"11348282","name":"NASA","bio":"There's space for everybody. ✨","location":"Pale Blue Dot","url":"https://www.nasa.gov/","profileUrl":"https://x.com/NASA","followers":89123456,"following":178,"tweets":72015,"likes":16432,"mediaCount":28761,"isBlueVerified":true,"verifiedType":"Government","profileImageUrl":"https://pbs.twimg.com/profile_images/…_normal.jpg","coverImageUrl":"https://pbs.twimg.com/profile_banners/11348282/1696976373","createdAt":"2007-12-19T20:20:32.000Z","isAutomated":false,"automatedBy":null,"canDm":false,"possiblySensitive":false,"withheldInCountries":[],"pinnedTweetIds":["1843000000000000000"],"unavailable":false,"unavailableReason":null,"unavailableMessage":null,"status":"ok","charged":true,"chargedEvent":"x-profile-looked-up","source":"twitterapi","fetchedAt":"2026-10-14T10:00:00.000Z"},"faq":[],"mcpExamplePrompt":"Look up the X profiles @apify and @NASA and compare their followers, post counts, verification and join dates.","related":["x-account-overview","x-followers","x-following"],"urls":{"site":"https://www.sfoln.com/actors/x-profile-lookup/","siteJson":"https://www.sfoln.com/actors/x-profile-lookup.json","siteMarkdown":"https://www.sfoln.com/actors/x-profile-lookup.md","runSync":"https://api.apify.com/v2/actors/sfoln~x-profile-lookup/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~x-profile-lookup/runs","mcp":"https://mcp.apify.com?tools=sfoln/x-profile-lookup","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20Twitter%20Profile%20Scraper%20(X)%20(sfoln%2Fx-profile-lookup)&body=Please%20publish%20x-profile-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"}