X Search Users API
Scrape X Search Users data with one API call. Searches X (Twitter) for user accounts matching a name, handle, or keyword. Each match includes the username, display name, bio, avatar, follower and following counts, tweet count, location, verification status, join date, and whether the account is private. Matching covers handle and display-name tokens with no spelling correction, so a misspelled handle surfaces lookalike and parody accounts rather than the real one; verify the returned handle before relying on it. Page size is set by the source, typically around 20 accounts. To go deeper, send `pagination.next_cursor` back as `cursor` and repeat until `pagination.has_more` is false; each page costs 1 credit.
Last updated October 2026Maintained by the SocialCrawl team
Returns X (Twitter) accounts matching a name, handle or keyword, with handle, display name, bio, avatar, follower, following and tweet counts, location, verification, join date, and a private flag.
Use it to resolve a handle you half know before calling profile or user/tweets. There is no spelling correction, so verify the returned handle. About 20 accounts a page, and the cursor pages deeper.
Searching 68 platforms in parallel
What can you do with the Search Users API?
The Search Users endpoint gives you structured X data with computed fields in a single request. No scraping infrastructure to build or maintain.
Example Request
curl -H "x-api-key: YOUR_API_KEY" \
"https://www.socialcrawl.dev/v1/twitter/search/users?query=news24"import requests
response = requests.get(
"https://www.socialcrawl.dev/v1/twitter/search/users",
params={
'query': 'news24',
},
headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()const response = await fetch(
"https://www.socialcrawl.dev/v1/twitter/search/users?query=news24",
{
headers: { "x-api-key": "YOUR_API_KEY" },
},
);
const data = await response.json();Parameters
| Parameter | Required | Description |
|---|---|---|
| query | Yes | Name, handle, or keyword to search accounts for |
| cursor | No | Cursor from the previous response's pagination.next_cursor to fetch the next page |
What does the X Search Users API return?
Every response follows one unified schema. Here is a real, unmodified response body, so you can see the exact fields you get back before spending a credit.
Example response
{
"success": true,
"platform": "twitter",
"endpoint": "/v1/twitter/search/users",
"data": {
"items": [
{
"author": {
"id": "user_2f6cc3",
"username": "user_50ed6b",
"display_name": "user_3cc1f8",
"avatar_url": "https://example.com/avatars/user_bd6b81.png",
"bio": "Sample comment text (redacted).",
"verified": true,
"followers": 6639716,
"following": 742,
"posts_count": 500493,
"likes_count": null,
"url": "https://example.com/user_774b53",
"location": null,
"private": false,
"joined_at": "user_6fe67b",
"ext": {
"cover_url": "https://example.com/user_e6739c",
"bio_link": "https://example.com/user_419a50"
}
}
},
{
"author": {
"id": "user_1d621b",
"username": "user_736657",
"display_name": "user_50ed6b",
"avatar_url": "https://example.com/avatars/user_4cc1fd.png",
"bio": "Sample comment text (redacted). Sample comment text (redacted). Sample comment text (redacted). Sample comment text (redacted).",
"verified": true,
"followers": 2035823,
"following": 214,
"posts_count": 693435,
"likes_count": null,
"url": "https://example.com/user_71415e",
"location": null,
"private": false,
"joined_at": "user_d2c379",
"ext": {
"cover_url": "https://example.com/user_9ac64c",
"bio_link": "https://example.com/user_c8bf43"
}
}
}
],
"total": null,
"dropped": 0
},
"credits_used": 1,
"request_id": "req_example000000",
"cached": false,
"pagination": {
"next_cursor": null,
"has_more": false,
"page_size": 20
},
"credits_remaining": 9999,
"source": "captured",
"captured_at": "2026-10-02T07:31:21.077Z",
"redacted": true
}Live sample illustrating the unified response shape. Field values reflect the record you query.
How does the X Search Users API work?
Send a GET request with your API key and get back clean, structured JSON in our unified schema. Supported computed fields are populated when the source provides the required inputs.
Method
GET
Response
JSON
How do you scrape social media data in seconds?
The fastest social media scraping API for developers. Scrape profiles, posts, comments, and analytics from 68 platforms covering 10B+ monthly active users.
One schema, every platform
Query 68 platforms with identical response structures. Write your integration once.
Computed fields, not just scraped
When an endpoint supports these metrics and the source provides the required inputs, the normalized record includes engagement_rate, estimated_reach, content_category, and language. Ready to use.
See your data before you code
Visual Data Explorer. Paste any URL, get rich result cards, sortable tables, CSV export.
import requests
response = requests.get(
'https://www.socialcrawl.dev/v1/tiktok/profile',
params={'handle': 'charlidamelio'},
headers={'x-api-key': 'sc_YOUR_API_KEY'}
)
data = response.json(){
"success": true,
"platform": "tiktok",
"data": {
"author": {
"username": "charlidamelio",
"followers": 152400000
},
"engagement": {
"likes": 12400000000,
"engagement_rate": 0.087
},
"metadata": {
"language": "en",
"content_category": "lifestyle"
}
}
}Ready to scrape X Search Users data?
Get your API key and start pulling X data in under 60 seconds.
