List contacts
List of contacts, we recommended filtering by site.
Filtering
Use the filter[site_id] parameter to filter contacts by site:
Get contacts for site with ID 123
GET /v1/contacts?filter[site_id]=123
Response will include only contacts for the specified site
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "john@example.com",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Search Filter
Use the filter[search] parameter along with filter[site_id] to search contacts by name or email:
Search for contacts containing “smith” in site with ID 123
GET /v1/contacts?filter[site_id]=123&filter[search]=smith
Response will include only matching contacts for the specified site
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "smith.john@example.com",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Search
Use the filter[search] parameter along with filter[site_id] to search contacts.
Search for contacts containing “smith” in site with ID 123
GET /v1/contacts?filter[site_id]=123&filter[search]=smith
Response will include matching contacts
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "smith.john@example.com",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Using Pagination with Site Filter
Use the filter[site_id] parameter along with pagination parameters page[number] and page[size] to get paginated results for a specific site:
Get page 2 of contacts from site with ID 123, with 10 items per page
GET /v1/contacts?filter[site_id]=123&page[number]=2&page[size]=10
Response will include paginated contacts for the specified site along with pagination metadata
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "smith.john@example.com",
"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
}
}
Using Sort with Site Filter
- The default Sorting is by created_at in descending order (newest first)
Sorting by created_at in ascending order (oldest first)
GET /v1/contacts?filter[site_id]=123&sort=created_at
Use the sort parameter along with filter[site_id] to get sorted results for a specific site:
Get contacts from site with ID 123, sorted by name in ascending order
GET /v1/contacts?filter[site_id]=123&sort=name
Get contacts from site with ID 123, sorted by email in descending order
GET /v1/contacts?filter[site_id]=123&sort=-email
Response will include sorted contacts for the specified site
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "Alice Smith",
"email": "alice@example.com",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Using Sparse Fields with Site Filter
Use the fields[contacts] parameter along with filter[site_id] to get specific fields for contacts in a site:
Get only name and email fields for contacts from site with ID 123
GET /v1/contacts?filter[site_id]=123&fields[contacts]=name,email
Response will include only requested fields for contacts in the specified site
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "Alice Smith",
"email": "alice@example.com"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Filtering by Site and Offer
Use the filter[site_id] parameter along with filter[has_offer_id] to get contacts who have been granted a specific offer
Get contacts from site with ID 123 who have been granted offer with ID 789
GET /v1/contacts?filter[site_id]=123&filter[has_offer_id]=789
Response will include only contacts from the specified site who have been granted the offer
{
"data": [{
"id": "456",
"type": "contacts",
"attributes": {
"name": "Alice Smith",
"email": "alice@example.com",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Filtering by Site and Tag
Use the filter[site_id] parameter along with filter[has_tag_id] to get contacts who have a specific tag
Get contacts from site with ID 123 who have tag with ID 456
GET /v1/contacts?filter[site_id]=123&filter[has_tag_id]=456
Response will include only contacts from the specified site who have the tag
{
"data": [{
"id": "789",
"type": "contacts",
"attributes": {
"name": "Bob Jones",
"email": "bob@example.com",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
Using Multiple Parameters Together
You can combine multiple parameters to filter, search, paginate and format the response:
Get paginated contacts from site 123 with tag 456, searching for “smith”, using indexed data and sparse fields
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,email
Response will include paginated contacts matching all filters with only requested fields
{
"data": [{
"id": "789",
"type": "contacts",
"attributes": {
"name": "John Smith",
"email": "smith.john@example.com"
}
}],
"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
}
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
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