Laurel Public API
The Public API from Laurel — 32 operation(s) for public.
The Public API from Laurel — 32 operation(s) for public.
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-public-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 Public API
description: ''
version: '1'
contact: {}
servers: []
security:
- ApiBearerAuth: []
tags:
- name: Public
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:
- Public
/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:
- Public
/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:
- Public
/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:
- Public
/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:
- Public
/api/v1/oauth/token:
post:
operationId: OauthController_createServiceToken_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateServiceTokenRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceTokenResponseDto'
tags:
- Public
/api/v1/customers/{customerId}/clients/import:
post:
operationId: ClientsController_importClientV1_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportCustomerClientDto'
responses:
'201':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/clients/batch:
post:
operationId: ClientsController_importClientBatchV1_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/ImportCustomerClientsBatchDto'
responses:
'201':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/codes/import:
post:
operationId: CodesController_importCodeV1_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportCustomerCodeDto'
responses:
'201':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/codes/batch:
post:
operationId: CodesController_importCodeBatchV1_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/ImportCustomerCodesBatchDto'
responses:
'201':
description: ''
tags:
- Public
/api/v2/customers/{customerId}/initiatives/consolidated-batch:
post:
operationId: InitiativesController_importInitiativesConsolidatedBatchV2_v2
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/ImportCustomerInitiativesConsolidatedBatchDto'
responses:
'201':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/access:
post:
operationId: InitiativesController_setInitiativeAccessV1_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: initiativeExternalId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetCustomerInitiativeAccessDto'
responses:
'201':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/codes:
post:
operationId: InitiativesController_setInitiativeCodesV1_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: initiativeExternalId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetCustomerInitiativeCodesDto'
responses:
'201':
description: ''
tags:
- Public
delete:
operationId: InitiativesController_deleteInitiativeCodesV1_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: initiativeExternalId
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Public
/api/v1/validations/customers/{customerId}/initiatives/{initiativeExternalId}/rules:
post:
operationId: EntryValidationRulesController_setOneForInitiative_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: initiativeExternalId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SetInitiativeLevelEntryValidationRulesDto'
responses:
'201':
description: ''
tags:
- Public
/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:
- Public
/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:
- Public
/api/v1/customers/{customerId}/code-types/import:
post:
operationId: CustomerCodeTypeController_import_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportCustomerCodeTypeDto'
responses:
'201':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/initiatives/import:
post:
operationId: CustomerInitiativeController_import_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportCustomerInitiativeDto'
responses:
'201':
description: ''
tags:
- Public
/api/v2/customers/{customerId}/initiatives/{initiativeExternalId}/codes:
post:
deprecated: true
operationId: InitiativeCodesController_addInitiativeCodesV2_v2
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: initiativeExternalId
required: true
in: path
description: initiative's external id
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddInitiativeCodesRequestDto'
responses:
'201':
description: ''
summary: ''
tags:
- Public
/api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/code-types/{codeTypeExternalId}/codes:
post:
operationId: InitiativeCodesController_addInitiativeCodesByCodeType_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: initiativeExternalId
required: true
in: path
schema:
type: string
- name: codeTypeExternalId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddInitiativeCodesRequestDto'
responses:
'201':
description: ''
tags:
- Public
delete:
operationId: InitiativeCodesController_removeInitiativeCodesByCodeType_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: initiativeExternalId
required: true
in: path
schema:
type: string
- name: codeTypeExternalId
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/users/{userId}/code-types/{codeTypeId}/default-code:
get:
operationId: CustomerDefaultCodeController_findManyByCodeTypeIdForUser_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
- name: codeTypeId
required: true
in: path
description: code type's id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/DefaultCode'
tags:
- Public
post:
operationId: CustomerDefaultCodeController_createOneForUser_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: userId
required: true
in: path
description: user's id
schema:
format: objectid
type: string
- name: codeTypeId
required: true
in: path
description: code type's id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDefaultCodeDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/DefaultCode'
tags:
- Public
/api/v1/public/customers/{customerId}/entries/bulk-release:
post:
operationId: CustomerEntryPublicController_bulkRelease_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkReleaseEntryDto'
responses:
'202':
description: ''
tags:
- Public
/api/v1/public/customers/{customerId}/users/{userId}/entries/{entryId}/unrelease:
post:
operationId: CustomerEntryPublicController_unrelease_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: entryId
required: true
in: path
schema:
format: objectid
type: string
responses:
'200':
description: ''
tags:
- Public
/api/v1/public/customers/{customerId}/users/{userId}/entries/{entryId}/override:
patch:
operationId: CustomerEntryPublicController_overrideOneEntry_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: entryId
required: true
in: path
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OverrideOneEntryRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CustomerEntryResponseDto'
tags:
- Public
/api/v1/public/customers/{customerId}/users/{userId}/entries/{entryId}:
delete:
operationId: CustomerEntryPublicController_deleteOneEntry_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: entryId
required: true
in: path
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
tags:
- Public
/api/v1/customers/{customerId}/entries:
get:
deprecated: true
operationId: CustomerEntryController_findManyWithUpdatedAt_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: updatedAfter
required: true
in: query
description: the date after which the Entry was updated
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: updatedOnOrBefore
required: true
in: query
description: the date on or before which the Entry was updated
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CustomerEntryResponseDto'
summary: ''
tags:
- Public
/api/v2/customers/{customerId}/entries:
get:
operationId: CustomerEntryController_findManyWithPagination_v2
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: updatedAfter
required: true
in: query
description: the date after which the Entry was updated
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: updatedOnOrBefore
required: true
in: query
description: the date on or before which the Entry was updated
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: pageSize
required: false
in: query
description: max number of item in each page
schema:
minimum: 1
maximum: 100
format: int64
type: number
- name: cursor
required: false
in: query
description: cursor to start from
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
properties:
items:
items:
$ref: '#/components/schemas/CustomerEntryResponseDto'
type: array
nextCursor:
type: string
type: object
tags:
- Public
/api/v1/customers/{customerId}/entries/export:
get:
operationId: CustomerEntryController_export_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: releasedAfter
required: true
in: query
description: the date after which the Entry was released
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: releasedOnOrBefore
required: true
in: query
description: the date on or before which the Entry was released
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ExportEntryResponseDto'
tags:
- Public
/api/v2/customers/{customerId}/entries/export:
get:
operationId: CustomerEntryController_exportV2_v2
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
- name: releasedAfter
required: true
in: query
description: the date after which the Entry was released
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: releasedOnOrBefore
required: true
in: query
description: the date on or before which the Entry was released
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
responses:
'200':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/entries/release-succeeded/batch:
post:
operationId: CustomerEntryController_batchReleaseSuccess_v1
parameters:
- name: customerId
required: true
in: path
description: customer id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BatchReleaseSucceededRequestDto'
responses:
'207':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BatchReleaseSucceededResponseDto'
tags:
- Public
/api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/release-succeeded:
post:
operationId: CustomerEntryController_releaseSuccess_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: entryId
required: true
in: path
description: individual entry id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseSucceededRequestDto'
responses:
'200':
description: ''
tags:
- Public
/api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/release-failed:
post:
operationId: CustomerEntryController_releaseFailed_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: entryId
required: true
in: path
description: individual entry id
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReleaseFailedRequestDto'
responses:
'200':
description: ''
tags:
- Public
components:
schemas:
SharedFromResponseDto:
type: object
properties:
entryId:
type: string
description: id of the source entry that was shared
format: objectid
entryUserId:
type: string
description: id of the user who owns the source entry
format: objectid
sharerId:
type: string
description: id of the principal who performed the share action
format: objectid
sharerType:
description: capacity in which the sharer acted
enum:
- user
- admin
- delegate
type: string
sharedAt:
type: string
description: date and time the share was initiated
example: '2022-08-12T20:44:48Z'
format: iso-date-time
entryUserName:
type:
- string
- 'null'
description: display name of the entry owner; resolved at read-time, absent on failure
sharerName:
type:
- string
- 'null'
description: display name of the principal who performed the share; resolved at read-time, absent on failure
required:
- entryId
- entryUserId
- sharerId
- sharerType
- sharedAt
ServiceTokenResponseDto:
type: object
properties:
access_token:
type: string
description: access token
expires_in:
type: number
description: time to live of token in second
format: double
token_type:
type: string
description: token type
required:
- access_token
- expires_in
- token_type
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
NestedActivitySource:
type: object
properties:
_id:
type: string
description: source's id
format: objectid
type:
description: type of entry source
enum:
- activity
type: string
default: activity
creationMethod:
description: the creation method of the activity
enum:
- timer
- tracked
- user
type: string
category:
type:
- string
- 'null'
description: category of this activity, if any
technology:
type:
- string
- 'null'
description: technology of this activity, if any
source:
type:
- string
- 'null'
description: source of this activity (e.g. 'macos', 'windows'), if any
mechanism:
type:
- string
- 'null'
description: mechanism of this activity (e.g. browser used to access web app), if any
title:
type: string
description: activity's title
detail:
type: string
description: activity's detail
startedAt:
type: string
description: date and time this activity started
example: '2022-08-12T20:44:48Z'
format: iso-date-time
stoppedAt:
type: string
description: date and time this activity stopped
example: '2022-08-12T20:44:48Z'
format: iso-date-time
clusterId:
type:
- string
- 'null'
description: activity's clusterId
fromSuggestions:
type:
- boolean
- 'null'
description: whether this activity source was added from suggestions
fromThemes:
type:
- boolean
- 'null'
description: whether this activity source was added from themes
hasOverlap:
type:
- boolean
- 'null'
description: activity's overlap state
overlapTimeInSeconds:
type:
- number
- 'null'
description: activity's overlap time in seconds
format: int64
threadId:
type:
- string
- 'null'
description: activity's thread id
disableThreading:
type:
- boolean
- 'null'
description: if true, disables thread
# --- truncated at 32 KB (99 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/laurel/refs/heads/main/openapi/laurel-public-api-openapi.yml