Skip to main content
POST
/
api
/
v1
/
contacts
/
bulk-import
curl -X POST "https://api.usegately.com/api/v1/contacts/bulk-import" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Project-ID: YOUR_PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "contacts": [
      { "name": "Alice", "email": "alice@example.com", "tags": ["Newsletter"] },
      { "name": "Bob",   "email": "bob@example.com",   "company": "Acme" }
    ]
  }'
{
  "success": true,
  "imported": 2,
  "skipped": 0,
  "errors": [],
  "message": "Successfully imported 2 contacts"
}
Duplicate emails within the project are skipped. The response includes a per-row error list for any contacts that failed validation.

Headers

Authorization
string
required
Bearer YOUR_API_KEY
X-Project-ID
string
Your project UUID. Not required if the API key already encodes the project.

Request Body

contacts
object[]
required
Array of contact objects to import (max 1,000).

Response

success
boolean
Whether the import completed without a fatal error
imported
number
Number of contacts successfully created
skipped
number
Number of contacts skipped (duplicates or validation failures)
errors
object[]
Per-row error details
message
string
Human-readable summary
curl -X POST "https://api.usegately.com/api/v1/contacts/bulk-import" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Project-ID: YOUR_PROJECT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "contacts": [
      { "name": "Alice", "email": "alice@example.com", "tags": ["Newsletter"] },
      { "name": "Bob",   "email": "bob@example.com",   "company": "Acme" }
    ]
  }'
{
  "success": true,
  "imported": 2,
  "skipped": 0,
  "errors": [],
  "message": "Successfully imported 2 contacts"
}