---
title: "Update a list"
method: POST
path: "/client/lists/update"
tags: ["Account actions"]
---

# Update a list

`POST /client/lists/update`

## Request

- Base URL: `https://api.twittrapi.com`
- URL: `https://api.twittrapi.com/client/lists/update`
- Auth: API key in header `X-API-KEY`

Change the name, description or privacy of a list you own. Fields you leave out stay as they are.

No simple format: with format=simple the answer is the usual {status_code, response} wrapper.

Reference: https://www.twittrapi.com/docs/account-actions/client-lists-update

## Request body

- object
  - `cookie` string, required: Cookie header of your own logged-in X session: auth_token=...; ct0=... (guest_id is used when present). How to copy it: /docs/x-session.
  - `proxy` string, required: Your proxy, format http://user:pass@host:port. The requests to X go out through it. Used only for this request.
  - `list_id` string, required: Numeric ID of the list, the number in the list URL (x.com/i/lists/<id>).
  - `name` string: New name, 1 to 25 characters.
  - `description` string: New description, up to 100 characters. An empty string clears it.
  - `private` boolean: true for private, false for public.

## Response `200`

Wrapper built by the API: {"status_code": <X status>, "response": "<X response body as a string>"}. The HTTP status is X's status when X answered 4xx or 5xx, otherwise 200. Parse response a second time to get X's JSON.

- RawPassthrough: X's own JSON (raw format, the default), passed through unchanged. The shape is X's and can change; see https://www.twittrapi.com/docs/response-format.

## Other responses

- `400`: The body is not valid JSON.
- `401`: Missing or unknown API key. Not charged.
- `402`: No balance left, or the trial expired. Not charged. Top up in the dashboard.
- `403`: Key deactivated, or the endpoint is not in your plan (trial keys and account actions). Not charged.
- `407`: The proxy is unreachable or timed out.
- `422`: A required field is missing (including proxy), an ID is not numeric, or the cookie has no ct0. Also: the account is suspended, X rejected the session, or the text was already posted. None of name, description and private is set, name is empty, name is over 25 or description over 100 characters, or private is not true or false.
- `429`: Rate limit for your key exceeded. Not charged. No Retry-After header: back off exponentially.
- `500`: Something failed on our side or between us and X. Refunded (400, 407, 408, 409 or a 5xx error are refunded). Retry with backoff.
- `default`: Any status X answers with (for example 401, 403, 404): passed through with X's body.

---

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