Twitter Account Info
Collect public profile details, audience metrics, and verification signals for one or more Twitter accounts
Overview
Twitter and X profile pages mix identity, audience size, verification, and protection signals in a layout that is hard to compare across accounts. This app turns those public profiles into a consistent record set so research, partnership, and monitoring teams can work from the same identifiers, metrics, and timestamps.
The value is the joined profile snapshot: displayed name, username, account ID, public URL, follower and following figures, verification and protection flags, bio text, and collection time stay together for each submitted username. That makes it easier to qualify creators, compare audience scale, and keep a watch list current without reconstructing profiles by hand.
Data notes
The data comes from the public Twitter profile associated with each submitted username. One record is produced for each submitted username when the source returns a profile or a no-data marker. Duplicate submitted usernames are removed across collected pages. Audience counts, bio text, professional attributes, location, and timestamps retain the source text; a source value can be unavailable and appear empty. Follower count, Following count, Fast followers, Like count, Listed count, Media count, and Post count are kept as source text rather than normalized numbers. Can DM, Media tag, Protected account, Translator, Custom timelines, Graduated access, and Sensitive are also retained as source text, even when they look like yes/no flags. Has email, Verified, and YouTube linked are true/false values. Collected at and Joined at are preserved as supplied, without inferring a timezone. Private, suspended, and login-only accounts are outside the coverage.
What the results look like
Each record represents the public profile collected for one submitted Twitter username.
| Account name | Username | Follower count | Verified | Submitted account | No data |
|---|---|---|---|---|---|
| 💫Etoiles💫 | 000uTSIDER | 2 | No | 000uTSIDER | No |
| demo.account | Yes |
Additional values include Avatar URL, Profile URL, Account ID, Bio, Affiliate label, Business ID, Can DM, Media tag, Cover photo URL, Collected at, Entity type, Fast followers, Following count, Custom timelines, Graduated access, Profile entities, Has email, Protected account, Translator, YouTube linked, Joined at, Source keyword, Like count, Listed count, Location, Media count, Pinned tweets, Sensitive, Professional info, Interstitial type, Post count, and Translator type.
Use cases
- Qualify partnership targets by comparing Account name, Username, and Follower count across a watch list.
- Map public presence by lining up Profile URL, Bio, Location, and Joined at for accounts you already monitor.
- Separate empty outcomes from usable profiles by checking No data together with Submitted account before using Like count or Post count.
- Distinguish public versus restricted profiles by reading Protected account, Verified, and Sensitive together with Account name.
Scope and boundaries
Each run accepts 1 to 200 Twitter usernames and returns at most one public profile record per username when data is available.
- Good for
- When you need a current public profile snapshot for specific Twitter accounts
- When you need displayed audience size, verification, protection, and public profile signals in one record
- Do not use for
- When you need posts, comments, or search results rather than account-level profile information
- When you do not have a Twitter username to collect
Failure handling
Failure and retry behavior declared by the author. We recommend including it in your system prompt when integrating.
- 1If no profile data is returned, verify the username and confirm the account is still public
- 2Retry later after rate limiting, temporary unavailability, or a timeout
- 3When the submission outcome is unknown, avoid immediate repeated submissions that could create duplicate tasks
- 4If authentication fails, verify the API Key configured for the execution environment
Input
Parameters required to call this App, generated from the input.schema in manifest.json.
| Field | Business name | Type | Required | Default | Enum / Constraints | Example | Description |
|---|---|---|---|---|---|---|---|
| items | Twitter username list | array<object> | Yes | — | up to 200 items | [{"account":"000uTSIDER"}] | The Twitter usernames to collect. Submit 1 to 200 items; each item needs one username. |
Output
Field structure of a single record, generated from the output.schema in manifest.json.
| Field | Business name | Type | Example | Description |
|---|---|---|---|---|
| task_item | Submitted account | string | 000uTSIDER | The username submitted for this record |
| no_data | No data | boolean | false | Whether this submitted username returned no public profile |
| keyword | Source keyword | string | 000uTSIDER | The source keyword associated with the collected account |
| account_id | Account ID | string | 1652063959627841537 | The Twitter account identifier returned for the profile |
| account_name | Account name | string | 💫Etoiles💫 | The displayed Twitter account name |
| account_avatar_url | Avatar URL | string | https://pbs.twimg.com/profile_images/1718476282885808128/3IcN2Gim_normal.jpg | The public avatar image URL returned for the profile |
| account_home_url | Profile URL | string | https://x.com/000uTSIDER | The public Twitter profile URL |
| account_signature | Bio | string | she/her | The bio text displayed on the public profile |
| affiliates_highlighted_label | Affiliate label | string | {"label":null} | The affiliate highlight label returned for the profile, retained as source text |
| biz_id | Business ID | string | 000uTSIDER | The business identifier carried by the source profile record |
| can_dm | Can DM | string | false | Whether the profile allows direct messages, retained as source text |
| can_media_tag | Media tag | string | true | Whether the profile allows media tagging, retained as source text |
| cover_photo_url | Cover photo URL | string | — | The public cover photo URL returned for the profile |
| crawl_time | Collected at | string | 2026-08-27T14:07:55 | The source timestamp when the profile was collected |
| entity_type | Entity type | string | user | The entity type returned for the profile |
| fans_count | Follower count | string | 2 | The displayed follower count retained as source text |
| fast_followers_count | Fast followers | string | 0 | The fast follower count retained as source text |
| friends_count | Following count | string | 17 | The displayed following count retained as source text |
| has_custom_timelines | Custom timelines | string | false | Whether the profile has custom timelines, retained as source text |
| has_graduated_access | Graduated access | string | true | Whether the profile has graduated access, retained as source text |
| info | Profile entities | string | {"description":{"hashtags":null,"urls":null,"userMentions":null},"url":null} | The profile entity payload retained as source text |
| is_mail | Has email | boolean | false | Whether the public profile shows an email contact |
| is_protected | Protected account | string | false | Whether the account is marked protected, retained as source text |
| is_translator | Translator | string | false | Whether the profile is marked as a translator, retained as source text |
| is_verified | Verified | boolean | false | Whether the account is marked verified |
| is_youtube | YouTube linked | boolean | false | Whether the profile is marked as linked to YouTube |
| joined_date | Joined at | string | 2023-04-29T05:35:28 | The source timestamp when the account joined |
| likes_count | Like count | string | 7093 | The displayed like count retained as source text |
| listed_count | Listed count | string | 0 | The displayed listed count retained as source text |
| location | Location | string | — | The location text displayed on the profile |
| media_count | Media count | string | 5 | The displayed media count retained as source text |
| pinned_tweet_ids | Pinned tweets | string | — | The pinned post identifiers retained as source text |
| possibly_sensitive | Sensitive | string | false | Whether the profile is marked possibly sensitive, retained as source text |
| professional | Professional info | string | — | The professional profile attributes retained as source text |
| profile_interstitial_type | Interstitial type | string | — | The profile interstitial type returned by the source |
| publish_content_count | Post count | string | 202 | The displayed public post count retained as source text |
| translator_type_enum | Translator type | string | none | The translator type returned by the source |
| user_handle | Username | string | 000uTSIDER | The Twitter username returned for the profile |
Record schema
Output is returned record by record. detail.output.idFieldHint
{
"type": "object",
"properties": {
"task_item": {
"type": "string",
"title": "Submitted account",
"description": "The username submitted for this record",
"prefill": "000uTSIDER"
},
"no_data": {
"type": "boolean",
"title": "No data",
"description": "Whether this submitted username returned no public profile",
"prefill": false
},
"keyword": {
"type": "string",
"title": "Source keyword",
"description": "The source keyword associated with the collected account",
"prefill": "000uTSIDER"
},
"account_id": {
"type": "string",
"title": "Account ID",
"description": "The Twitter account identifier returned for the profile",
"prefill": "1652063959627841537"
},
"account_name": {
"type": "string",
"title": "Account name",
"description": "The displayed Twitter account name",
"prefill": "💫Etoiles💫"
},
"account_avatar_url": {
"type": "string",
"title": "Avatar URL",
"description": "The public avatar image URL returned for the profile",
"prefill": "https://pbs.twimg.com/profile_images/1718476282885808128/3IcN2Gim_normal.jpg"
},
"account_home_url": {
"type": "string",
"title": "Profile URL",
"description": "The public Twitter profile URL",
"prefill": "https://x.com/000uTSIDER"
},
"account_signature": {
"type": "string",
"title": "Bio",
"description": "The bio text displayed on the public profile",
"prefill": "she/her"
},
"affiliates_highlighted_label": {
"type": "string",
"title": "Affiliate label",
"description": "The affiliate highlight label returned for the profile, retained as source text",
"prefill": "{\"label\":null}"
},
"biz_id": {
"type": "string",
"title": "Business ID",
"description": "The business identifier carried by the source profile record",
"prefill": "000uTSIDER"
},
"can_dm": {
"type": "string",
"title": "Can DM",
"description": "Whether the profile allows direct messages, retained as source text",
"prefill": "false"
},
"can_media_tag": {
"type": "string",
"title": "Media tag",
"description": "Whether the profile allows media tagging, retained as source text",
"prefill": "true"
},
"cover_photo_url": {
"type": "string",
"title": "Cover photo URL",
"description": "The public cover photo URL returned for the profile"
},
"crawl_time": {
"type": "string",
"title": "Collected at",
"description": "The source timestamp when the profile was collected",
"prefill": "2026-08-27T14:07:55"
},
"entity_type": {
"type": "string",
"title": "Entity type",
"description": "The entity type returned for the profile",
"prefill": "user"
},
"fans_count": {
"type": "string",
"title": "Follower count",
"description": "The displayed follower count retained as source text",
"prefill": "2"
},
"fast_followers_count": {
"type": "string",
"title": "Fast followers",
"description": "The fast follower count retained as source text",
"prefill": "0"
},
"friends_count": {
"type": "string",
"title": "Following count",
"description": "The displayed following count retained as source text",
"prefill": "17"
},
"has_custom_timelines": {
"type": "string",
"title": "Custom timelines",
"description": "Whether the profile has custom timelines, retained as source text",
"prefill": "false"
},
"has_graduated_access": {
"type": "string",
"title": "Graduated access",
"description": "Whether the profile has graduated access, retained as source text",
"prefill": "true"
},
"info": {
"type": "string",
"title": "Profile entities",
"description": "The profile entity payload retained as source text",
"prefill": "{\"description\":{\"hashtags\":null,\"urls\":null,\"userMentions\":null},\"url\":null}"
},
"is_mail": {
"type": "boolean",
"title": "Has email",
"description": "Whether the public profile shows an email contact",
"prefill": false
},
"is_protected": {
"type": "string",
"title": "Protected account",
"description": "Whether the account is marked protected, retained as source text",
"prefill": "false"
},
"is_translator": {
"type": "string",
"title": "Translator",
"description": "Whether the profile is marked as a translator, retained as source text",
"prefill": "false"
},
"is_verified": {
"type": "boolean",
"title": "Verified",
"description": "Whether the account is marked verified",
"prefill": false
},
"is_youtube": {
"type": "boolean",
"title": "YouTube linked",
"description": "Whether the profile is marked as linked to YouTube",
"prefill": false
},
"joined_date": {
"type": "string",
"title": "Joined at",
"description": "The source timestamp when the account joined",
"prefill": "2023-04-29T05:35:28"
},
"likes_count": {
"type": "string",
"title": "Like count",
"description": "The displayed like count retained as source text",
"prefill": "7093"
},
"listed_count": {
"type": "string",
"title": "Listed count",
"description": "The displayed listed count retained as source text",
"prefill": "0"
},
"location": {
"type": "string",
"title": "Location",
"description": "The location text displayed on the profile"
},
"media_count": {
"type": "string",
"title": "Media count",
"description": "The displayed media count retained as source text",
"prefill": "5"
},
"pinned_tweet_ids": {
"type": "string",
"title": "Pinned tweets",
"description": "The pinned post identifiers retained as source text"
},
"possibly_sensitive": {
"type": "string",
"title": "Sensitive",
"description": "Whether the profile is marked possibly sensitive, retained as source text",
"prefill": "false"
},
"professional": {
"type": "string",
"title": "Professional info",
"description": "The professional profile attributes retained as source text"
},
"profile_interstitial_type": {
"type": "string",
"title": "Interstitial type",
"description": "The profile interstitial type returned by the source"
},
"publish_content_count": {
"type": "string",
"title": "Post count",
"description": "The displayed public post count retained as source text",
"prefill": "202"
},
"translator_type_enum": {
"type": "string",
"title": "Translator type",
"description": "The translator type returned by the source",
"prefill": "none"
},
"user_handle": {
"type": "string",
"title": "Username",
"description": "The Twitter username returned for the profile",
"prefill": "000uTSIDER"
}
},
"required": [],
"additionalProperties": false
}Integration
This App can be integrated via MCP, API, SDK, or file export. All channels share the same capabilities and pricing. Every request authenticates with the Authorization: Bearer header using an API key (long-lived, created in the Data Hub Console); MCP clients can also sign in with OAuth, no key required. More options such as CLI and Skill are on the way.
With the MCP (Model Context Protocol), you can call this App directly from AI clients like Claude and Cursor. Pick your client and auth mode, then copy the config below.
Client config
Replace the value after Bearer with your long-lived API key. Works in any client, CI, or headless environment.
{
"mcpServers": {
"hello_moto__twitter-account-info": {
"type": "http",
"url": "https://mcp-v2.octoparse.com?pin=hello_moto/twitter-account-info",
"headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
}
}
}Let AI set it up for you
Don't want to edit configs by hand? Copy the install prompt and paste it into any AI client. It will complete the setup its own way. (The prompt asks the AI to request your API key from you, so credentials never end up in chat history or shared configs.)
detail.access.mcp.composeHint
Pricing
Charged once per submitted run, regardless of how many records are returned.
Charged by the number of records successfully returned. Failed runs are not charged.
Multiple billing events accumulate independently. See each item for details. Failed runs are not charged.
View creditsTry it now
Fill in the parameters and run. Results come from a real call.