List of contacts, we recommended filtering by site.
Use the filter[site_id] parameter to filter contacts by site:
GET /v1/contacts?filter[site_id]=123Response will include only contacts for the specified site
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "[email protected]",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Use the filter[search] parameter along with filter[site_id] to search contacts by name or email:
GET /v1/contacts?filter[site_id]=123&filter[search]=smithResponse will include only matching contacts for the specified site
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "[email protected]",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Use the filter[search] parameter along with filter[site_id] to search contacts.
GET /v1/contacts?filter[site_id]=123&filter[search]=smithResponse will include matching contacts
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "[email protected]",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Use the filter[site_id] parameter along with pagination parameters page[number] and page[size] to get paginated results for a specific site:
GET /v1/contacts?filter[site_id]=123&page[number]=2&page[size]=10Response will include paginated contacts for the specified site along with pagination metadata
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "[email protected]",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}],
"links": {
"self": "https://api.kajabi.com/v1/contacts?filter[site_id]=123&page[number]=2&page[size]=10",
"first": "https://api.kajabi.com/v1/contacts?filter[site_id]=123&page[number]=1&page[size]=10",
"prev": "https://api.kajabi.com/v1/contacts?filter[site_id]=123&page[number]=1&page[size]=10",
"next": "https://api.kajabi.com/v1/contacts?filter[site_id]=123&page[number]=3&page[size]=10",
"last": "https://api.kajabi.com/v1/contacts?filter[site_id]=123&page[number]=5&page[size]=10"
},
"meta": {
"total_pages": 5,
"total_count": 50,
"current_page": 2
}
}
Sorting by created_at in ascending order (oldest first)
GET /v1/contacts?filter[site_id]=123&sort=created_atUse the sort parameter along with filter[site_id] to get sorted results for a specific site:
GET /v1/contacts?filter[site_id]=123&sort=nameGET /v1/contacts?filter[site_id]=123&sort=-emailResponse will include sorted contacts for the specified site
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "Alice Smith",
"email": "[email protected]",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Use the fields[contacts] parameter along with filter[site_id] to get specific fields for contacts in a site:
GET /v1/contacts?filter[site_id]=123&fields[contacts]=name,emailResponse will include only requested fields for contacts in the specified site
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "Alice Smith",
"email": "[email protected]"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Use the filter[site_id] parameter along with filter[has_offer_id] to get contacts who have been granted a specific offer
GET /v1/contacts?filter[site_id]=123&filter[has_offer_id]=789Response will include only contacts from the specified site who have been granted the offer
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "Alice Smith",
"email": "[email protected]",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Use the filter[site_id] parameter along with filter[has_tag_id] to get contacts who have a specific tag
GET /v1/contacts?filter[site_id]=123&filter[has_tag_id]=456Response will include only contacts from the specified site who have the tag
{
"data": [{
"id": "789",
"type": "contacts",
"attributes": {
"name": "Bob Jones",
"email": "[email protected]",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
You can combine multiple parameters to filter, search, paginate and format the response:
GET /v1/contacts?filter[site_id]=123&filter[has_tag_id]=456&filter[search]=smith&=true&page[number]=1&page[size]=10&fields[contacts]=name,emailResponse will include paginated contacts matching all filters with only requested fields
{
"data": [{
"id": "789",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "[email protected]"
}
}],
"links": {
"self": "https://api.kajabi.com/v1/contacts?filter[site_id]=123&filter[has_tag_id]=456&filter[search]=smith&=true&page[number]=1&page[size]=10&fields[contacts]=name,email",
"first": "https://api.kajabi.com/v1/contacts?filter[site_id]=123&filter[has_tag_id]=456&filter[search]=smith&=true&page[number]=1&page[size]=10&fields[contacts]=name,email",
"prev": null,
"next": null,
"last": "https://api.kajabi.com/v1/contacts?filter[site_id]=123&filter[has_tag_id]=456&filter[search]=smith&=true&page[number]=1&page[size]=10&fields[contacts]=name,email"
},
"meta": {
"total_pages": 1,
"total_count": 1,
"current_page": 1
}
}
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Sort order, use: name, email, created_at, for descending order use '-' e.g. &sort=-name
Number of documents
Sparse fields, use: name, email for example ?fields[contacts]=name,email
It is recommended to always filter by site_id, for example ?filter[site_id]=111. This param is required when the account has multiple sites
Filter with fuzzy search of name/email, for example ?filter[search]=alexa
Filter contacts created in the last N days, e.g. ?filter[created_in_last]=30
Filter contacts not created in the last N days
Filter hidden contacts
Filter contacts who joined in the last N days
Filter contacts active in the last N days
Filter contacts inactive in the last N days
Filter contacts whose name contains the given value
Filter contacts whose email contains the given value
Filter contacts whose phone number contains the given value
Filter contacts whose address line 1 contains the given value
Filter contacts whose address line 2 contains the given value
Filter contacts whose city contains the given value
Filter contacts whose state contains the given value
Filter contacts whose country contains the given value
Filter contacts whose zip code contains the given value
Filter contacts with a specific tag ID
Filter contacts with all specified tag IDs
Filter contacts without the specified tag ID
Filter subscribed contacts
Filter contacts with a specific offer ID
Filter contacts without the specified offer ID
Filter contacts who used a specific coupon code
Filter contacts who submitted a specific form ID
Filter contacts who have not submitted the specified form ID
Filter contacts who registered for a specific event ID
Filter contacts who have not registered for the specified event ID
Filter contacts who completed a specific assessment ID
Filter contacts who passed a specific assessment ID
Filter contacts who failed a specific assessment ID
Filter contacts whose net revenue equals the given value
Filter contacts whose net revenue is greater than the given value
Filter contacts whose net revenue is less than the given value
Filter contacts subscribed in the last N days
Filter contacts unsubscribed in the last N days
Filter contacts who have never subscribed
Filter contacts who were sent a specific email broadcast ID
Filter contacts who were not sent the specified email broadcast ID
Filter contacts who were not sent any of the specified email broadcast IDs
Filter contacts who did not receive the specified email broadcast ID
Filter contacts who opened a specific email broadcast ID
Filter contacts who did not open the specified email broadcast ID
Filter contacts who clicked a specific email broadcast ID
Filter contacts who did not click the specified email broadcast ID
Filter contacts who bounced a specific email broadcast ID
Filter contacts who did not bounce the specified email broadcast ID
Filter contacts who dropped a specific email broadcast ID
Filter contacts who did not drop the specified email broadcast ID
Filter contacts who opened an email in the last N days
Filter contacts who did not open an email in the last N days
Filter contacts who were delivered an email in the last N days
Filter contacts who were not delivered an email in the last N days
Filter contacts who clicked an email in the last N days
Filter contacts who did not click an email in the last N days
Filter contacts that are hard bouncing
Filter contacts who bounced in the last N days
Filter contacts who complained in the last N days
Filter contacts manually unsubscribed in the last N days
Filter contacts who opted out in the last N days
Filter healthy contacts with open data
Filter passive contacts with open data
Filter unengaged contacts with open data
Filter inactive contacts with open data
Filter contacts subscribed to a specific newsletter ID
Filter contacts unsubscribed from a specific newsletter ID
Filter suppressed contacts
Filter contacts whose mobile phone number contains the given value
Filter contacts subscribed to a specific email sequence ID
Filter contacts not subscribed to a specific email sequence ID