---
title: "Bulk-import contacts from a CSV file"
method: POST
path: "/v1/campaigns/{campaign_id}/upload-csv"
tags: ["Campaigns", "Campaigns"]
---

# Bulk-import contacts from a CSV file

`POST /v1/campaigns/{campaign_id}/upload-csv`

## Request

- Base URL: `https://api.call2me.app`
- URL: `https://api.call2me.app/v1/campaigns/{campaign_id}/upload-csv`
- Auth: HTTP bearer

Bulk-import contacts into a campaign. Send a `multipart/form-data` request with a `file` field containing a CSV. Format:

- **Header row required**
- `phone` (or `phone_number`, `telefon`) — **required column**
- `name` (or `ad`, `isim`) — optional
- Any extra columns become per-contact template variables that the agent can interpolate into its system prompt or dialogue

**Limits**: max 5 MB, UTF-8 or Latin-1 encoded. Duplicate phone numbers within the same campaign are silently skipped. Allowed only while campaign status is `draft`.

## Path parameters

- `campaign_id` string, required

## Response `201`

Number of contacts inserted, skipped (duplicates) and any parse warnings.

- unknown

## Other responses

- `400`: Invalid CSV format, missing phone column, or campaign not in draft state.
- `404`: Campaign not found.
- `413`: File too large (> 5 MB).
- `422`: Validation Error

---

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