Skip to main content
POST
/
api
/
v1
/
contacts
/
import
Import contacts from CSV
curl -X POST "https://api.callaro.ai/api/v1/contacts/import" \
  -H "X-Api-Key: $CALLARO_API_KEY" \
  -F "file=@contacts.csv" \
  -F 'column_mapping={"Phone":"phone_e164","First Name":"first_name"}'
const form = new FormData();
form.append('file', new Blob(['Phone,First Name\n+919900000001,Rahul'], { type: 'text/csv' }), 'contacts.csv');
form.append('column_mapping', JSON.stringify({ Phone: 'phone_e164', 'First Name': 'first_name' }));
await fetch('https://api.callaro.ai/api/v1/contacts/import', {
method: 'POST',
headers: { 'X-Api-Key': process.env.CALLARO_API_KEY },
body: form
});
import requests
with open('contacts.csv', 'rb') as csv_file:
requests.post(
'https://api.callaro.ai/api/v1/contacts/import',
headers={'X-Api-Key': 'YOUR_CALLARO_API_KEY'},
files={'file': ('contacts.csv', csv_file, 'text/csv')},
data={'column_mapping': '{"Phone":"phone_e164","First Name":"first_name"}'},
timeout=60,
)
{
  "data": {},
  "message": "<string>",
  "meta": {},
  "request_id": "<string>"
}
{
"error": "<string>",
"error_code": "<string>",
"request_id": "<string>",
"details": {},
"errors": [
"<string>"
]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-Tenant-Id
string

Optional tenant context selector for JWT/partner key callers.

Body

multipart/form-data
file
file
required

CSV file containing contacts.

column_mapping
string

JSON string mapping CSV headers to contact fields.

options
string

Optional JSON string for import flags and defaults.

Response

Contact import accepted

data
object | null
message
string | null
meta
object | null
request_id
string | null