eSMS AfricaeSMS Africa
Contacts

Contact Lists

Upload and manage contact lists for bulk SMS campaigns.

Contact lists store the recipients for your bulk SMS campaigns. Each list holds phone numbers and optional custom fields for personalisation.

Create a list (upload CSV)

POST /api/contact-lists
Content-Type: multipart/form-data
FieldTypeRequiredDescription
filefileYesCSV file
namestringNoList name (defaults to filename)
tagsstringNoComma-separated tags, e.g. leads,2026-q2
curl -X POST https://sms.esmsafrica.io/api/contact-lists \
  -H "Authorization: Bearer esms_live_YOUR_KEY" \
  -F "file=@contacts.csv" \
  -F "name=Nigeria Q2 Leads" \
  -F "tags=leads,q2"

Response:

{
  "id": 7,
  "name": "Nigeria Q2 Leads",
  "count": 1523,
  "columns": ["phone", "name", "company", "tier"],
  "tags": ["leads", "q2"]
}

The phone column is detected automatically from common names: phone, phone_number, mobile, msisdn, to, number. All other columns become template variables.

List all contact lists

GET /api/contact-lists?page=0&limit=20
{
  "lists": [
    {
      "id": 7,
      "name": "Nigeria Q2 Leads",
      "count": 1523,
      "columns": ["phone", "name", "company", "tier"],
      "tags": ["leads", "q2"],
      "created_at": "2026-05-02T10:00:00Z",
      "updated_at": "2026-05-02T10:00:00Z"
    }
  ],
  "total": 3
}

Filter by tag: GET /api/contact-lists?tag=leads

Get a list

GET /api/contact-lists/{list_id}

Browse contacts in a list

GET /api/contact-lists/{list_id}/contacts?page=0&limit=50
{
  "contacts": [
    {
      "id": 1,
      "phone": "+234801234567",
      "name": "Alice Obi",
      "data": { "company": "Acme Corp", "tier": "premium" }
    }
  ],
  "total": 1523
}

Delete a list

DELETE /api/contact-lists/{list_id}

Deletes the list and all its contacts. This cannot be undone.

Using a list in a campaign

Pass one or more list IDs in the contact_list_ids field of a bulk send request:

{
  "contact_list_ids": [7, 8],
  "text": "Hi {{name}}, see our latest offer.",
  "schedule_mode": "now"
}

Contacts across all listed lists are merged and deduplicated.

Web portal

You can also manage contact lists in the Contacts section of the portal. From there you can:

  • Upload CSVs with drag-and-drop
  • Preview contacts and their columns
  • Tag lists for organisation
  • Launch a campaign directly with Use in campaign

On this page