curl "https://api.usegately.com/api/v1/contacts?status=active&limit=50" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Project-ID: YOUR_PROJECT_ID"
const res = await fetch(
'https://api.usegately.com/api/v1/contacts?status=active&limit=50',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'X-Project-ID': 'YOUR_PROJECT_ID',
}
}
)
const { contacts, pagination } = await res.json()
import { GatelyContacts } from '@gately/sdk'
const crm = new GatelyContacts({ projectId: 'YOUR_PROJECT_ID' })
const { contacts, pagination } = await crm.list({
status: 'active',
search: 'jane',
page: 1,
limit: 50,
})
{
"contacts": [
{
"id": "a1b2c3d4-e5f6-4789-abcd-ef1234567890",
"project_id": "proj-uuid-here",
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Corp",
"status": "active",
"unsubscribed": false,
"tags": [
{ "id": "tag-uuid", "name": "VIP", "color": "#ff6600" }
],
"custom_fields": { "plan": "pro" },
"last_contacted_at": "2025-05-10T09:00:00.000Z",
"created_at": "2025-01-15T12:00:00.000Z",
"updated_at": "2025-05-10T09:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1,
"pages": 1
}
}
Contacts
List Contacts
Retrieve contacts for a project with optional filtering and pagination
GET
/
api
/
v1
/
contacts
curl "https://api.usegately.com/api/v1/contacts?status=active&limit=50" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Project-ID: YOUR_PROJECT_ID"
const res = await fetch(
'https://api.usegately.com/api/v1/contacts?status=active&limit=50',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'X-Project-ID': 'YOUR_PROJECT_ID',
}
}
)
const { contacts, pagination } = await res.json()
import { GatelyContacts } from '@gately/sdk'
const crm = new GatelyContacts({ projectId: 'YOUR_PROJECT_ID' })
const { contacts, pagination } = await crm.list({
status: 'active',
search: 'jane',
page: 1,
limit: 50,
})
{
"contacts": [
{
"id": "a1b2c3d4-e5f6-4789-abcd-ef1234567890",
"project_id": "proj-uuid-here",
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Corp",
"status": "active",
"unsubscribed": false,
"tags": [
{ "id": "tag-uuid", "name": "VIP", "color": "#ff6600" }
],
"custom_fields": { "plan": "pro" },
"last_contacted_at": "2025-05-10T09:00:00.000Z",
"created_at": "2025-01-15T12:00:00.000Z",
"updated_at": "2025-05-10T09:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1,
"pages": 1
}
}
Headers
string
required
Bearer YOUR_API_KEYstring
Your project UUID. Not required if the API key already encodes the project.
Query Parameters
number
default:"1"
Page number
number
default:"50"
Results per page (max 200)
string
Search by name, email, or company
string
Filter by status:
new · active · inactive · archivedstring
Comma-separated tag names to filter by (e.g.
VIP,Newsletter)string
Return only contacts that match a specific segment
Response
Contact[]
Array of contact objects with resolved tags
object
curl "https://api.usegately.com/api/v1/contacts?status=active&limit=50" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Project-ID: YOUR_PROJECT_ID"
const res = await fetch(
'https://api.usegately.com/api/v1/contacts?status=active&limit=50',
{
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'X-Project-ID': 'YOUR_PROJECT_ID',
}
}
)
const { contacts, pagination } = await res.json()
import { GatelyContacts } from '@gately/sdk'
const crm = new GatelyContacts({ projectId: 'YOUR_PROJECT_ID' })
const { contacts, pagination } = await crm.list({
status: 'active',
search: 'jane',
page: 1,
limit: 50,
})
{
"contacts": [
{
"id": "a1b2c3d4-e5f6-4789-abcd-ef1234567890",
"project_id": "proj-uuid-here",
"name": "Jane Smith",
"email": "jane@example.com",
"company": "Acme Corp",
"status": "active",
"unsubscribed": false,
"tags": [
{ "id": "tag-uuid", "name": "VIP", "color": "#ff6600" }
],
"custom_fields": { "plan": "pro" },
"last_contacted_at": "2025-05-10T09:00:00.000Z",
"created_at": "2025-01-15T12:00:00.000Z",
"updated_at": "2025-05-10T09:00:00.000Z"
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1,
"pages": 1
}
}
Was this page helpful?
⌘I