Skip to main content
This guide walks you through looking up users by their ID or username.
PrerequisitesBefore you begin, you’ll need:

Look up by ID

Single user

cURL
curl "https://api.x.com/2/users/2244994945?\
user.fields=created_at,description,verified,public_metrics" \
  -H "Authorization: Bearer $BEARER_TOKEN"
from xdk import Client

client = Client(bearer_token="YOUR_BEARER_TOKEN")

# Get user by ID
response = client.users.get(
    "2244994945",
    user_fields=["created_at", "description", "verified", "public_metrics"]
)

print(f"Name: {response.data.name}")
print(f"Username: {response.data.username}")
print(f"Followers: {response.data.public_metrics.followers_count}")
import { Client } from "@xdevplatform/xdk";

const client = new Client({ bearerToken: "YOUR_BEARER_TOKEN" });

// Get user by ID
const response = await client.users.get("2244994945", {
  userFields: ["created_at", "description", "verified", "public_metrics"],
});

console.log(`Name: ${response.data?.name}`);
console.log(`Username: ${response.data?.username}`);
console.log(`Followers: ${response.data?.public_metrics?.followers_count}`);

Response

{
  "data": {
    "id": "2244994945",
    "name": "X Developers",
    "username": "XDevelopers",
    "created_at": "2013-12-14T04:35:55.000Z",
    "description": "The voice of the X developer community",
    "verified": true,
    "public_metrics": {
      "followers_count": 583423,
      "following_count": 2048,
      "tweet_count": 14052,
      "listed_count": 1672
    }
  }
}

Multiple users

Look up to 100 users at once:
cURL
curl "https://api.x.com/2/users?\
ids=2244994945,783214,6253282&\
user.fields=username,verified" \
  -H "Authorization: Bearer $BEARER_TOKEN"
from xdk import Client

client = Client(bearer_token="YOUR_BEARER_TOKEN")

# Get multiple users by ID
response = client.users.get_users(
    ids=["2244994945", "783214", "6253282"],
    user_fields=["username", "verified"]
)

for user in response.data:
    print(f"{user.username} - Verified: {user.verified}")
import { Client } from "@xdevplatform/xdk";

const client = new Client({ bearerToken: "YOUR_BEARER_TOKEN" });

// Get multiple users by ID
const response = await client.users.getUsers({
  ids: ["2244994945", "783214", "6253282"],
  userFields: ["username", "verified"],
});

response.data?.forEach((user) => {
  console.log(`${user.username} - Verified: ${user.verified}`);
});

Look up by username

Single user

cURL
curl "https://api.x.com/2/users/by/username/XDevelopers?\
user.fields=created_at,description,verified" \
  -H "Authorization: Bearer $BEARER_TOKEN"
from xdk import Client

client = Client(bearer_token="YOUR_BEARER_TOKEN")

# Get user by username
response = client.users.get_by_username(
    "XDevelopers",
    user_fields=["created_at", "description", "verified"]
)

print(f"ID: {response.data.id}")
print(f"Name: {response.data.name}")
import { Client } from "@xdevplatform/xdk";

const client = new Client({ bearerToken: "YOUR_BEARER_TOKEN" });

// Get user by username
const response = await client.users.getByUsername("XDevelopers", {
  userFields: ["created_at", "description", "verified"],
});

console.log(`ID: ${response.data?.id}`);
console.log(`Name: ${response.data?.name}`);

Multiple users

cURL
curl "https://api.x.com/2/users/by?\
usernames=XDevelopers,X,elonmusk&\
user.fields=created_at,verified" \
  -H "Authorization: Bearer $BEARER_TOKEN"
from xdk import Client

client = Client(bearer_token="YOUR_BEARER_TOKEN")

# Get multiple users by username
response = client.users.get_users_by_usernames(
    usernames=["XDevelopers", "X", "elonmusk"],
    user_fields=["created_at", "verified"]
)

for user in response.data:
    print(f"{user.username} - {user.created_at}")
import { Client } from "@xdevplatform/xdk";

const client = new Client({ bearerToken: "YOUR_BEARER_TOKEN" });

// Get multiple users by username
const response = await client.users.getUsersByUsernames({
  usernames: ["XDevelopers", "X", "elonmusk"],
  userFields: ["created_at", "verified"],
});

response.data?.forEach((user) => {
  console.log(`${user.username} - ${user.created_at}`);
});

Available fields

FieldDescription
created_atAccount creation date
descriptionUser bio
profile_image_urlAvatar URL
verifiedVerification status
public_metricsFollower/following counts
locationUser-defined location
urlUser’s website
protectedProtected account status
pinned_tweet_idPinned Post ID

Handle errors

User not found

{
  "errors": [
    {
      "resource_type": "user",
      "title": "Not Found Error",
      "detail": "Could not find user with username: [nonexistent_user]."
    }
  ]
}

Protected user

Protected users’ data is still returned, but you won’t be able to access their Posts unless you follow them.

Next steps

Authenticated user

Get the current user

Integration guide

Key concepts and best practices

API Reference

Full endpoint documentation