TwitterAPIs Docs
API ReferenceWrite Actions

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.

POST
/list/create

Authorization

bearerAuth
AuthorizationBearer <token>

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

UnitPrice
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.

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.