Twitter Create List API | Make an X List Programmatically
Create a List owned by your registered X session, with a name and an optional description and privacy flag. Populate it afterwards with Add List Member. Cost: $0.0016 per call.
Create List creates a new Twitter/X List owned by your registered X session, with a name and an optional description and privacy flag. It is the starting point for building a List programmatically: create it here, then populate it with Add List Member. One $0.0008 write.
Authorization
bearerAuth Pass your API key as a bearer token on every request: Authorization: Bearer <API_KEY>.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/list/create" \ -H "Content-Type: application/json" \ -d '{ "name": "Founders" }'{ "ok": true, "list": { "id": "1234567890123456789", "name": "Founders", "description": "People building in public.", "member_count": 0 }}{ "error": "bad_request", "message": "Missing or malformed parameter. Fix the request before retrying."}{ "error": "unauthorized", "message": "The API key is missing, malformed, or revoked. Check the Authorization header."}{ "error": "insufficient_credits", "message": "Your balance is exhausted. Top up your credits to continue."}{ "error": "forbidden", "message": "The acting account is not authorized for this write action, or has no logged-in session."}{ "error": "not_found", "message": "The resource does not exist, for example a deleted tweet or a private account."}{ "error": "rate_limited", "message": "Too many requests. Back off and retry with exponential backoff."}{ "error": "server_error", "message": "Something failed on our side. Retry with backoff; if it persists, contact support."}Pricing
| Unit | Price |
|---|---|
| Per call | $0.0016 |
| Per 1,000 calls | $1.60 |
One $0.0016 write per List created. This is TWICE the $0.0008 its four List siblings cost, and that is deliberate rather than a typo: creating a List is priced separately in our billing config from adding or removing a member.
When to use
Use it to stand up a List from code, for example creating one List per client or per topic and then filling each with the accounts you track.
Related endpoints
- Add List Member: Add one account to a Twitter/X List you own.
- Remove List Member: Remove one account from a Twitter/X List you own.
- List Members: Page through the members of a public Twitter/X List.
FAQ
Who owns the List this creates?
The X account behind your registered session. Register with POST /customer/session first, or send auth_token and ct0 inline per call.
Can I create a private List?
Yes. Send is_private true. Note that a private List is not readable by the public List read endpoints.
How do I add accounts after creating it?
Use Add List Member with the list_id this returns.
Remove List Member POST
Remove an account from a List owned by your registered X session. Returns the List's member_count as proof the membership change landed. Cost: $0.0008 per call.
Overview
Direct Messages: Read your account's DM inbox and the message history of a single conversation. Read-only; requires a registered session.