# renameContactList

Rename a contact LIST in place (listId from searchContactTags `lists`): "rename Hot Leads to Priority Sellers". THIS IS THE CORRECT WAY TO FIX A LIST NAME: deleteContactLists plus createContactList is irreversible and drops every membership, while a rename keeps the id, so members and every saved filter and workflow pointing at the list are untouched. Applied synchronously; returns the org list catalog with the new name. LIST ids only: a free-form tag or custom-field id is refused at the gateway (renameContactTag / updateContactCustomField). The name must be non-empty, at most 100 characters, and unique among the organization's lists, or it is rejected. Only the label changes: membership is not moved, merged or re-evaluated.

- Call: `POST https://server.goliathdata.com/api/v1/call` with `{ "operationId": "renameContactList", "variables": {...} }`
- Scope: `WRITE`
- Type: mutation
- Idempotency: honors `Idempotency-Key` (24 h)
- Rate-limited: no

## Variables

- `listId`: `ID!` (required)
- `newName`: `String!` (required)

## Response (data, an example)

```json
{
  "contactMutation": {
    "updateContactList": {
      "contactLists": [
        {
          "id": "<ID>",
          "name": "…"
        }
      ]
    }
  }
}
```

## Example

```bash
curl https://server.goliathdata.com/api/v1/call \
  -H "Authorization: Bearer $GOLIATH_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "operationId": "renameContactList",
    "variables": {
      "listId": "<listId>",
      "newName": "<String>"
    }
  }'
```
