---
title: "Profile by handle"
method: GET
path: "/v1/users/{handle}"
tags: ["users"]
---

# Profile by handle

`GET /v1/users/{handle}`

## Request

- Base URL: `https://api.xdataapi.io`
- URL: `https://api.xdataapi.io/v1/users/{handle}`
- Auth: one of:
  - API key in header `x-api-key`
  - OAuth 2 (authorization code, authorization URL `https://xdataapi.io/oauth/authorize`, token URL `https://xdataapi.io/api/oauth/token`, scopes: `read`)

1 credit per profile.

## Path parameters

- `handle` string, required

## Query parameters

- `fresh` boolean

## Response `200`

OK

- UserResponse
  - `items` integer, required: Objects returned.
  - `credits_charged` number, required
  - `balance_remaining` number, required
  - `cache` 'miss' | 'hit' | 'bypass', required
  - `request_id` string, uuid, required
  - `next_cursor` string
  - `data` User
    - `id` string, required
    - `handle` string, required
    - `name` string, required
    - `bio` string
    - `location` string
    - `url` string
    - `avatar_url` string
    - `banner_url` string
    - `verified` boolean
    - `protected` boolean
    - `followers` integer, required
    - `following` integer, required
    - `tweets` integer, required
    - `likes` integer
    - `listed` integer
    - `created_at` string, date-time, required
    - `pinned_tweet_ids` string[]

## Other responses

- `401`: Missing or invalid key. Free.
- `402`: Balance is zero. Buy a pack. Free.
- `404`: No such object, or it is private. Free.
- `429`: Per-account rate limit. Free. Retry after `Retry-After` seconds.
- `500`: A fault on our side. Free. Quote `request_id` if it persists.
- `503`: Upstream failure. Free. Retry after `Retry-After` seconds.

---

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