1. Contact List
Chronox AI API Referance
  • Get Started
    • Introduction
    • Authentication
    • Rate limiting
    • Errors
    • Pagination
    • Campaign
  • Account
    • Get User Details
      GET
    • Get Meta Integration
      GET
    • Get Integrated Channels
      GET
    • Get WABA Catalogs
      GET
  • WhatsApp Templates
    • Getting started
    • Templates
      • Create Whatsapp Template Guide
      • Get Whatsapp Templates
      • Get Whatsapp Template Details
      • Create Whatsapp Template
    • Lookups
      • Get Whatsapp Template Category
      • Get Whatsapp Languages
      • Get Whatsapp Template Type
      • Get Whatsapp Template Interactive Type
      • Get Whatsapp Template Header Type
      • Get Whatsapp Template Button Type
      • Get Whatsapp Template Dynamic Variable Type
  • Messaging
    • Getting started
    • Send Whatsapp Message
      POST
    • Send Whatsapp Template
      POST
    • Send Canned Response
      POST
  • Inbox
    • Get Inbox Data
      GET
    • Get Thread Details
      GET
    • Update Thread Archive
      PUT
    • Assign Thread Tags
      PUT
    • Assign Thread Status
      PUT
    • Update Thread Notes
      PUT
    • Get Canned Responses
      GET
    • Get Tags
      GET
    • Get Thread Status Types
      GET
  • Contact List
    • Getting started
    • Get Contact List
      GET
    • Create Contact List
      POST
    • Update Contact List
      PUT
    • Update Contact List Status
      PUT
    • Delete Contact List
      DELETE
  • Contacts
    • Getting started
    • Get Contacts
    • Create Contacts
    • Update Contact
    • Delete Contact
    • Delete Contact Copy
  • Tags and fields
    • Contact Tags
      • Get contact tags
      • Create contact tags
      • Update contact tag
      • Delete contact tag
    • Contact Fields
      • Get contact fields
      • Create contact fields
      • Update contact field
      • Delete contact field
  • Campaign
    • Getting Started
    • Campaign APIs
      • Create campaign
      • Get campaign
      • Update campaign
      • Delete campaign
      • Run campaign
      • Pause campaign
      • Resume campaign
      • Archive campaign
      • Get campaign Stats
    • Lookup
      • Get Statuses
      • Get campaign execution statuses
      • Get campaign contact filter types
      • Get campaign message types
      • Get contact field types
      • Get template variable types
      • Get country codes
  • Whatsapp Flow
    • Get Whatsapp flows
  • Tickets
    • Getting started
    • Get Tickets
    • Create Ticket
    • Update Ticket
    • Get Ticket Statuses
    • Get Agents
  • Organization Teams
    • Get Organization Teams
  • Template Library
    • Get Template Library
    • Get Template Drafts
  • CRM
    • Import leads (single or bulk)
    • List leads
    • Get lead detail
  • Schemas
    • Thread Execution Data
    • LeadImportField
    • LeadImportContact
    • Single lead
    • LeadImportBulkLead
    • Bulk (leads[])
    • LeadImportWarning
    • Single result
    • Bulk result
    • ApiError
    • ErrorEnvelope
    • Lead detail
    • Lead list row
    • Lead list
  1. Contact List

Getting started

Getting started with contact lists#

A contact list is a named group of contacts. A campaign sends one WhatsApp message to the contacts of one list, so a list is the first thing you set up. This section lets you see your lists, create them, rename them, archive them and delete them.
This page covers the lists themselves. Adding the people inside a list is covered in Getting started with contacts.
What you want to doEndpoint
See all your listsGET /contact/list
Create a listPOST /contact/list
Rename a list or change the duplicates settingPUT /contact/list
Archive a list, or make it active againPUT /contact/list/status
Delete a listDELETE /contact/list

1. The big picture#

Create a list  →  Add contacts to it  →  Use the list in a campaign
                                              ↓
                        Archive it when you no longer need it  →  Delete it (only when it is empty)
Each list belongs to your organization. Other organizations never see your lists.

2. Before you start#

You only need your API key. See Authentication if you do not have one yet.
Every request in this section is sent to https://api.chronox.ai/api with the header Authorization: Bearer <API-key>.
INFO
The Master Contact List. Every organization has one built-in list called Master Contact List. Chronox keeps it for you (for example, it records customers who opted out of marketing messages). You can read it, but you cannot rename it, archive it or delete it, and you cannot delete the contacts inside it. You also cannot create a list with that name.

3. See your lists#

GET /contact/list
No parameters. You get every list of your organization, including archived ones and the Master Contact List.
{
  "status": true,
  "data": [
    {
      "contact_list_id": 12,
      "contact_list_name": "October customers",
      "contact_list_status_id": 1,
      "contact_list_status_name": "Active",
      "flag_allow_duplicate_contact": false,
      "created_at_timestamp": "2026-01-01T00:00:00.000Z",
      "updated_at_timestamp": null,
      "total_contact": 250
    }
  ]
}
FieldWhat it means
contact_list_idThe number you use in every other request about this list.
contact_list_status_nameActive or Archived.
flag_allow_duplicate_contacttrue if the same phone number may appear more than once in this list. See section 8.
total_contactHow many contacts are in the list right now.
updated_at_timestampnull until the list is changed for the first time.
If you have no lists, data is an empty array.

4. Create a list#

POST /contact/list
{
  "contact_list_name": "October customers",
  "flag_allow_duplicate_contact": false
}
FieldRequiredNotes
contact_list_nameYesMust be different from every other list name in your organization. Master Contact List is reserved.
flag_allow_duplicate_contactNotrue or false (also accepts the text "true" or "false"). If you leave it out, duplicates are not allowed.
You get the new list back. It starts as Active.
{
  "status": true,
  "data": [
    {
      "contact_list_id": 12,
      "contact_list_name": "October customers",
      "contact_list_status_id": 1,
      "contact_list_status_name": "Active",
      "flag_allow_duplicate_contact": false,
      "created_at_timestamp": "2026-01-01T00:00:00.000Z",
      "updated_at_timestamp": null
    }
  ]
}
Note the contact_list_id. You need it to add contacts.

5. Rename a list, or change the duplicates setting#

PUT /contact/list
Send the list ID and the name. The name is always required, even if you only want to change the duplicates setting (send the current name).
{
  "contact_list_id": 12,
  "contact_list_name": "October customers (final)",
  "flag_allow_duplicate_contact": true
}
You get the updated list back, in the same shape as section 4.
What to know:
You cannot rename or change an archived list. Make it active first (section 6).
You cannot use a name that another list already has.
You can turn "allow duplicates" on at any time. You can only turn it off if no phone number appears twice in the list. Otherwise you get error 9333: remove the duplicate contacts first.
If nothing actually changes, the call still succeeds and returns the list as it is.

6. Archive a list, or make it active again#

PUT /contact/list/status
{
  "contact_list_id": 12,
  "contact_list_status_id": 2
}
contact_list_status_id is the number for Active or Archived. Look the numbers up with Get Statuses (GET /global/get-status) instead of typing them in by hand. Only Active and Archived are allowed for a list; any other status gives error 9317.
You get the list back with its new status. Sending the status the list already has is fine and returns the list unchanged.
An archived list is read-only. You cannot rename it, add contacts to it, edit its contacts or delete its contacts. Make it active again to work with it.
WARNING
You cannot archive a list that is still in use. Chronox blocks it if the list is used by a draft, running or paused campaign, a workflow, or a custom recipient. The error (9331) tells you exactly where it is used:
{
  "status": false,
  "error": {
    "code": 9331,
    "message": "This contact list is currently being used by the following workflows, campaigns or custom recipients. ...",
    "used_in_workflow": false,
    "used_in_campaign": true,
    "used_in_custom_recipient": false,
    "workflows": [],
    "campaigns": [
      {
        "campaign_id": 77,
        "campaign_title": "October Offer",
        "campaign_execution_status_name": "Draft"
      }
    ],
    "custom_recipients": []
  }
}
Remove the list from those campaigns or workflows (or finish them), then try again.

7. Delete a list#

DELETE /contact/list?contact_list_id=12
The list ID goes in the address (query), not in a body.
A list can only be deleted when all of these are true:
It is not the Master Contact List.
It has no contacts. Delete them first (see Getting started with contacts). An archived list that is empty can be deleted.
It is not used by a campaign, workflow or custom recipient.
On success:
{
  "status": true,
  "data": {
    "code": 9064,
    "message": "Contact List - 'October customers' deleted successfully."
  }
}
Deleting cannot be undone from the API.

8. What "allow duplicate contacts" means#

SettingWhat happens when you add a phone number that is already in the list
false (default)The new contact is refused ("Contact already exists").
trueThe new contact is added, so the same number can appear more than once.
Choose false unless you really need repeated numbers. A campaign sends one message per contact, so with duplicates on, the same person can receive the message more than once. The Master Contact List never allows duplicates.

9. Common errors#

Errors come back with HTTP status 200 and "status": false. See Errors for the general format.
CodeWhat it meansWhat to do
9001The body is wrong: missing contact_list_name, bad ID, or the list was not found.Check the fields and the list ID.
9002A query value is missing or wrong (for delete).Send contact_list_id in the address.
9310Master Contact List is a reserved name.Choose another name.
9311The Master Contact List cannot be edited.Use a different list.
9312A list with this name already exists.Choose another name.
9317Only Active and Archived are allowed.Use the IDs from Get Statuses.
9318The status of the Master Contact List cannot change.Nothing to do.
9330The list is archived, so the action is not allowed.Make the list active first.
9331The list is used by campaigns, workflows or custom recipients, so it cannot be archived.See the details in the error, remove it from there.
9332Same as above, for delete.Same as above.
9308The Master Contact List cannot be deleted.Nothing to do.
9316The list still has contacts.Delete the contacts first.
9333The list has duplicate phone numbers, so duplicates cannot be turned off.Remove the duplicates first.

10. Quick checklist#

The list name is unique and is not Master Contact List.
You decided whether the list should allow duplicate contacts.
You saved the contact_list_id from the response.
Before archiving: no draft, running or paused campaign uses the list.
Before deleting: the list is empty and not used anywhere.

What this section doesn't cover#

Adding, finding, changing and deleting the contacts inside a list: see Getting started with contacts.
Contact tags and custom fields: see the Tags and fields folder.
Sending a message to a list: see Getting started with campaigns.
Modified at 2026-11-03 12:46:30
Previous
Get Thread Status Types
Next
Get Contact List
Built with