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" }
]
}'
const res = await fetch('https://api.usegately.com/api/v1/contacts/bulk-import', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'X-Project-ID': 'YOUR_PROJECT_ID',
'Content-Type': 'application/json',
},
body: JSON.stringify({
contacts: [
{ name: 'Alice', email: 'alice@example.com', tags: ['Newsletter'] },
{ name: 'Bob', email: 'bob@example.com', company: 'Acme' },
],
}),
})
const result = await res.json()
import { GatelyContacts } from '@gately/sdk'
const crm = new GatelyContacts({ projectId: 'YOUR_PROJECT_ID' })
const result = await crm.bulkImport([
{ name: 'Alice', email: 'alice@example.com', tags: ['Newsletter'] },
{ name: 'Bob', email: 'bob@example.com', company: 'Acme' },
])
console.log(`Imported: ${result.imported}, Skipped: ${result.skipped}`)
{
"success": true,
"imported": 2,
"skipped": 0,
"errors": [],
"message": "Successfully imported 2 contacts"
}
{
"success": true,
"imported": 1,
"skipped": 1,
"errors": [
{ "row": 1, "email": "bob@example.com", "error": "Email already exists" }
],
"message": "Successfully imported 1 contacts"
}
Contacts
Bulk Import Contacts
Import up to 1,000 contacts in a single request
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" }
]
}'
const res = await fetch('https://api.usegately.com/api/v1/contacts/bulk-import', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'X-Project-ID': 'YOUR_PROJECT_ID',
'Content-Type': 'application/json',
},
body: JSON.stringify({
contacts: [
{ name: 'Alice', email: 'alice@example.com', tags: ['Newsletter'] },
{ name: 'Bob', email: 'bob@example.com', company: 'Acme' },
],
}),
})
const result = await res.json()
import { GatelyContacts } from '@gately/sdk'
const crm = new GatelyContacts({ projectId: 'YOUR_PROJECT_ID' })
const result = await crm.bulkImport([
{ name: 'Alice', email: 'alice@example.com', tags: ['Newsletter'] },
{ name: 'Bob', email: 'bob@example.com', company: 'Acme' },
])
console.log(`Imported: ${result.imported}, Skipped: ${result.skipped}`)
{
"success": true,
"imported": 2,
"skipped": 0,
"errors": [],
"message": "Successfully imported 2 contacts"
}
{
"success": true,
"imported": 1,
"skipped": 1,
"errors": [
{ "row": 1, "email": "bob@example.com", "error": "Email already exists" }
],
"message": "Successfully imported 1 contacts"
}
Duplicate emails within the project are skipped. The response includes a per-row error list for any contacts that failed validation.
Headers
string
required
Bearer YOUR_API_KEYstring
Your project UUID. Not required if the API key already encodes the project.
Request Body
object[]
required
Response
boolean
Whether the import completed without a fatal error
number
Number of contacts successfully created
number
Number of contacts skipped (duplicates or validation failures)
object[]
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" }
]
}'
const res = await fetch('https://api.usegately.com/api/v1/contacts/bulk-import', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'X-Project-ID': 'YOUR_PROJECT_ID',
'Content-Type': 'application/json',
},
body: JSON.stringify({
contacts: [
{ name: 'Alice', email: 'alice@example.com', tags: ['Newsletter'] },
{ name: 'Bob', email: 'bob@example.com', company: 'Acme' },
],
}),
})
const result = await res.json()
import { GatelyContacts } from '@gately/sdk'
const crm = new GatelyContacts({ projectId: 'YOUR_PROJECT_ID' })
const result = await crm.bulkImport([
{ name: 'Alice', email: 'alice@example.com', tags: ['Newsletter'] },
{ name: 'Bob', email: 'bob@example.com', company: 'Acme' },
])
console.log(`Imported: ${result.imported}, Skipped: ${result.skipped}`)
{
"success": true,
"imported": 2,
"skipped": 0,
"errors": [],
"message": "Successfully imported 2 contacts"
}
{
"success": true,
"imported": 1,
"skipped": 1,
"errors": [
{ "row": 1, "email": "bob@example.com", "error": "Email already exists" }
],
"message": "Successfully imported 1 contacts"
}
Was this page helpful?
⌘I