User API
- Base URL:
https://user.sls.epilot.io - Full API Docs: https://docs.epilot.io/api/user
Usageโ
import { epilot } from '@epilot/sdk'
epilot.authorize(() => '<token>')
const { data } = await epilot.user.signUpUser(...)
Tree-shakeable importโ
import { getClient, authorize } from '@epilot/sdk/user'
const userClient = getClient()
authorize(userClient, () => '<token>')
const { data } = await userClient.signUpUser(...)
Operationsโ
User V2
signUpUsergetMeV2listUsersV2getUserV2updateUserV2deleteUserV2inviteUserresendUserInvitationgetGroupsForUserverifyEmailWithTokencheckInviteTokenactivateUserrejectInvitegetUserLoginParametersV2beginPasskeyAuthenticationbeginDiscoverablePasskeyAuthenticationresolveDiscoverableCredentialbeginPasskeyRegistrationcompletePasskeyRegistrationlistPasskeysdeletePasskeyswitchOrganization
Group
Navigation
User V1
Schemas
NavigationIdNavigationNavigationCreateRequestNavigationConfigurationNavigationItemNavigationKeyItemNavigationGroupItemInviteTokenPartnerInvitationTokenVerificationTokenGroupIdUserIdQueryOrganizationIdLimitOffsetHydrateUsernameUserInvitationPayloadUserActivationPayloadUserVerificationPayloadUserV2UserLoginParametersCreateGroupReqUpdateGroupReqGroupSignupUserPayloadOrganizationDetailCognitoDetailsUserDetailOrganizationDataPointsResponseDataPointPasskeyPasskeyAuthenticationOptionsPasskeyRegistrationOptionsPasskeyRegistrationResponse
signUpUserโ
POST /v2/users/public/signup
const { data } = await client.signUpUser(
{
token: 'example',
},
{
organization_detail: {
type: 'Vendor',
name: 'Epilot',
pricing_tier: 'professional',
email: 'string',
phone: 'string',
website: 'string',
is_privacy_policy_checked: false,
is_terms_and_conditions_checked: false
},
user_detail: {
full_name: 'Example user',
email: 'user@example.com',
password: 'AKjhdakjsdh@!34'
},
language: 'en'
},
)
Response
{
"user": {
"id": "string",
"organization_id": "string",
"email": "user@example.com",
"display_name": "Example user",
"name": "Example user",
"preferred_language": "de",
"signature": "<p>Thanks</p>",
"custom_navigation": "5gbe4nkp6jsfq",
"roles": ["Owner"],
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
},
"organization": {
"id": "string",
"type": "Vendor",
"name": "Epilot",
"signature": "<p>Thanks</p>",
"symbol": "EPI",
"pricing_tier": "professional",
"email": "someone@epilot.cloud",
"phone": 49123123123,
"website": "https://epilot.cloud",
"address": {
"country": "string",
"city": "string",
"postal_code": "string",
"street": "string",
"street_number": "string"
},
"logo_url": "https://epilot-playground-organization-data.s3.eu-central-1.amazonaws.com/epilot-logo.png",
"logo_thumbnail_url": "https://epilot-playground-organization-data.s3.eu-central-1.amazonaws.com/epilot-logo.png",
"is_unlicensed_org": false,
"cognito_details": {
"cognito_region": "eu-central-1",
"cognito_user_pool_id": "eu-central-sample",
"cognito_user_pool_client_id": "asbkh213ehkquwhdi",
"cognito_user_pool_arn": "arn:aws:cognito-idp:eu-central-1:123456789012:userpool/eu-central-sample"
}
}
}
getMeV2โ
Get currently logged in user
GET /v2/users/me
const { data } = await client.getMeV2()
Response
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {
"opportunity": "891a5409850abf8b92bd2cb7bdd2844d32ce6bec",
"order": "628aee91-7c2f-4047-ab0d-433582a19c49"
},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
listUsersV2โ
Get the list of organization users
GET /v2/users
const { data } = await client.listUsersV2({
query: 'example',
limit: 1,
offset: 1,
})
Response
{
"results": [
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {
"opportunity": "891a5409850abf8b92bd2cb7bdd2844d32ce6bec",
"order": "628aee91-7c2f-4047-ab0d-433582a19c49"
},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
]
}
getUserV2โ
Get user details by user id
GET /v2/users/{id}
const { data } = await client.getUserV2({
id: '123e4567-e89b-12d3-a456-426614174000',
})
Response
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {
"opportunity": "891a5409850abf8b92bd2cb7bdd2844d32ce6bec",
"order": "628aee91-7c2f-4047-ab0d-433582a19c49"
},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
updateUserV2โ
Update user details
PATCH /v2/users/{id}
const { data } = await client.updateUserV2(
{
id: '123e4567-e89b-12d3-a456-426614174000',
},
{
id: 'string',
organization_id: 'string',
created_at: '1970-01-01T00:00:00.000Z',
activated_at: '1970-01-01T00:00:00.000Z',
display_name: 'Example User',
status: 'Active',
email: 'user@example.com',
draft_email: 'user@example.com',
department: 'Sales',
phone: 1234567890,
secondary_phone: 1234567890,
mfa_enabled: false,
phone_verified: true,
token: 'string',
signature: '<p>Thanks</p>',
is_signature_enabled: true,
preferred_language: 'de',
custom_start_page: '/app/dashboard',
custom_navigation: '5gbe4nkp6jsfq',
override_release_channel: 'canary',
feature_preferences: {
feature_name: true
},
image_uri: {
original: 'https://account-profile-images.epilot.cloud/1/avatar.png',
thumbnail_32: 'https://account-profile-images.epilot.cloud/1/avatar_32x32.png'
},
favorites: {
entity_views: {
opportunity: '891a5409850abf8b92bd2cb7bdd2844d32ce6bec',
order: '628aee91-7c2f-4047-ab0d-433582a19c49'
},
dashboard: '751ff121-9ac2-4511-a2e6-851f11287380'
},
email_notification_setting: {
added_participant_opportunity: true,
assigned_opportunity: true,
assigned_task: true,
comment_opportunity: true,
deleted_task: true,
escalated_task: true,
message_receive_opportunity: true,
message_send_opportunity: true,
created_task: true,
created_opportunity_manual: true,
created_opportunity_auto: true,
deleted_opportunity: true
},
properties: [
{
name: 'profileImageName',
value: 'avatar.png'
}
]
},
)
Response
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {
"opportunity": "891a5409850abf8b92bd2cb7bdd2844d32ce6bec",
"order": "628aee91-7c2f-4047-ab0d-433582a19c49"
},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
deleteUserV2โ
Delete user by user id
DELETE /v2/users/{id}
const { data } = await client.deleteUserV2({
id: '123e4567-e89b-12d3-a456-426614174000',
})
Response
{
"id": "string",
"organization_id": "string",
"email": "user@example.com",
"display_name": "Example user",
"name": "Example user",
"preferred_language": "de",
"signature": "<p>Thanks</p>",
"custom_navigation": "5gbe4nkp6jsfq",
"roles": ["Owner"],
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
inviteUserโ
Creates a new user in the caller's organization and sends an invite email to activate the user
POST /v2/users/invite
const { data } = await client.inviteUser(
null,
{
email: 'test@example.com',
language: 'en',
roles: ['123:owner']
},
)
Response
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {
"opportunity": "891a5409850abf8b92bd2cb7bdd2844d32ce6bec",
"order": "628aee91-7c2f-4047-ab0d-433582a19c49"
},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
resendUserInvitationโ
Resend user invitation email
POST /v2/users/invite:resendEmail
const { data } = await client.resendUserInvitation(
null,
{
email: 'test@example.com',
language: 'en'
},
)
Response
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {
"opportunity": "891a5409850abf8b92bd2cb7bdd2844d32ce6bec",
"order": "628aee91-7c2f-4047-ab0d-433582a19c49"
},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
getGroupsForUserโ
Get groups of a user
GET /v2/users/{id}/groups
const { data } = await client.getGroupsForUser({
id: '123e4567-e89b-12d3-a456-426614174000',
})
Response
[
{
"id": "string",
"org_id": "string",
"name": "Finance",
"created_at": "2024-02-08T04:44:32.246Z",
"updated_at": "2024-02-08T04:44:32.246Z",
"created_by": "123",
"crt_assignee": {
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {},
"image_uri": {},
"favorites": {},
"email_notification_setting": {},
"properties": [],
"crt_index": 3
},
"users": [
{}
]
}
]
getGroupsโ
Lists groups in organizations you have access to
GET /v1/groups
const { data } = await client.getGroups({
query: 'example',
limit: 1,
offset: 1,
hydrate: true,
})
Response
{
"hits": 1,
"groups": [
{
"id": "string",
"org_id": "string",
"name": "Finance",
"created_at": "2024-02-08T04:44:32.246Z",
"updated_at": "2024-02-08T04:44:32.246Z",
"created_by": "123",
"crt_assignee": {},
"users": []
}
]
}
createGroupโ
Create a new group
POST /v1/groups
const { data } = await client.createGroup(
null,
{
name: 'Finance',
user_ids: ['123', '456']
},
)
Response
{
"id": "string",
"org_id": "string",
"name": "Finance",
"created_at": "2024-02-08T04:44:32.246Z",
"updated_at": "2024-02-08T04:44:32.246Z",
"created_by": "123",
"crt_assignee": {
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{}
],
"crt_index": 3
},
"users": [
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {},
"image_uri": {},
"favorites": {},
"email_notification_setting": {},
"properties": []
}
]
}
getGroupโ
Get group by id
GET /v1/groups/{id}
const { data } = await client.getGroup({
id: '123e4567-e89b-12d3-a456-426614174000',
hydrate: true,
})
Response
{
"id": "string",
"org_id": "string",
"name": "Finance",
"created_at": "2024-02-08T04:44:32.246Z",
"updated_at": "2024-02-08T04:44:32.246Z",
"created_by": "123",
"crt_assignee": {
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{}
],
"crt_index": 3
},
"users": [
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {},
"image_uri": {},
"favorites": {},
"email_notification_setting": {},
"properties": []
}
]
}
updateGroupโ
Update group by id
PATCH /v1/groups/{id}
const { data } = await client.updateGroup(
{
id: '123e4567-e89b-12d3-a456-426614174000',
},
{
name: 'Finance',
user_ids: ['123', '456']
},
)
Response
{
"id": "string",
"org_id": "string",
"name": "Finance",
"created_at": "2024-02-08T04:44:32.246Z",
"updated_at": "2024-02-08T04:44:32.246Z",
"created_by": "123",
"crt_assignee": {
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{}
],
"crt_index": 3
},
"users": [
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {},
"image_uri": {},
"favorites": {},
"email_notification_setting": {},
"properties": []
}
]
}
deleteGroupโ
Delete group by id
DELETE /v1/groups/{id}
const { data } = await client.deleteGroup({
id: '123e4567-e89b-12d3-a456-426614174000',
})
advanceUserAssignmentโ
Advance user assignment to next user in line
POST /v1/groups/{id}/user:next
const { data } = await client.advanceUserAssignment({
id: '123e4567-e89b-12d3-a456-426614174000',
})
Response
{
"id": "string",
"org_id": "string",
"name": "Finance",
"created_at": "2024-02-08T04:44:32.246Z",
"updated_at": "2024-02-08T04:44:32.246Z",
"created_by": "123",
"crt_assignee": {
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {
"feature_name": true
},
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"favorites": {
"entity_views": {},
"dashboard": "751ff121-9ac2-4511-a2e6-851f11287380"
},
"email_notification_setting": {
"added_participant_opportunity": true,
"assigned_opportunity": true,
"assigned_task": true,
"comment_opportunity": true,
"deleted_task": true,
"escalated_task": true,
"message_receive_opportunity": true,
"message_send_opportunity": true,
"created_task": true,
"created_opportunity_manual": true,
"created_opportunity_auto": true,
"deleted_opportunity": true
},
"properties": [
{}
],
"crt_index": 3
},
"users": [
{
"id": "string",
"organization_id": "string",
"created_at": "1970-01-01T00:00:00.000Z",
"activated_at": "1970-01-01T00:00:00.000Z",
"display_name": "Example User",
"status": "Active",
"email": "user@example.com",
"draft_email": "user@example.com",
"department": "Sales",
"phone": 1234567890,
"secondary_phone": 1234567890,
"mfa_enabled": false,
"phone_verified": true,
"token": "string",
"signature": "<p>Thanks</p>",
"is_signature_enabled": true,
"preferred_language": "de",
"custom_start_page": "/app/dashboard",
"custom_navigation": "5gbe4nkp6jsfq",
"override_release_channel": "canary",
"feature_preferences": {},
"image_uri": {},
"favorites": {},
"email_notification_setting": {},
"properties": []
}
]
}
createNavigationโ
Create a new navigation configuration. Navigations are immutable and globally accessible across organizations. Each creation generates a new id. To update a navigation, create a new one.
POST /v2/user/navigations
const { data } = await client.createNavigation(
null,
{
name: 'Sales Team Navigation',
configuration: {
customer_relations: [
{
key: 'dashboard'
},
{
key: 'contact'
}
],
configurations: [
{
name: 'Product Catalog',
subItems: [
{
key: 'product'
},
{
key: 'price'
}
]
},
{
key: 'journey'
}
]
}
},
)
Response
{
"id": "5gbe4nkp6jsfq",
"name": "Sales Team Navigation",
"configuration": {
"customer_relations": [
{
"key": "dashboard"
},
{
"key": "contact"
}
],
"configurations": [
{
"name": "Product Catalog",
"subItems": [
{
"key": "product"
},
{
"key": "price"
}
]
},
{
"key": "journey"
}
]
}
}
getNavigationโ
Get a navigation configuration by ID
GET /v2/user/navigations/{id}
const { data } = await client.getNavigation({
id: '123e4567-e89b-12d3-a456-426614174000',
})
Response
{
"id": "5gbe4nkp6jsfq",
"name": "Sales Team Navigation",
"configuration": {
"customer_relations": [
{
"key": "dashboard"
},
{
"key": "contact"
}
],
"configurations": [
{
"name": "Product Catalog",
"subItems": [
{
"key": "product"
},
{
"key": "price"
}
]
},
{
"key": "journey"
}
]
}
}
verifyEmailWithTokenโ
Update new email using an verification token
POST /v2/users/public/verifyEmail
const { data } = await client.verifyEmailWithToken(
{
token: 'example',
},
{
password: 'AKjhdakjsdh@!34'
},
)
checkInviteTokenโ
Check an invite token
GET /v2/users/public/checkToken
const { data } = await client.checkInviteToken({
token: 'example',
})
Response
{
"invitation_org_id": "string",
"invitation_org_name": "string",
"invitation_org_logo_url": "string",
"invitation_org_logo_thumbnail_url": "string",
"invitee_user_id": "string",
"invitee_primary_org_id": "string"
}
activateUserโ
Activate user using an invite token
POST /v2/users/public/activate
const { data } = await client.activateUser(
{
token: 'example',
},
{
display_name: 'Example User',
password: 'AKjhdakjsdh@!34'
},
)
rejectInviteโ
Reject an invite
DELETE /v2/users/public/reject
const { data } = await client.rejectInvite({
token: 'example',
})
Response
{
"success": true
}
getUserLoginParametersV2โ
Get user organization login parameters by username
GET /v2/users/public/username/{username}:getLoginParameters
const { data } = await client.getUserLoginParametersV2({
username: 'example',
})
Response
{
"login_parameters": [
{
"organization_id": "123",
"organization_name": "epilot GmbH",
"organization_type": "Vendor",
"organization_use": "Production",
"cognito_region": "eu-central-1",
"cognito_user_pool_id": "eu-central-sample",
"cognito_user_pool_client_id": "asbkh213ehkquwhdi",
"cognito_oauth_domain": "epilot-org-123",
"cognito_oauth_scopes": ["openid"],
"oauth_response_type": "code",
"passkey_enabled": true
}
]
}
beginPasskeyAuthenticationโ
Begin passkey authentication flow. Returns WebAuthn options and a signed challenge token.
POST /v2/users/public/passkeys:authenticateBegin
const { data } = await client.beginPasskeyAuthentication(
null,
{
email: 'user@example.com'
},
)
Response
{
"options": {},
"challenge_token": "string"
}
beginDiscoverablePasskeyAuthenticationโ
Begin discoverable passkey authentication flow (no email required). Returns WebAuthn options with empty allowCredentials for the browser credential picker.
POST /v2/users/public/passkeys:authenticateBeginDiscoverable
const { data } = await client.beginDiscoverablePasskeyAuthentication()
Response
{
"options": {},
"challenge_token": "string"
}
resolveDiscoverableCredentialโ
Resolve user identity from a discoverable passkey assertion. Returns the user's email and login parameters.
POST /v2/users/public/passkeys:resolveCredential
const { data } = await client.resolveDiscoverableCredential(
null,
{
challenge_token: 'string',
assertion_response: {}
},
)
Response
{
"email": "user@example.com",
"organization_id": "string",
"user_id": "string",
"login_parameters": [
{
"organization_id": "123",
"organization_name": "epilot GmbH",
"organization_type": "Vendor",
"organization_use": "Production",
"cognito_region": "eu-central-1",
"cognito_user_pool_id": "eu-central-sample",
"cognito_user_pool_client_id": "asbkh213ehkquwhdi",
"cognito_oauth_domain": "epilot-org-123",
"cognito_oauth_scopes": ["openid"],
"oauth_response_type": "code",
"passkey_enabled": true
}
]
}
beginPasskeyRegistrationโ
Begin passkey registration flow for the authenticated user.
POST /v2/users/me/passkeys:registerBegin
const { data } = await client.beginPasskeyRegistration(
null,
{
friendly_name: 'My Laptop'
},
)
Response
{
"options": {},
"challenge_token": "string"
}
completePasskeyRegistrationโ
Complete passkey registration by verifying the attestation response.
POST /v2/users/me/passkeys:registerComplete
const { data } = await client.completePasskeyRegistration(
null,
{
challenge_token: 'string',
registration_response: {},
friendly_name: 'My Laptop'
},
)
Response
{
"credential_id": "string",
"friendly_name": "My Laptop",
"created_at": "1970-01-01T00:00:00.000Z",
"transports": ["string"],
"aaguid": "string"
}
listPasskeysโ
List all passkeys registered for the authenticated user.
GET /v2/users/me/passkeys
const { data } = await client.listPasskeys()
Response
{
"passkeys": [
{
"credential_id": "string",
"friendly_name": "My Laptop",
"created_at": "1970-01-01T00:00:00.000Z",
"transports": ["string"],
"aaguid": "string"
}
]
}
deletePasskeyโ
Delete a passkey by credential ID.
DELETE /v2/users/me/passkeys/{credentialId}
const { data } = await client.deletePasskey({
credentialId: 'example',
})
switchOrganizationโ
Switch to another organization the user is part of
POST /v2/users/switchOrganization
const { data } = await client.switchOrganization(
null,
{
org_id: 'string'
},
)
Response
{
"login_token": "string"
}
getMeโ
Get currently logged in user
GET /v1/users/me
const { data } = await client.getMe()
Response
{
"id": "string",
"organization_id": "string",
"email": "user@example.com",
"display_name": "Example user",
"name": "Example user",
"preferred_language": "de",
"signature": "<p>Thanks</p>",
"custom_navigation": "5gbe4nkp6jsfq",
"roles": ["Owner"],
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
listUsersโ
Lists users in organizations you have access to
GET /v1/users
const { data } = await client.listUsers({
org_ids: ['...'],
query: 'example',
limit: 1,
offset: 1,
})
Response
{
"users": [
{
"id": "string",
"organization_id": "string",
"email": "user@example.com",
"display_name": "Example user",
"name": "Example user",
"preferred_language": "de",
"signature": "<p>Thanks</p>",
"custom_navigation": "5gbe4nkp6jsfq",
"roles": ["Owner"],
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
]
}
getUserโ
Get user by id
GET /v1/users/{id}
const { data } = await client.getUser({
id: '123e4567-e89b-12d3-a456-426614174000',
})
Response
{
"id": "string",
"organization_id": "string",
"email": "user@example.com",
"display_name": "Example user",
"name": "Example user",
"preferred_language": "de",
"signature": "<p>Thanks</p>",
"custom_navigation": "5gbe4nkp6jsfq",
"roles": ["Owner"],
"image_uri": {
"original": "https://account-profile-images.epilot.cloud/1/avatar.png",
"thumbnail_32": "https://account-profile-images.epilot.cloud/1/avatar_32x32.png"
},
"properties": [
{
"name": "profileImageName",
"value": "avatar.png"
}
]
}
getUserLoginParametersโ
Get user organization login parameters by username
GET /v1/users/username/{username}:getLoginParameters
const { data } = await client.getUserLoginParameters({
username: 'example',
})
Response
{
"login_parameters": [
{
"organization_id": "123",
"organization_name": "epilot GmbH",
"organization_type": "Vendor",
"organization_use": "Production",
"cognito_region": "eu-central-1",
"cognito_user_pool_id": "eu-central-sample",
"cognito_user_pool_client_id": "asbkh213ehkquwhdi",
"cognito_oauth_domain": "epilot-org-123",
"cognito_oauth_scopes": ["openid"],
"oauth_response_type": "code",
"passkey_enabled": true
}
]
}
Schemasโ
NavigationIdโ
Navigation unique identifier - a hash of the normalized navigation payload (name + configuration). Identical navigations across orgs will have the same ID.
type NavigationId = string
Navigationโ
A customized workplace navigation configuration. The ID is a content-hash, so identical configurations will have the same ID.
type Navigation = {
id: string
name: string
configuration: Record<string, Array<{
key: string
} | {
name: string
subItems: Array<{
key: { ... }
}>
}>>
}
NavigationCreateRequestโ
Request payload to create a new navigation configuration
type NavigationCreateRequest = {
name: string
configuration: Record<string, Array<{
key: string
} | {
name: string
subItems: Array<{
key: { ... }
}>
}>>
}
NavigationConfigurationโ
Navigation configuration organized by sections. Each section contains an array of navigation items.
type NavigationConfiguration = Record<string, Array<{
key: string
} | {
name: string
subItems: Array<{
key: string
}>
}>>
NavigationItemโ
A navigation item - either a simple key item or a group with sub-items
type NavigationItem = {
key: string
} | {
name: string
subItems: Array<{
key: string
}>
}
NavigationKeyItemโ
A simple navigation item with a key
type NavigationKeyItem = {
key: string
}
NavigationGroupItemโ
A navigation group containing sub-items
type NavigationGroupItem = {
name: string
subItems: Array<{
key: string
}>
}
InviteTokenโ
Token used to invite a user to epilot
type InviteToken = string
PartnerInvitationTokenโ
Token used to invite a partner user to epilot
type PartnerInvitationToken = string
VerificationTokenโ
type VerificationToken = string
GroupIdโ
Group unique identifier
type GroupId = string
UserIdโ
User's unique identifier
type UserId = string
Queryโ
type Query = string
OrganizationIdโ
type OrganizationId = string
Limitโ
type Limit = number
Offsetโ
type Offset = number
Hydrateโ
type Hydrate = boolean
Usernameโ
type Username = string
UserInvitationPayloadโ
type UserInvitationPayload = {
email?: string
language?: "en" | "de"
roles?: string[]
}
UserActivationPayloadโ
type UserActivationPayload = {
display_name?: string
password?: string
}
UserVerificationPayloadโ
type UserVerificationPayload = {
password?: string
}
UserV2โ
type UserV2 = {
id?: string
organization_id?: string
created_at?: string // date-time
activated_at?: string // date-time
display_name?: string
status?: "Active" | "Pending" | "Deactivated" | "Deleted"
email?: string // email
draft_email?: string // email
department?: string
phone?: string
secondary_phone?: string
mfa_enabled?: boolean
phone_verified?: boolean
token?: string
signature?: string
is_signature_enabled?: boolean
preferred_language?: string
custom_start_page?: string
custom_navigation?: string
override_release_channel?: "canary" | "rc" | "stable" | null
feature_preferences?: Record<string, unknown>
image_uri?: {
original?: string // uri
thumbnail_32?: string // uri
}
favorites?: Record<string, unknown>
email_notification_setting?: Record<string, unknown>
properties?: Array<{
name: string
value: string
}>
}
Userโ
type User = {
id: string
organization_id: string
email: string // email
display_name?: string
name: string
preferred_language: string
signature?: string
custom_navigation?: string
roles: string[]
image_uri?: {
original?: string // uri
thumbnail_32?: string // uri
}
properties: Array<{
name: string
value: string
}>
}
LoginParametersโ
type LoginParameters = {
organization_id?: string
organization_name?: string
organization_type?: string
organization_use?: string
cognito_region?: string
cognito_user_pool_id?: string
cognito_user_pool_client_id?: string
cognito_oauth_domain?: string
cognito_oauth_scopes?: string[]
oauth_response_type?: "code" | "token"
passkey_enabled?: boolean
}
CreateGroupReqโ
type CreateGroupReq = {
name: string
user_ids?: string[]
}
UpdateGroupReqโ
type UpdateGroupReq = {
name?: string
user_ids?: string[]
}
Groupโ
type Group = {
id: string
org_id: string
name: string
created_at: string
updated_at: string
created_by?: string
crt_assignee?: {
id?: string
organization_id?: string
created_at?: string // date-time
activated_at?: string // date-time
display_name?: string
status?: "Active" | "Pending" | "Deactivated" | "Deleted"
email?: string // email
draft_email?: string // email
department?: string
phone?: string
secondary_phone?: string
mfa_enabled?: boolean
phone_verified?: boolean
token?: string
signature?: string
is_signature_enabled?: boolean
preferred_language?: string
custom_start_page?: string
custom_navigation?: string
override_release_channel?: "canary" | "rc" | "stable" | null
feature_preferences?: Record<string, unknown>
image_uri?: {
original?: { ... }
thumbnail_32?: { ... }
}
favorites?: Record<string, unknown>
email_notification_setting?: Record<string, unknown>
properties?: Array<{
name: { ... }
value: { ... }
}>
crt_index?: number
}
users?: Array<{
id?: string
organization_id?: string
created_at?: string // date-time
activated_at?: string // date-time
display_name?: string
status?: "Active" | "Pending" | "Deactivated" | "Deleted"
email?: string // email
draft_email?: string // email
department?: string
phone?: string
secondary_phone?: string
mfa_enabled?: boolean
phone_verified?: boolean
token?: string
signature?: string
is_signature_enabled?: boolean
preferred_language?: string
custom_start_page?: string
custom_navigation?: string
override_release_channel?: "canary" | "rc" | "stable" | null
feature_preferences?: Record<string, unknown>
image_uri?: {
original?: { ... }
thumbnail_32?: { ... }
}
favorites?: Record<string, unknown>
email_notification_setting?: Record<string, unknown>
properties?: Array<{
name: { ... }
value: { ... }
}>
}>
}
SignupUserPayloadโ
type SignupUserPayload = {
organization_detail?: {
type: "Vendor" | "Partner"
name: string
pricing_tier: string
email: string
phone?: string
website?: string
is_privacy_policy_checked?: boolean
is_terms_and_conditions_checked?: boolean
}
user_detail?: {
full_name: string
email: string // email
password: string
}
language?: "en" | "de"
}
OrganizationDetailโ
type OrganizationDetail = {
type: "Vendor" | "Partner"
name: string
pricing_tier: string
email: string
phone?: string
website?: string
is_privacy_policy_checked?: boolean
is_terms_and_conditions_checked?: boolean
}
CognitoDetailsโ
type CognitoDetails = {
cognito_region?: string
cognito_user_pool_id?: string
cognito_user_pool_client_id?: string
cognito_user_pool_arn?: string
}
UserDetailโ
type UserDetail = {
full_name: string
email: string // email
password: string
}
Organizationโ
type Organization = {
id?: string
type?: "Vendor" | "Partner"
name?: string
signature?: string
symbol?: string
pricing_tier?: string
email?: string
phone?: string
website?: string
address?: {
country?: string
city?: string
postal_code?: string
street?: string
street_number?: string
}
logo_url?: string
logo_thumbnail_url?: string
is_unlicensed_org?: boolean
cognito_details?: {
cognito_region?: string
cognito_user_pool_id?: string
cognito_user_pool_client_id?: string
cognito_user_pool_arn?: string
}
}
DataPointsResponseโ
type DataPointsResponse = Array<{
id?: number
actual_users?: number
max_users_last_month?: number
non_billable_users_last_month?: number
}>
DataPointโ
type DataPoint = {
id?: number
actual_users?: number
max_users_last_month?: number
non_billable_users_last_month?: number
}
Passkeyโ
type Passkey = {
credential_id?: string
friendly_name?: string
created_at?: string // date-time
transports?: string[]
aaguid?: string
}
PasskeyAuthenticationOptionsโ
type PasskeyAuthenticationOptions = {
options?: object
challenge_token?: string
}
PasskeyRegistrationOptionsโ
type PasskeyRegistrationOptions = {
options?: object
challenge_token?: string
}
PasskeyRegistrationResponseโ
type PasskeyRegistrationResponse = {
challenge_token: string
registration_response: object
friendly_name?: string
}