Datasets API endpoint
Returns one X user from the dataset by `username`, with or without a leading @. The record has name, bio, location, external URL, avatar and banner, followers, following, posts, likes, listed count, blue-verified flag and verified type. An unknown username returns 404; no live scrape runs.
/datasets/x-users/items/{username}Dataset id enum:
x-usersPath parameters:
username: required X username, with or without a leading @, max 128 characters.Response behavior:
404 when the username is not present in the stored dataset.| Field | In the sample | Value in the sample |
|---|---|---|
| username | Has a value | |
| id | Has a value | |
| name | Has a value | |
| bio | Has a value | |
| location_raw | Has a value | |
| external_url | Has a value | gatesnot.es |
| avatar_url | Has a value | pbs.twimg.com |
| banner_url | Has a value | pbs.twimg.com |
| is_blue_verified | Has a value | true |
| has_bio | Has a value | true |
| has_external_url | Has a value | true |
| followers | Has a value | 64,723,215 |
| following | Has a value | 571 |
| posts | Has a value | 4,517 |
| follower_following_ratio | Has a value | 113,350.64 |
| created_at | Has a value | 2009-06-24 |
| source_tier | Has a value | |
| crawled_at | Has a value | 2026-08-16 |
| schema_version | Has a value | |
| has_email | Has a value | false |
| has_bio_url | Has a value | false |
| is_default_profile_image | Has a value | false |
| listed | Has a value | 0 |
| media | Has a value | 0 |
| likes | Has a value | 0 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| username (path) | string | Yes | X username, with or without a leading @, max 128 characters | elonmusk | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/x-users/items/elonmusk" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"username": "octodev",
"id": "1634026666518519808",
"name": "Octo Dev",
"bio": "Building things in public",
"location_raw": "Berlin, Germany",
"external_url": "https://octo.dev",
"avatar_url": "https://pbs.twimg.com/profile_images/example_normal.jpg",
"banner_url": "https://pbs.twimg.com/profile_banners/example/banner",
"is_blue_verified": true,
"has_bio": true,
"has_external_url": true,
"followers": 12000,
"following": 800,
"posts": 3400,
"follower_following_ratio": 15,
"created_at": "2020-01-02T03:04:05Z",
"source_tier": "github-users",
"crawled_at": "2026-07-14T09:53:36Z",
"schema_version": 1
}
}Request schema
No body schema
Response schema
#/definitions/datasets.xUserResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | es.XUserRecord | No | ||||
| data.avatar_url | string | No | ||||
| data.banner_url | string | No | ||||
| data.bio | string | No | ||||
| data.bio_url_host | array | No | ||||
| data.bio_urls | array | No | BioURLs are links written in the bio text, expanded from t.co. Distinct from ExternalURL (the single profile-header link). | |||
| data.crawled_at | string | No | ||||
| data.created_at | string | No | ||||
| data.email | string | No | Email is an address the account self-published in its own bio. Extracted verbatim, never inferred or de-obfuscated. HasEmail is the faceting flag (an exists query on a keyword is fine, but a bool keeps parity with the other has_* fields and is cheaper to aggregate). | |||
| data.external_url | string | No | ||||
| data.follower_following_ratio | number | No | ||||
| data.followers | integer | No | ||||
| data.following | integer | No | ||||
| data.has_bio | boolean | No | ||||
| data.has_bio_url | boolean | No | ||||
| data.has_email | boolean | No | ||||
| data.has_external_url | boolean | No | ||||
| data.id | string | No | ||||
| data.is_blue_verified | boolean | No | ||||
| data.is_default_profile_image | boolean | No | IsDefaultProfileImage marks never-customized shells. | |||
| data.likes | integer | No | ||||
| data.listed | integer | No | Listed is how many curated lists include the account -- the best authority proxy available. Media/Likes are activity signals. | |||
| data.location_raw | string | No | ||||
| data.media | integer | No | ||||
| data.name | string | No | ||||
| data.posts | integer | No | ||||
| data.schema_version | integer | No | ||||
| data.source_tier | string | No | ||||
| data.username | string | No | ||||
| data.verified_type | string | No | VerifiedType is the verification flavour ("Business", "Government", ...); empty for ordinary/blue accounts. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/x-users/items/elonmusk" \
-H "x-api-key: $CRAWLORA_API_KEY"