---
title: "Get user profile with follower counts and verification"
method: GET
path: "/api/v1/x/users/{id}"
tags: ["Users"]
---

# Get user profile with follower counts and verification

`GET /api/v1/x/users/{id}`

Get user profile with follower counts and verification.

## Path parameters

- `id` string, required

## Response `200`

User profile

- UserProfile — X user profile with bio, follower counts, and verification status.
  - `id` string, required
  - `username` string, required
  - `name` string, required
  - `description` string
  - `followers` integer
  - `following` integer
  - `verified` boolean
  - `isBlueVerified` boolean — Whether X shows a blue verification badge
  - `isVerified` boolean — Whether X marks the profile as verified
  - `profilePicture` string
  - `coverPicture` string
  - `profileBannerUrl` string — Original X profile banner field when available
  - `location` string
  - `createdAt` string
  - `statusesCount` integer
  - `mediaCount` integer
  - `protected` boolean — Whether the profile protects its posts
  - `url` string
  - `favouritesCount` integer
  - `hasCustomTimelines` boolean
  - `isTranslator` boolean
  - `withheldInCountries` string[]
  - `possiblySensitive` boolean
  - `pinnedTweetIds` string[]
  - `isAutomated` boolean
  - `automatedBy` string
  - `unavailable` boolean
  - `unavailableReason` string
  - `verifiedType` string
  - `affiliatesHighlightedLabel` UserAffiliateLabel — Organization affiliation label shown on an X profile.
    - `badgeUrl` string
    - `description` string
    - `url` string
    - `urlType` string
    - `userLabelDisplayType` string
    - `userLabelType` string
  - `businessAccountAffiliatesCount` integer
  - `creatorSubscriptionsCount` integer
  - `hasGraduatedAccess` boolean
  - `hasHiddenSubscriptionsOnProfile` boolean
  - `highlightsInfo` UserHighlightsInfo — Profile highlight availability and count metadata.
    - `canHighlightTweets` boolean
    - `highlightedTweets` string
  - `identityVerification` UserIdentityVerification — Identity verification metadata displayed by X.
    - `description` string
    - `isIdentityVerified` boolean
    - `verifiedSinceMsec` string
  - `isProfileTranslatable` boolean
  - `parodyCommentaryFanLabel` string
  - `profileDescriptionLanguage` string
  - `profileImageShape` string
  - `profileInterstitialType` string
  - `profileSortEnabled` boolean
  - `profileTranslatorType` string
  - `superFollowEligible` boolean
  - `communityRole` string — Community role when returned by community member reads
  - `profile_bio` object — Structured profile bio with entity annotations

## Other responses

- `400` — Invalid input
- `401` — Unauthenticated
- `402` — Payment required. Fixed-price direct MPP requests return a Machine Payments Protocol problem document and a WWW-Authenticate challenge. Authenticated X data requests return balances and explicit Stripe checkout-creation actions. Guest paid-read keys receive only the accountless guest top-up action. Direct MPP challenges also advertise the Stripe wallet action. Other authenticated endpoints return a legacy error shape. A failed request never creates checkout. Create checkout only after the user confirms a payment option.
- `404` — User not found
- `424` — Dependency unavailable, unauthorized, or rate limited. Default v1 returns 502. The best-practice response contract returns 424 for transparent dependency failures.
- `429` — Xquik tier rate limit exceeded. The response includes a `Retry-After` header with the number of seconds to wait before retrying.
- `502` — Dependency unavailable, unauthorized, or rate limited. Default v1 returns 502. The best-practice response contract returns 424 for transparent dependency failures.
- `default` — Unexpected error.

---

[API](https://skmtc.net/xquik-dev/apis/xquik-api-2.md) · [All operations](https://skmtc.net/xquik-dev/apis/xquik-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/xquik-dev/xquik-api-2/versions/c367e6e8f845/schema)
