Laurel Entries API
The Entries API from Laurel — 56 operation(s) for entries.
The Entries API from Laurel — 56 operation(s) for entries.
openapi: 3.0.0
info:
title: Identity Service Ably Entries API
description: ''
version: '1'
contact: {}
servers: []
security:
- ApiBearerAuth: []
tags:
- name: Entries
paths:
/api/v1/customers/{customerId}/entries/release-pending:
get:
operationId: EntriesController_getAllReleasePendingEntries_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReleasePendingTimekeeperIdDto'
tags:
- Entries
/api/v1/customers/{customerId}/users/{userId}/entries/lock-status:
patch:
operationId: EntriesController_updateEntriesLockStatus_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: userId
required: true
in: path
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateEntriesLockStatusRequestDto'
responses:
'202':
description: ''
tags:
- Entries
post:
operationId: CustomerEntryController_updateEntriesLockStatus_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/UpdateEntriesLockStatusRequestDto_2'
responses:
'202':
description: ''
tags:
- Entries
/api/v1/customers/{customerId}/users/{userId}/entries/{entryExternalId}:
patch:
operationId: EntriesController_updateReleasedEntry_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: userId
required: true
in: path
schema:
format: objectid
type: string
- name: entryExternalId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OverrideOneEntryRequestV2Dto'
responses:
'200':
description: ''
tags:
- Entries
delete:
operationId: EntriesController_deleteReleasedEntry_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: userId
required: true
in: path
schema:
format: objectid
type: string
- name: entryExternalId
required: true
in: path
schema:
type: string
responses:
'200':
description: ''
tags:
- Entries
/api/v1/customers/{customerId}/users/{userId}/entries/import-released:
post:
operationId: EntriesController_createReleasedEntry_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: userId
required: true
in: path
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportPmsEntryRequestDto'
responses:
'201':
description: ''
tags:
- Entries
/api/v1/customers/{customerId}/entries/import-unreleased:
post:
operationId: EntriesController_importUnreleasedEntry_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ImportUnreleasedEntriesRequestDto'
responses:
'202':
description: ''
tags:
- Entries
/api/v1/customers/{customerId}/entries/external/{sourceSystem}:
patch:
operationId: EntriesController_updateUnreleasedEntriesBulk_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: sourceSystem
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkUpdateUnreleasedEntriesRequestDto'
responses:
'202':
description: ''
tags:
- Entries
delete:
operationId: EntriesController_deleteUnreleasedEntriesBulk_v1
parameters:
- name: customerId
required: true
in: path
schema:
format: objectid
type: string
- name: sourceSystem
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkDeleteUnreleasedEntriesRequestDto'
responses:
'202':
description: ''
tags:
- Entries
/api/v3/public/customers/{customerId}/entries:
get:
operationId: CustomerEntryPublicController_findManyWithPaginationV3_v3
parameters:
- name: customerId
required: true
in: path
description: customer 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: 3
maxLength: 100
type: string
- name: userId
required: false
in: query
schema:
format: objectid
type: string
- name: userIds
required: false
in: query
schema:
type: array
items:
type: string
format: objectid
- name: status
required: false
in: query
schema:
type: string
enum:
- release-failed
- release-pending
- release-success
- release-success-locked
- release-validation-pending
- validation-failed
- validation-pending
- validation-success
- name: statuses
required: false
in: query
schema:
type: array
items:
type: string
enum:
- release-failed
- release-pending
- release-success
- release-success-locked
- release-validation-pending
- validation-failed
- validation-pending
- validation-success
- name: workDateStart
required: false
in: query
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: workDateEnd
required: false
in: query
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: workDates
required: false
in: query
schema:
example: '2022-08-12T20:44:48Z'
type: array
items:
type: string
format: iso-date-time
- name: updatedAfter
required: false
in: query
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: updatedOnOrBefore
required: false
in: query
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: initiativeId
required: false
in: query
schema:
format: objectid
type: string
- name: isDeleted
required: false
in: query
schema:
type: boolean
- name: initiativeType
required: false
in: query
schema:
type: string
enum:
- pms
- user
- name: billingType
required: false
in: query
description: the billing type to filter entries by
schema:
type: string
enum:
- billable
- non-billable
- name: clientId
required: false
in: query
description: the client to filter initiatives by
schema:
format: objectid
type: string
- name: allowEmptyTimers
required: false
in: query
schema:
type: boolean
- name: isShared
required: false
in: query
description: When true, filter to entries shared with at least one recipient.
schema:
nullable: true
type: boolean
- name: isFromShare
required: false
in: query
description: When true, filter to recipient-copy entries. ORs with `isShared`.
schema:
nullable: true
type: boolean
- name: timezoneNotSet
required: false
in: query
description: 'Union with `timezones[]`: when true, also include entries with `timezoneAtCreation === null`.'
schema:
type: boolean
- name: sortBy
required: false
in: query
description: the field to sort entries by
schema:
type: string
enum:
- workDate
- createdAt
- status
- name: sortOrder
required: false
in: query
description: the sort order
schema:
type: string
enum:
- asc
- desc
- name: timezones
required: false
in: query
description: Optional IANA timezone filter (e.g. "America/New_York").
schema:
type: array
items:
type: string
responses:
'200':
description: ''
tags:
- Entries
/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:
- Entries
/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:
- Entries
/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:
- Entries
/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:
- Entries
/api/v1/entries:
get:
operationId: EntryController_findManyByDate_v1
parameters:
- name: date
required: true
in: query
description: the date for which the entries should be returned
schema:
format: iso-date
example: '2022-08-12'
type: string
- name: startedBefore
required: true
in: query
description: the date to get activities that their started at time is less than this date
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: stoppedAfter
required: true
in: query
description: the date to get activities that their stopped at time is greater than this date
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/EntryResponseDto'
summary: returns all entries for the current user and a given date
tags:
- Entries
post:
deprecated: true
operationId: EntryController_createOneOld_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEntryOldDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
summary: creates an entry for the current user
tags:
- Entries
/api/v2/entries:
get:
operationId: EntryController_findManyWithPagination_v2
parameters:
- 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: 3
maxLength: 100
type: string
- name: userId
required: false
in: query
schema:
type: string
- name: status
required: false
in: query
schema:
type: string
enum:
- release-failed
- release-pending
- release-success
- release-success-locked
- release-validation-pending
- validation-failed
- validation-pending
- validation-success
- name: statuses
required: false
in: query
schema:
type: array
items:
type: string
enum:
- release-failed
- release-pending
- release-success
- release-success-locked
- release-validation-pending
- validation-failed
- validation-pending
- validation-success
- name: workDateStart
required: false
in: query
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: workDateEnd
required: false
in: query
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: workDates
required: false
in: query
schema:
example: '2022-08-12T20:44:48Z'
type: array
items:
type: string
format: iso-date-time
- name: updatedAfter
required: false
in: query
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: updatedOnOrBefore
required: false
in: query
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: initiativeId
required: false
in: query
schema:
format: objectid
type: string
- name: isDeleted
required: false
in: query
schema:
type: boolean
- name: initiativeType
required: false
in: query
schema:
type: string
enum:
- pms
- user
- name: billingType
required: false
in: query
description: the billing type to filter entries by
schema:
nullable: true
type: string
enum:
- billable
- non-billable
- name: clientId
required: false
in: query
description: the client to filter initiatives by
schema:
format: objectid
type: string
- name: allowEmptyTimers
required: false
in: query
schema:
type: boolean
- name: isShared
required: false
in: query
description: When true, filter to entries shared with at least one recipient.
schema:
nullable: true
type: boolean
- name: isFromShare
required: false
in: query
description: When true, filter to recipient-copy entries. ORs with `isShared`.
schema:
nullable: true
type: boolean
- name: timezoneNotSet
required: false
in: query
description: 'Union with `timezones[]`: when true, also include entries with `timezoneAtCreation === null`.'
schema:
type: boolean
- name: sortBy
required: false
in: query
description: the field to sort entries by
schema:
type: string
enum:
- workDate
- createdAt
- status
- name: sortOrder
required: false
in: query
description: the sort order
schema:
type: string
enum:
- asc
- desc
- name: userIds
required: false
in: query
schema:
type: array
items:
type: string
- name: timezones
required: false
in: query
description: Optional IANA timezone filter (e.g. "America/New_York"). Repeated query params for multi-select.
schema:
type: array
items:
type: string
responses:
'200':
description: ''
summary: returns paginated entries for the current user based on provided filters
tags:
- Entries
post:
operationId: EntryController_createOne_v2
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEntryRequestDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
summary: creates an entry for the current user
tags:
- Entries
/api/v3/entries:
get:
operationId: EntryController_findManyEntryDtoByDate_v3
parameters:
- name: userId
required: true
in: query
description: the user whose entries you are searching for
schema:
format: objectid
type: string
- name: customerId
required: true
in: query
description: the user's customer
schema:
format: objectid
type: string
- name: date
required: true
in: query
description: the date for which the entries should be returned
schema:
format: iso-date
example: '2022-08-12'
type: string
- name: startedBefore
required: true
in: query
description: the date to get activities that their started at time is less than this date
schema:
format: iso-date-time
example: '2022-08-12T20:44:48Z'
type: string
- name: stoppedAfter
required: true
in: query
description: the date to get activities that their stopped at time is greater than this date
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/EntryDto'
summary: returns paginated entries for the current user based on provided filters
tags:
- Entries
post:
operationId: EntryController_createOneEntryDto_v3
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEntryDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryDto'
summary: creates an entry for the current user
tags:
- Entries
/api/v1/entries/initiatives:
get:
operationId: EntryController_getInitiativeIdsByWorkDateRange_v1
parameters:
- name: startDate
required: true
in: query
description: inclusive lower bound for entry work dates
schema:
format: iso-date
example: '2022-08-12'
type: string
- name: endDate
required: true
in: query
description: inclusive upper bound for entry work dates
schema:
format: iso-date
example: '2022-08-12'
type: string
- name: customerId
required: true
in: query
description: the customer whose initiative ids we are getting
schema:
format: objectid
type: string
- name: userId
required: true
in: query
description: the user whose initiative ids we are getting
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
type: array
items:
type: object
tags:
- Entries
/api/v1/entries/split:
post:
operationId: EntryController_splitActivity_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SplitEntryRequestDto'
responses:
'201':
description: ''
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EntryResponseDto'
summary: splits a single source activity or entry into multiple draft entries, one per allocation
tags:
- Entries
/api/v1/entries/bulk:
post:
operationId: EntryController_createManyEntries_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BulkCreateEntryRequestDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BulkCreateEntryResponseDto'
summary: Create multiple entries in bulk
tags:
- Entries
/api/v1/entries/merge:
post:
operationId: EntryController_mergeManyEntry_v1
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MergeManyEntriesDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
summary: merges a list of entries into one
tags:
- Entries
/api/v2/entries/merge:
post:
operationId: EntryController_mergeManyEntryDto_v2
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MergeManyEntriesDto'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryDto'
tags:
- Entries
/api/v1/entries/{entryId}:
patch:
deprecated: true
operationId: EntryController_updateOneById_v1
parameters:
- 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/UpdateOneEntryDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
summary: updates an entry
tags:
- Entries
delete:
operationId: EntryController_deleteOneById_v1
parameters:
- name: entryId
required: true
in: path
description: individual entry id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
summary: deletes an entry by id
tags:
- Entries
get:
operationId: EntryController_findOneById_v1
parameters:
- name: entryId
required: true
in: path
description: individual entry id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
summary: Returns the entry that corresponds with the provided id
tags:
- Entries
/api/v2/entries/{entryId}:
patch:
operationId: EntryController_updateOneByIdV2_v2
parameters:
- 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/UpdateEntryRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
summary: updates an entry
tags:
- Entries
delete:
operationId: EntryController_deleteOneEntryDtoById_v2
parameters:
- name: entryId
required: true
in: path
description: individual entry id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryDto'
summary: deletes an entry by id
tags:
- Entries
/api/v3/entries/{entryId}:
patch:
operationId: EntryController_updateOneByIdRespondWithEntryDto_v3
parameters:
- 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/UpdateEntryRequestDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryDto'
summary: updates an entry
tags:
- Entries
get:
operationId: EntryController_getEntry_v3
parameters:
- name: entryId
required: true
in: path
description: individual entry id
schema:
format: objectid
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryDto'
summary: Returns the entry that corresponds with the provided id as EntryDto
tags:
- Entries
/api/v1/entries/{entryId}/release:
post:
operationId: EntryController_releaseOneById_v1
parameters:
- 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/ReleaseOneEntryDto'
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/EntryResponseDto'
summary: releases a single entry
tags:
- Entries
/api/v2/entries/{entryId}/release:
post:
operationId: EntryController_releaseEntryDtoById_v2
parameters:
- 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/ReleaseOneEntryDto'
responses:
'200':
description: ''
content:
applicatio
# --- truncated at 32 KB (176 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/laurel/refs/heads/main/openapi/laurel-entries-api-openapi.yml