---
title: "User About Batch"
method: GET
path: "/user/user_about/batch"
tags: ["User Reads"]
---

# User About Batch

`GET /user/user_about/batch`

## Request

- Base URL: `https://api.twitterapis.com/twitter`
- URL: `https://api.twitterapis.com/twitter/user/user_about/batch`
- Auth: HTTP bearer

Read the full About object for up to 100 accounts in one request: the same object GET /user/user_about returns, including X's "About this account" transparency panel (account country, how the account was created, and username-change history). Results come back in request order, each with its about object or an error code. Cost: $0.0008 per billed item.

## Query parameters

- `usernames` string: Comma-separated handles, with or without the leading @. Send this or user_ids, never both. Between 1 and 100 distinct entries after duplicates are removed (handles compare case-insensitively). A malformed handle returns a 400 for the whole request.
- `user_ids` string: Comma-separated numeric user IDs, as an alternative to usernames. Send this or usernames, never both. Same 1 to 100 limit. Each ID is resolved to its current handle, then looked up; results echo each ID as you sent it. Leading zeros are ignored for duplicates (012 and 12 are one account).
- `fields` string
- `compact` '1'

## Response `200`

Fetch the About object for up to 100 accounts in one request.

- object
  - `requested` integer: Number of distinct accounts in the request, after duplicates were removed.
  - `served` integer: Number of items that returned an about object.
  - `billed_items` integer: Number of items this call was billed for: every account X answered for, found or not_found. Multiply by $0.0008 for the charge.
  - `results` object[]: One entry per requested account, in request order.
    - `username` string: The handle as you sent it, without the leading @. Present when the request used usernames.
    - `user_id` string: The numeric user ID as you sent it. Present when the request used user_ids.
    - `about` About: A profile's full About object: identity, bio, location, linked website, verification and identity-verification flags, the professional account type and categories, follower/following counts, avatar, the account-creation date, and the "About this account" transparency panel (account country, how the account was created, username-change history).
      - `id` string, nullable: Numeric user ID as a string.
      - `username` string, nullable: Handle without the leading @.
      - `name` string, nullable: Display name.
      - `description` string, nullable: Profile bio text.
      - `location` string, nullable: Self-reported location.
      - `url` string, nullable: Linked website URL, when set.
      - `is_blue_verified` boolean: Whether the account carries the Verified (Blue) badge.
      - `verified` boolean: Whether the account is legacy-verified.
      - `verified_type` string, nullable: Verification type, for example Business or Government, when applicable; null otherwise.
      - `professional_type` string, nullable: Professional account type, for example "Creator" or "Business", when the account publishes one; null otherwise.
      - `professional_categories` string[]: Professional category names the account has published (populated only for Professional/Business accounts; empty array otherwise).
      - `followers_count` integer, nullable: Follower count.
      - `following_count` integer, nullable: Following count.
      - `created_at` string, nullable: Account creation timestamp in Twitter date format.
      - `profile_image_url` string, nullable: Avatar image URL.
      - `is_identity_verified` boolean, nullable: Whether the account has completed X's identity verification. Null when the profile carries no verification_info block (an honest "not available", never a fabricated value).
      - `verified_since` string, nullable: Timestamp the account was verified, as the raw epoch-milliseconds string X emits; null when not available.
      - `account_based_in` string, nullable: Country the account is based in, from X's "About this account" transparency panel; null when the panel is unavailable.
      - `created_via` string, nullable: How the account was created, from X's "About this account" transparency panel, for example "United States App Store". X names this field `source` upstream; it is surfaced here as created_via (the "connected via / created via" concept). Null when the panel is unavailable.
      - `username_changes` object, nullable: Username-change history from X's "About this account" transparency panel; null when the panel is unavailable.
        - `count` integer: Number of times the account has changed its username.
        - `last_changed_at` string, nullable: When the username was last changed, as the raw epoch-milliseconds string X emits; null when the account has never changed its username (count is 0).
      - `created_country_accurate` boolean, nullable: Whether X considers account_based_in an accurate reflection of the account's country of origin; null when the transparency panel is unavailable.
      - `location_accurate` boolean, nullable: Whether X considers the self-reported location accurate; null when the transparency panel is unavailable.
      - `learn_more_url` string, nullable: X help-center link explaining the "About this account" transparency data; null when the panel is unavailable.
      - `protected` boolean, nullable: Whether the account is locked, so only approved followers can see its posts. Null on a trimmed user object that carries no protected key, which is an honest "not available" rather than a claim the account is public.
      - `affiliate_label` object, nullable: The affiliation badge X shows beside the display name, linking the account to a parent organization. Null when the account has no affiliation.
        - `description` string, nullable: The parent organization's display name, for example "X".
        - `badge_url` string, nullable: URL of the small badge image X renders next to the name.
        - `url` string, nullable: Link to the parent organization's profile.
      - `about_profile` object: The profile About card and the "About this account" transparency panel grouped into one object, alongside the flat fields above. Every member mirrors a flat field of the same meaning except birthdate, which appears nowhere else in the response. The object itself is always present on a resolved profile; each member is null when X did not send it.
        - `bio` string, nullable: Profile bio text. Same value as the flat description field.
        - `location` string, nullable: Self-reported location. Same value as the flat location field, and an empty string when the account set none.
        - `website` string, nullable: Linked website URL. Same value as the flat url field, and an empty string when the account set none.
        - `birthdate` object, nullable: Birthday from the About card, returned only when the account has one set and makes it visible. Null otherwise. Parts X withholds come back null individually, so a birthday shown as a day and month with no year returns year null.
          - `day` integer, nullable: Day of the month.
          - `month` integer, nullable: Month number, 1 for January.
          - `year` integer, nullable: Year; null when the account hides it.
          - `visibility` string, nullable: Who the account shows the birthday to, for example Public, Followers, or Self.
        - `account_based_in` string, nullable: Country the account is based in, from the transparency panel. Same value as the flat account_based_in field.
        - `created_via` string, nullable: How the account was created, for example "United States App Store" or "Web". Same value as the flat created_via field.
        - `username_changes` object, nullable: Username-change history from the transparency panel. Same value as the flat username_changes field.
          - `count` integer: Number of times the account has changed its username.
          - `last_changed_at` string, nullable: When the username was last changed, as the raw epoch-milliseconds string X emits; null when the account has never changed it.
        - `created_country_accurate` boolean, nullable: Whether X considers account_based_in an accurate reflection of where the account was created.
        - `location_accurate` boolean, nullable: Whether X considers the self-reported location accurate.
        - `learn_more_url` string, nullable: X help-center link explaining the transparency data.
      - `identity_label` object, nullable: The identity badge X shows on business and organisation profiles. Three states, and they are not interchangeable: null means X sent no block, so we do not know; an object whose label is null means X sent an empty block, so the account has no identity label; an object with a populated label is a real badge. Null on every account sampled so far.
        - `label` object, nullable: The badge itself. Null when X sent the block but the account carries no label.
          - `description` string, nullable: The label text, for example the organisation name.
          - `badge_url` string, nullable: URL of the badge image X renders beside the display name.
          - `url` string, nullable: Link the badge points to.
          - `url_type` string, nullable: The kind of link X attached to the badge.
          - `display_type` string, nullable: How X displays the label on the profile.
          - `label_type` string, nullable: The label category X assigned, for example a business or government label.
    - `error` string: Present only on an item without an about object. One of not_found (X confirmed no such account; billed), forbidden (X refuses this account to every caller; not billed, retrying will not help), rate_limited or unavailable (failed on our side; not billed, safe to retry).

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `402`: Insufficient credits
- `429`: Rate limited
- `503`: HTTP 503

---

[API](https://skmtc.dev/twitterapis/apis/twitterapis-api.md) · [All operations](https://skmtc.dev/twitterapis/apis/twitterapis-api/llms.txt) · [OpenAPI document](https://skmtc.dev/twitterapis/apis/twitterapis-api/revisions/a33ce0fedb3c?raw)
