Laurel Public API

The Public API from Laurel — 32 operation(s) for public.

Operations 35

GET /api/v1/customers/{customerId}/users returns all users for a customer, filtered by optional search parameter #
GET /api/v1/customers/{customerId}/users/lookup #
POST /api/v1/customers/{customerId}/users/batch/lookup Look up multiple users by identities #
GET /api/v1/customers/{customerId}/users/{userId} returns a user by its id #
PATCH /api/v2/customers/{customerId}/users/{userId} #
POST /api/v1/oauth/token #
POST /api/v1/customers/{customerId}/clients/import #
POST /api/v1/customers/{customerId}/clients/batch #
POST /api/v1/customers/{customerId}/codes/import #
POST /api/v1/customers/{customerId}/codes/batch #
POST /api/v2/customers/{customerId}/initiatives/consolidated-batch #
POST /api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/access #
POST /api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/codes #
DELETE /api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/codes #
POST /api/v1/validations/customers/{customerId}/initiatives/{initiativeExternalId}/rules #
POST /api/v1/customers/{customerId}/users/delegates #
POST /api/v1/customers/{customerId}/users/delegates/batch #
POST /api/v1/customers/{customerId}/code-types/import #
POST /api/v1/customers/{customerId}/initiatives/import #
POST /api/v2/customers/{customerId}/initiatives/{initiativeExternalId}/codes #
POST /api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/code-types/{codeTypeExternalId}/codes #
DELETE /api/v1/customers/{customerId}/initiatives/{initiativeExternalId}/code-types/{codeTypeExternalId}/codes #
GET /api/v1/customers/{customerId}/users/{userId}/code-types/{codeTypeId}/default-code #
POST /api/v1/customers/{customerId}/users/{userId}/code-types/{codeTypeId}/default-code #
POST /api/v1/public/customers/{customerId}/entries/bulk-release #
POST /api/v1/public/customers/{customerId}/users/{userId}/entries/{entryId}/unrelease #
PATCH /api/v1/public/customers/{customerId}/users/{userId}/entries/{entryId}/override #
DELETE /api/v1/public/customers/{customerId}/users/{userId}/entries/{entryId} #
GET /api/v1/customers/{customerId}/entries #
GET /api/v2/customers/{customerId}/entries #
GET /api/v1/customers/{customerId}/entries/export #
GET /api/v2/customers/{customerId}/entries/export #
POST /api/v1/customers/{customerId}/entries/release-succeeded/batch #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/release-succeeded #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/release-failed #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/laurel-public-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

laurel-public-api-openapi.yml Raw ↑
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