Laurel Users API
The Users API from Laurel — 28 operation(s) for users.
The Users API from Laurel — 28 operation(s) for users.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/laurel-users-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Identity Service Ably Users API
description: ''
version: '1'
contact: {}
servers: []
security:
- ApiBearerAuth: []
tags:
- name: Users
paths:
/api/v1/customers/{customerId}/users:
get:
operationId: CustomerUserController_search_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: search
required: false
in: query
description: searches first & last names, nickname, & email using a query
schema:
type: string
- name: integration
required: false
in: query
schema:
type:
- string
- 'null'
enum:
- cloud-assistant-cdr
- cloud-assistant-google
- cloud-assistant-microsoft-exchange
- cloud-assistant-microsoft-teams
- cloud-assistant-zoom
responses:
'200':
description: ''
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/User'
- $ref: '#/components/schemas/UserIntegrationProjection'
summary: returns all users for a customer, filtered by optional search parameter
tags:
- Users
/api/v2/customers/{customerId}/users:
get:
operationId: CustomerUserController_searchV2_v2
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: page
required: false
in: query
schema:
minimum: 1
format: int64
type: number
- name: pageSize
required: false
in: query
schema:
minimum: 1
maximum: 150
format: int64
type: number
- name: search
required: false
in: query
schema:
minLength: 2
maxLength: 100
type:
- string
- 'null'
- name: includeRoles
required: false
in: query
schema:
type:
- array
- 'null'
items:
type: string
- name: excludeRoles
required: false
in: query
schema:
type:
- array
- 'null'
items:
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/SearchUsersResponseDto'
tags:
- Users
/api/v1/customers/{customerId}/users-lite:
get:
operationId: CustomerUserController_searchLite_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: search
required: false
in: query
description: searches first & last names, nickname, & email using a query
schema:
type: string
- name: integration
required: false
in: query
schema:
type:
- string
- 'null'
enum:
- cloud-assistant-cdr
- cloud-assistant-google
- cloud-assistant-microsoft-exchange
- cloud-assistant-microsoft-teams
- cloud-assistant-zoom
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserLite'
tags:
- Users
/api/v1/customers/{customerId}/users/by-ids:
get:
description: Retrieve multiple users from a customer by providing user IDs as repeated query parameters (userIds=id1&userIds=id2&userIds=id3). Maximum 50 IDs per request.
operationId: CustomerUserController_getUsersByIds_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userIds
required: true
in: query
schema:
minItems: 1
maxItems: 50
type: array
items:
type: string
format: objectid
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
summary: Get multiple users by their IDs
tags:
- Users
/api/v1/customers/{customerId}/users/lookup:
get:
operationId: CustomerUserController_lookupUser_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Identity'
tags:
- Users
/api/v1/customers/{customerId}/users/batch/lookup:
post:
description: Batch equivalent of GET users/lookup. Returns every distinct user under the customer who matches at least one of the given identities.
operationId: CustomerUserController_lookupUsersBatch_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LookupUsersBatchRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
users:
items:
$ref: '#/components/schemas/User'
type: array
required:
- users
type: object
summary: Look up multiple users by identities
tags:
- Users
/api/v1/customers/{customerId}/users/translate-timekeeper-ids:
post:
operationId: CustomerUserController_translateTimekeeperIdsToUserIds_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TranslateTimekeeperIdsRequestDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/TranslateTimekeeperIdsResponseDto'
summary: Translate timekeeper IDs to user IDs
tags:
- Users
/api/v1/customers/{customerId}/users/lookup/identity:
post:
deprecated: true
operationId: CustomerUserController_lookupUserIdentityType_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
properties:
email:
example: email address of the user
type: string
identityType:
example: Identity type of the user
type: string
required:
- email
- identityType
type: object
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/Identity'
summary: ''
tags:
- Users
/api/v2/customers/{customerId}/users/lookup/identity:
get:
operationId: CustomerUserController_lookupUserByIdentity_v2
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: type
required: true
in: query
description: type of the external identity
schema:
type: string
enum:
- aderant
- auth0
- azure
- email
- external-billing-system
- elite
- intercom
- juris
- cisco-cdr
- mixpanel
- phone
- phone-extension
- salesforce
- segment
- vitally
- walls
- zendesk
- zoom
- exchange
- user-principal-name
- cisco-webex
- ringcentral
- google
- name: value
required: true
in: query
description: external identifier
schema:
minLength: 1
maxLength: 256
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
tags:
- Users
/api/v1/customers/{customerId}/users/{userId}/identities:
get:
operationId: CustomerUserController_lookupUserIdentity_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Identity'
tags:
- Users
post:
operationId: CustomerUserController_createNewUserIdentity_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Identity'
responses:
'201':
description: ''
tags:
- Users
put:
operationId: CustomerUserController_updateUserIdentity_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Identity'
responses:
'200':
description: ''
tags:
- Users
/api/v1/customers/{customerId}/users/{userId}/super-delegate:
patch:
operationId: CustomerUserController_setUserSuperDelegateStatus_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetSuperDelegateDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
tags:
- Users
/api/v1/customers/{customerId}/users/{userId}:
get:
operationId: CustomerUserController_get_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/UserResponseDto'
summary: returns a user by its id
tags:
- Users
patch:
operationId: CustomerUserController_update_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
summary: updates a user
tags:
- Users
delete:
operationId: CustomerUserController_delete_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
- name: isForwarded
required: false
in: query
schema:
type:
- boolean
- 'null'
- name: originalPrincipalClientId
required: false
in: query
schema:
type:
- string
- 'null'
- name: originalPrincipalCustomerId
required: false
in: query
schema:
type:
- string
- 'null'
- name: originalPrincipalUserId
required: false
in: query
schema:
type:
- string
- 'null'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
summary: deletes a user
tags:
- Users
/api/v2/customers/{customerId}/users/{userId}:
patch:
operationId: CustomerUserController_updateV2_v2
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserV2Dto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
tags:
- Users
/api/v1/customers/{customerId}/users/{userId}/status:
patch:
operationId: CustomerUserController_updateStatus_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserStatusDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
tags:
- Users
/api/v1/customers/{customerId}/users/{userId}/identities/bulk:
post:
description: Adds multiple external identities to a specific user in a single request. Prevents duplicate identities with the same type and value.
operationId: CustomerUserController_createBulkUserIdentities_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
requestBody:
required: true
description: Array of identities to add to the user
content:
application/json:
schema:
$ref: '#/components/schemas/AddUserIdentitiesBulkDto'
responses:
'200':
description: All identities successfully added to user
summary: Add multiple identities to a user
tags:
- Users
/api/v1/customers/{customerId}/users/{userId}/email-aliases:
post:
description: Adds one or more email aliases to a user. Each alias must be unique within the customer (across both aliases and primary emails).
operationId: CustomerUserController_createEmailAliases_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddEmailAliasesRequestDto'
responses:
'201':
description: ''
summary: Add email aliases
tags:
- Users
delete:
description: Removes an email alias from a user.
operationId: CustomerUserController_deleteEmailAlias_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
- name: email
required: true
in: query
description: Email alias address to remove
schema:
format: email
example: alias@example.com
type: string
responses:
'200':
description: ''
summary: Remove an email alias
tags:
- Users
get:
description: Returns all email aliases for a user.
operationId: CustomerUserController_getEmailAliases_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EmailAliasesResponseDto'
summary: Get email aliases
tags:
- Users
/api/v1/customers/{customerId}/users/import:
post:
deprecated: true
operationId: CustomerUserController_deprecatedImport_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportOneUserDto'
responses:
'201':
description: ''
content:
application/json:
schema:
type: string
summary: ''
tags:
- Users
/api/v2/customers/{customerId}/users/import:
post:
operationId: CustomerUserController_importV2_v2
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportUserV2Dto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
tags:
- Users
/api/v1/customers/{customerId}/users/batch/import:
post:
deprecated: true
operationId: CustomerUserController_postUserData_v1
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
type: string
responses:
'201':
description: ''
content:
application/json:
schema:
type: string
summary: ''
tags:
- Users
/api/v2/customers/{customerId}/users/batch/import:
post:
deprecated: true
operationId: CustomerUserController_postUserDataV2_v2
parameters:
- name: customerId
required: true
in: path
description: customer's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportManyUserDto'
responses:
'201':
description: ''
content:
application/json:
schema:
type: string
summary: ''
tags:
- Users
/api/v1/users:
post:
operationId: UserController_create_v1
parameters:
- name: disableIdValidation
required: false
in: query
schema:
type:
- boolean
- 'null'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateUserV1Dto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
summary: creates a user for a given customer
tags:
- Users
/api/v1/users/lookup:
get:
deprecated: true
operationId: UserController_lookup_v1
parameters:
- name: type
required: true
in: query
description: type of the external identity
schema:
type: string
enum:
- aderant
- auth0
- azure
- email
- external-billing-system
- elite
- intercom
- juris
- cisco-cdr
- mixpanel
- phone
- phone-extension
- salesforce
- segment
- vitally
- walls
- zendesk
- zoom
- exchange
- user-principal-name
- cisco-webex
- ringcentral
- google
- name: value
required: true
in: query
description: external identifier
schema:
type: string
- name: customerId
required: false
in: query
description: optional customer id to bind the identity to
schema:
format: objectid
type:
- string
- 'null'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
summary: looks a user up by their external identity
tags:
- Users
/api/v1/users/on-auth:
post:
operationId: UserController_onAuth_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OnAuthRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OnAuthResponseDto'
summary: called by auth0 when tokens are generated
tags:
- Users
/api/v1/users/on-broker-auth:
post:
operationId: UserController_onBrokerAuth_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OnBrokerAuthRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OnAuthResponseDto'
summary: called by the auth0 token-exchange action during broker-based login
tags:
- Users
/api/v1/users/current:
get:
operationId: UserController_findCurrentUser_v1
parameters: []
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
summary: returns the current user
tags:
- Users
patch:
operationId: UserController_updateCurrent_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCurrentUserDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
summary: update current user's name, nickname or phone number
tags:
- Users
/api/v1/users/{userId}:
get:
operationId: UserController_get_v1
parameters:
- name: userId
required: true
in: path
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/User'
tags:
- Users
/api/v1/customers/{customerId}/users/delegates:
post:
description: Create an async job that will update user delegates
operationId: UsersController_updateUserDelegates_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserDelegatesDto'
responses:
'201':
description: ''
summary: ''
tags:
- Users
/api/v1/customers/{customerId}/users/delegates/batch:
post:
description: Create an async job that will update delegates for a batch of users.
operationId: UsersController_updateUserDelegatesBatch_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: isInitial
required: false
in: query
schema:
type: boolean
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateUserDelegatesBatchDto'
responses:
'201':
description: ''
summary: ''
tags:
- Users
components:
schemas:
AddUserIdentitiesBulkDto:
type: object
properties:
identities:
description: Array of identities to add to the user
example:
- type: email
value: user@example.com
- type: phone
value: '+1234567890'
- type: auth0
value: auth0|1234567890
minItems: 1
type: array
items:
$ref: '#/components/schemas/AddUserIdentityDto'
required:
- identities
CustomerDigest:
type: object
properties:
_id:
type: string
description: customer's id
format: objectid
fullName:
type: string
description: customer's full name
tenant:
description: customer's tenant information
allOf:
- $ref: '#/components/schemas/TenantDigest'
customerSegment:
type:
- string
- 'null'
description: customer's segment
enum:
- strategic
- enterprise
- mid-market
- smb
vertical:
type:
- string
- 'null'
description: customer's vertical
enum:
- legal
- accounting
required:
- _id
- fullName
- tenant
UpdateCurrentUserDto:
type: object
properties:
delegateIds:
description: if set, will update users who delegate their work to this user
type: array
items:
type: string
format: objectid
firstName:
type: string
description: if set, will update user's first name
email:
type: string
description: if set, will update user's email
example: user@example.com
format: email
jobTitle:
type: string
description: if set, will update user's job title
lastName:
type: string
description: if set, will update user's last name
nickname:
type: string
description: if set, will update user's nickname, can be empty
seniority:
type: string
description: if set, will update user's seniority level
department:
type: string
description: if set, will update user's department
office:
type: string
description: if set, will update user's office
subdepartment:
type: string
description: if set, will update user's subdepartment
pod:
type: string
description: if set, will update user's pod
phone:
type: string
description: user's phone external identity
Identity:
type: object
properties:
type:
description: type of the external identity
enum:
- aderant
- auth0
- azure
- email
- external-billing-system
- elite
- intercom
- juris
- cisco-cdr
- mixpanel
- phone
- phone-extension
- salesforce
- segment
- vitally
- walls
- zendesk
- zoom
- exchange
- user-principal-name
- cisco-webex
- ringcentral
- google
type: string
value:
type: string
description: external identifier
customerId:
type:
- string
- 'null'
description: optional customer id to bind the iden
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/laurel/refs/heads/main/openapi/laurel-users-api-openapi.yml