X Twitter Profile Lookup avatar

X Twitter Profile Lookup

Pricing

from $4.50 / 1,000 results

Go to Apify Store
X Twitter Profile Lookup

X Twitter Profile Lookup

Look up 1 to 1,000 public X usernames or profile URLs and export source-reported profile fields, counts, labels, links, imagery, and available pinned-post details, with explicit not-found rows.

Pricing

from $4.50 / 1,000 results

Rating

5.0

(2)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

2

Bookmarked

131

Total users

2

Monthly active users

6 days ago

Last modified

Share

Twitter Info Scraper converts a batch of public X usernames or profile URLs into reviewable Dataset rows. A successful lookup has 47 top-level fields; a username that X reports as missing produces a four-field not found row instead of disappearing from the batch.

  • Submit 1 to 1,000 usernames, @handles, or x.com/twitter.com profile URLs.
  • Receive source-reported profile text, counts, labels, links, imagery, and available pinned-post data.
  • Keep successful and not-found observations in the same auditable Dataset.
  • Treat every count, label, flag, URL, and post as a changing source snapshot—not independent verification.

Run Twitter Info Scraper or connect through the Apify API and MCP integration. Result rows, including not-found rows, are billable; review public-profile data and source rights before reuse.

Why Choose This API

This Actor is designed for repeatable public-profile lookup rather than visual browsing. Inputs are normalized from plain usernames, handles, and profile URLs, then processed in batches. The default Dataset preserves a row for a username when the source explicitly reports that no account was found, which makes reconciliation easier than silently dropping a requested identifier.

A successful row contains 47 stable top-level keys. They cover processing metadata, public account identifiers, display text, source-provided verification and label fields, privacy and sensitivity flags, follower and activity counters, professional-account values, profile imagery, expanded URLs, public birth-date visibility, withheld-country codes, recent posting-source labels, and the available pinned-post observation. The key pined intentionally keeps the runtime spelling for compatibility.

The contract is deliberately honest about source boundaries. X can omit profile fields, return empty arrays, hide a birth date, expose no pinned post, protect posts, or change counters between runs. A blue-check field reflects the current source signal; X explains that a blue check is associated with an eligible Premium subscription and does not use the former notable-and-authentic review. This Actor does not certify identity, authenticity, influence, ownership, safety, or commercial suitability.

Quick Start Guide

Enter a list under usernames. The runtime accepts up to 1,000 list entries and normalizes recognized X or Twitter profile URLs to their username component. Blank normalized entries are ignored, but the run stops if no usable username remains.

{
"usernames": [
"OpenAI",
"@GitHub",
"https://x.com/apify"
]
}

Click Start in the Actor console. When the run finishes, open the default Dataset and inspect status first. success indicates that the source returned a profile object; not found indicates that the source returned an empty user result. A successful Actor process does not guarantee that every requested account resolves, and transient X responses can still make an entire batch unavailable.

For production use, start with a small known list, verify both the row count and statuses, then scale. Repeated inputs can create repeated observations across batches, so deduplicate upstream if one row per unique username is required.

Input Parameters

FieldTypeRequiredAccepted rangeBehavior
usernamesarray of stringsYes1–1,000 entriesAccepts usernames, @handles, x.com URLs, and twitter.com URLs.

Normalization removes a leading @, extracts the first path component after a recognized domain, drops query strings and fragments, and lowercases the request key. The source may return its own capitalization in a successful row. Non-string elements fail validation. Entries that normalize to an empty string are skipped, and at least one usable value is required.

The limit applies to submitted list entries, not guaranteed successful profiles. Lookups are grouped into batches of ten and retried across available proxy routes. If a batch cannot be completed with all requested normalized names, that batch may produce no rows. No input requests tweet history, contact data, private posts, followers lists, or a full posting archive.

Output Data Schema

Successful records expose 47 top-level keys. The major groups are:

GroupRepresentative fieldsImportant interpretation
Processingstatus, processor, processed_atObservation metadata, not a source guarantee.
Identity textuser_id, user_name, display_name, description, locationPublic/source-visible profile values.
Labels and accessverified, verified_type, blue_verified, identity_verified, protected, sensitiveSource flags; no independent identity or safety check.
Countsfollowers_count, following_count, statuses_count, favourites_count, listed_count, media_countDynamic snapshots that can change immediately.
Professional fieldsaccount_type, account_category, creator_subscriptions, business_affiliatesOptional raw profile values, not verified business facts.
Links and mediaavatar_url, banner_url, profile_urls, description_urls, tipjar_accountsSource-exposed URLs and handles; validate before use.
Timeline contextuser_devices, pinned_tweet_ids, pinedRecent posting-source labels and one available pinned-post observation.

The pined object can contain 18 defined keys: ID, constructed URL, creation time, text, source, language, hashtags, URLs, mentions, variable media entities, conversation ID, quote flag, and six engagement counters. It is {} when the current timeline response has no pin entry. extended_entities remains source-shaped because media types have different nested structures.

{
"status": "success",
"processor": "https://apify.com/agentx/twitter-info-scraper",
"processed_at": "2026-07-23T18:00:00+00:00",
"user_id": "783214",
"user_name": "OpenAI",
"display_name": "OpenAI",
"description": "Source-visible profile biography",
"location": "",
"blue_verified": true,
"identity_verified": false,
"protected": false,
"followers_count": 0,
"following_count": 0,
"statuses_count": 0,
"profile_urls": [],
"description_urls": [],
"user_devices": ["X Web App"],
"blocked_countries": [],
"pined": {}
}

The example is abbreviated and uses illustrative dynamic values. A not found row contains only status, processor, processed_at, and the normalized user_name; consumers must not assume the other 43 keys are present on that branch.

Integration Examples

Use the Actor ID agentx/twitter-info-scraper with the API, an Apify client, a scheduler, webhook automation, or an MCP-enabled agent. The same input object is used on every surface. Keep the API token in a secret manager and never embed it in public code.

{
"method": "POST",
"url": "https://api.apify.com/v2/acts/agentx~twitter-info-scraper/runs?waitForFinish=120",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN",
"Content-Type": "application/json"
},
"body": {
"usernames": ["OpenAI", "@GitHub", "https://x.com/apify"]
}
}

After the run reaches a terminal state, read defaultDatasetId and request its items. For robust pipelines, retain the input value beside the normalized user_name, branch on status, and record processed_at. Retry transient batch failures separately; do not retry a stable not-found observation indefinitely without a business reason.

MCP clients should inspect the current input schema before calling the Actor. Some MCP plans may restrict execution of particular public Actors even when details and datasets remain readable. In that case, use the authenticated REST API or an Apify client and keep MCP for independent run and Dataset readback.

Pricing & Cost Calculator

The local pay-per-event configuration has three event families. Actor Usage is $0.00001 per metered usage event, Actor Start is $0.01 and is charged according to memory with a minimum of one event, and Result is charged once per Dataset row. Both 47-field success rows and four-field not-found rows are results.

Plan tierResult price per row
Free$0.00500
Bronze$0.00483
Silver$0.00467
Gold$0.00450
Platinum$0.00450
Diamond$0.00450

At the Free result rate, one written row is $0.00500; 100 rows are $0.50000; and 1,000 rows are $5.00000. Add the Start event and metered Actor Usage. A request for 100 usernames that writes 90 success rows plus 10 not-found rows produces 100 Result events, not 90. A batch that writes nothing produces no Result event, although start and usage charges may still apply.

Treat these calculations as planning examples. The active price shown by Apify at run time controls billing, and platform-managed publication can temporarily show an older pricing snapshot after a code build. Use maxTotalChargeUsd as a financial guard, but do not treat it as a substitute for input-size controls or post-run event review.

Use Cases & Applications

Profile enrichment teams can attach public X observations to an existing, lawfully obtained account list. The row provides stable field names for current biography text, URLs, source labels, and counters while retaining the timestamp needed to identify the observation as a snapshot.

Analysts can run the same usernames on a schedule and calculate changes outside the Actor. Store each run rather than overwriting historical rows, compare like-for-like statuses, and avoid interpreting follower growth as causation, authenticity, or campaign effectiveness without additional evidence.

Editorial and research workflows can triage public accounts by location text, professional category, protected status, or visible label. Those values are leads for human review, not adjudications. X notes that profile labels can be platform-applied or user-triggered, and protected posts have different visibility from public posts.

Automation builders can reconcile mixed input formats, separate unresolved usernames, and join successful rows with datasets from other public sources. Do not use the result as a background check, identity proof, credit signal, employment decision, or automated eligibility decision.

FAQ

Does this download every post from an account? No. It performs profile lookup and requests recent timeline context to derive posting-source labels and one available pinned-post object. It does not return a post archive.

Does blue_verified prove identity or authenticity? No. It mirrors a source flag. X describes a blue check as tied to an eligible Premium subscription; the former notable-and-authentic review is not implied. identity_verified is also a source field, not an AgentX verification service.

Why does a result have only four fields? When X returns an empty user result, the Actor writes a not-found row with status, processor, timestamp, and normalized username. This is intentional and billable.

Why is the pinned-post key spelled pined? That spelling is part of the current runtime output contract. Changing it would break existing consumers, so documentation and schema preserve it.

Are counters historical totals? They are current source-reported snapshots. Meanings, availability, and values can change, and repeated runs can differ.

Can protected accounts be scraped fully? No. Public profile information may still be visible, but protected posts are limited by X visibility rules. Expect missing timeline or pinned-post data.

Is one row guaranteed per submitted entry? No. A recognized not-found response becomes a row, but a transient or incomplete batch can exhaust retries without writing that batch.

Trust & Certifications

Trust comes from a narrow, inspectable contract: one required input, explicit normalization, stable success keys, an explicit sparse not-found branch, observation timestamps, and event counts that can be reconciled with Dataset rows. The schema names nullable and optional source values rather than filling gaps with inferred facts.

There is no claim that AgentX, this Actor, or a Dataset row is an identity-verification, brand-safety, fraud-detection, KYC, certification, or official X service. Labels and checkmarks retain the context described in X profile-label guidance. Important decisions should return to the live profile and qualified human review.

Use the Actor only for lawful purposes and public data you are entitled to process. Follow X terms, Apify terms, privacy and data-protection requirements, contractual duties, and rules that apply to your jurisdiction and use case. Minimize inputs, define a retention period, restrict access, and honor deletion or correction obligations where applicable.

Public does not mean unrestricted. X says common profile fields such as biography, location, website, and picture are generally public, while birth-date visibility is configurable. Review profile visibility and public versus protected posts before designing downstream handling.

Do not infer sensitive traits, deanonymize people, harass users, evade access controls, or republish personal data without a valid basis. Media URLs, biographies, names, and posts may carry intellectual-property, privacy, publicity, or safety considerations. This documentation is operational guidance, not legal advice.

Choose tools by the source and entity you actually need. Outputs from different platforms should be joined with explicit provenance and observation time rather than treated as a single verified identity graph.

Support & Community

For reproducible support, provide the Actor run ID, UTC time, a redacted input shape, expected row count, actual status mix, and whether the problem affects profile lookup, timeline context, Dataset writing, or billing events. Never post API tokens or private identifiers in a public channel.

Use the AgentX support channel for product questions. For platform execution, storage, API, or billing behavior, consult the Apify Actor documentation. Last updated: July 23, 2026.