curl https://app.demeterrr.com/api/v1/contacts?page=1&limit=50 \
-H "X-API-Key: dem_your_key_here"
const response = await fetch('https://app.demeterrr.com/api/v1/contacts?page=1&limit=50', {
headers: {
'X-API-Key': 'dem_your_key_here'
}
});
const data = await response.json();
console.log(`Found ${data.meta.total} contacts`);
import requests
response = requests.get(
'https://app.demeterrr.com/api/v1/contacts',
headers={'X-API-Key': 'dem_your_key_here'},
params={'page': 1, 'limit': 50}
)
data = response.json()
print(f"Found {data['meta']['total']} contacts")
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"phone": "+15551234567",
"title": "Mr.",
"preferredLanguage": "en",
"locationId": "660e8400-e29b-41d4-a716-446655440000",
"contactOrganizationId": null,
"customFields": {
"birthday": "1990-01-15",
"membershipTier": "Gold"
},
"tags": ["vip", "frequent-customer"],
"unsubscribed": false,
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-02-10T14:20:00.000Z"
}
],
"meta": {
"page": 1,
"perPage": 50,
"total": 247,
"totalPages": 5
}
}
Contacts
List Contacts
Retrieve a paginated list of contacts
GET
/
api
/
v1
/
contacts
curl https://app.demeterrr.com/api/v1/contacts?page=1&limit=50 \
-H "X-API-Key: dem_your_key_here"
const response = await fetch('https://app.demeterrr.com/api/v1/contacts?page=1&limit=50', {
headers: {
'X-API-Key': 'dem_your_key_here'
}
});
const data = await response.json();
console.log(`Found ${data.meta.total} contacts`);
import requests
response = requests.get(
'https://app.demeterrr.com/api/v1/contacts',
headers={'X-API-Key': 'dem_your_key_here'},
params={'page': 1, 'limit': 50}
)
data = response.json()
print(f"Found {data['meta']['total']} contacts")
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"phone": "+15551234567",
"title": "Mr.",
"preferredLanguage": "en",
"locationId": "660e8400-e29b-41d4-a716-446655440000",
"contactOrganizationId": null,
"customFields": {
"birthday": "1990-01-15",
"membershipTier": "Gold"
},
"tags": ["vip", "frequent-customer"],
"unsubscribed": false,
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-02-10T14:20:00.000Z"
}
],
"meta": {
"page": 1,
"perPage": 50,
"total": 247,
"totalPages": 5
}
}
Authentication
Requirescontacts:read scope.
Query Parameters
integer
default:"1"
Page number to retrieve
integer
default:"50"
Number of items per page (max: 100)
string
Search by first name, last name, or email
string
Filter by exact email address
string
Filter by phone number
string
Filter by location UUID
Response
array
Show Contact Object
Show Contact Object
string
Unique identifier (UUID)
string
Contact’s email address
string
Contact’s first name
string
Contact’s last name
string
Contact’s phone number (E.164 format)
string
Contact’s job title or salutation
string
Preferred language (en or fr)
string
Associated location UUID
string
Associated organization UUID
object
Custom field values (key-value pairs)
array
Array of tag strings
boolean
Whether contact has unsubscribed
string
ISO 8601 timestamp
string
ISO 8601 timestamp
object
curl https://app.demeterrr.com/api/v1/contacts?page=1&limit=50 \
-H "X-API-Key: dem_your_key_here"
const response = await fetch('https://app.demeterrr.com/api/v1/contacts?page=1&limit=50', {
headers: {
'X-API-Key': 'dem_your_key_here'
}
});
const data = await response.json();
console.log(`Found ${data.meta.total} contacts`);
import requests
response = requests.get(
'https://app.demeterrr.com/api/v1/contacts',
headers={'X-API-Key': 'dem_your_key_here'},
params={'page': 1, 'limit': 50}
)
data = response.json()
print(f"Found {data['meta']['total']} contacts")
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"email": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"phone": "+15551234567",
"title": "Mr.",
"preferredLanguage": "en",
"locationId": "660e8400-e29b-41d4-a716-446655440000",
"contactOrganizationId": null,
"customFields": {
"birthday": "1990-01-15",
"membershipTier": "Gold"
},
"tags": ["vip", "frequent-customer"],
"unsubscribed": false,
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-02-10T14:20:00.000Z"
}
],
"meta": {
"page": 1,
"perPage": 50,
"total": 247,
"totalPages": 5
}
}
⌘I