---
title: "Update a list"
method: PATCH
path: "/api/v1/lists/{id}"
tags: ["Lists"]
---

# Update a list

`PATCH /api/v1/lists/{id}`

## Request

- Base URL: `https://api.recruitwithatlas.com`
- URL: `https://api.recruitwithatlas.com/api/v1/lists/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/recruitwithatlas/apis/atlas-api/docs/api/v1/lists/:id/patch.ts> (a function with typed inputs; its response is checked against the schema)

Changes a list's name, visibility or editability. Only the owner can change a private list; on team and public lists an agency admin can too. `ownerId` reassigns ownership and is admin-only. Send at least one field.

## Path parameters

- `id` string, uuid, required: List ID

## Request body

- object
  - `name` string: New list name
  - `visibility` 'public' | 'team' | 'private': Who can see the list
  - `editable` boolean: Whether viewers may change its members
  - `ownerId` string, uuid: Reassign ownership — agency admins only

## Response `200`

List updated

- object
  - `status` 'ok', required
  - `data` object, required
    - `id` string, uuid, required: List ID
    - `name` string, required: List name
    - `entityType` 'candidate' | 'contact', required: What the list holds
    - `visibility` 'public' | 'team' | 'private', required: Who can see the list
    - `editable` boolean, required: Whether users who can see the list may change its members
    - `owner` object, required: The user who owns the list
      - `id` string, uuid, required
      - `name` string, required: "Deleted user" when the owner has been deleted
      - `deleted` boolean, required
    - `memberCount` integer, required: Number of people currently on the list
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required: When the list itself was last changed — renamed, re-shared, ownership moved. Adding or removing members does NOT move it; page `GET /lists/{id}/members` and read `addedAt` to detect membership changes

## Other responses

- `401`: Unauthorized - missing or invalid API key
- `403`: Forbidden — the Lists feature is switched off for this environment, or the list is visible to you but you may not change its members
- `404`: The list does not exist, belongs to another agency, or is not visible to you
- `415`: The request carried a body without `Content-Type: application/json`
- `422`: Validation error - the request failed schema validation (`errors.fieldErrors`) or a business rule (`errors.formErrors`)
- `429`: Too many requests - the caller has exceeded the per-agency rate limit for the tier this endpoint counts against (default per minute: 1200 read / 400 write / 60 upload). Inspect the `RateLimit-*` headers — returned on every response, not only on 429s — and back off until the window resets. See the "Rate limits" section of the introduction for details.
- `500`: Internal server error
- `501`: Endpoint is disabled in this environment (feature-flagged). Not a routing error — do not retry.

## Changes

- **2026-10-07** `0c873956b881`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/recruitwithatlas/apis/atlas-api/changes/api/v1/lists/:id/patch.md)

---

[API](https://skmtc.dev/recruitwithatlas/apis/atlas-api.md) - [All operations](https://skmtc.dev/recruitwithatlas/apis/atlas-api/llms.txt) - [OpenAPI document](https://skmtc.dev/recruitwithatlas/apis/atlas-api/revisions/158ee454751c?raw)
