Laurel Entries API

The Entries API from Laurel — 56 operation(s) for entries.

Operations 68

GET /api/v1/customers/{customerId}/entries/release-pending #
PATCH /api/v1/customers/{customerId}/users/{userId}/entries/lock-status #
POST /api/v1/customers/{customerId}/users/{userId}/entries/lock-status #
PATCH /api/v1/customers/{customerId}/users/{userId}/entries/{entryExternalId} #
DELETE /api/v1/customers/{customerId}/users/{userId}/entries/{entryExternalId} #
POST /api/v1/customers/{customerId}/users/{userId}/entries/import-released #
POST /api/v1/customers/{customerId}/entries/import-unreleased #
PATCH /api/v1/customers/{customerId}/entries/external/{sourceSystem} #
DELETE /api/v1/customers/{customerId}/entries/external/{sourceSystem} #
GET /api/v3/public/customers/{customerId}/entries #
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/entries returns all entries for the current user and a given date #
POST /api/v1/entries creates an entry for the current user #
GET /api/v2/entries returns paginated entries for the current user based on provided filters #
POST /api/v2/entries creates an entry for the current user #
GET /api/v3/entries returns paginated entries for the current user based on provided filters #
POST /api/v3/entries creates an entry for the current user #
GET /api/v1/entries/initiatives #
POST /api/v1/entries/split splits a single source activity or entry into multiple draft entries, one per allocation #
POST /api/v1/entries/bulk Create multiple entries in bulk #
POST /api/v1/entries/merge merges a list of entries into one #
POST /api/v2/entries/merge #
PATCH /api/v1/entries/{entryId} updates an entry #
DELETE /api/v1/entries/{entryId} deletes an entry by id #
GET /api/v1/entries/{entryId} Returns the entry that corresponds with the provided id #
PATCH /api/v2/entries/{entryId} updates an entry #
DELETE /api/v2/entries/{entryId} deletes an entry by id #
PATCH /api/v3/entries/{entryId} updates an entry #
GET /api/v3/entries/{entryId} Returns the entry that corresponds with the provided id as EntryDto #
POST /api/v1/entries/{entryId}/release releases a single entry #
POST /api/v2/entries/{entryId}/release #
POST /api/v1/entries/{entryId}/unrelease unrelease a single existing entry #
POST /api/v1/entries/{entryId}/unmerge unmerges nested sources of an entry #
POST /api/v1/entries/{entryId}/dismiss-autostop dismisses the auto-stop strip for a timer entry that was auto-stopped at 12h #
GET /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/shares #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/share-eligibility Admin-scoped share eligibility check. Mirrors the user-scoped endpoint but allows an admin to evaluate eligibility on behalf of any user in their customer. #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/share Admin-scoped share. Only customer-level admins (UserAdmin, CustomerAdmin) holding `CustomerOwnUserAnyEntryWrite` are authorized — Laurel platform admins (`CustomerAnyUserAnyEntryWr #
GET /api/v1/entries/{entryId}/shares #
POST /api/v1/entries/{entryId}/share-eligibility Non-mutating eligibility check for the share modal. POST (not GET) so the recipient list travels in the request body — GET bodies may be stripped by intermediaries. #
POST /api/v1/entries/{entryId}/share Shares the source entry with the given recipients. Returns a breakdown of created, blocked, and failed recipients. Request-level failures throw 403/404/422. #
GET /api/v1/customers/{customerId}/users/{userId}/entries/{entryId} #
DELETE /api/v1/customers/{customerId}/users/{userId}/entries/{entryId} #
PATCH /api/v1/customers/{customerId}/users/{userId}/entries/{entryId} #
GET /api/v1/customers/{customerId}/entries #
GET /api/v2/customers/{customerId}/entries #
GET /api/v3/customers/{customerId}/entries #
GET /api/v4/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 #
POST /api/v1/customers/{customerId}/entries/bulk-release #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/release-succeeded #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/release-failed #
POST /api/v1/customers/{customerId}/entries/bulk-unrelease #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/unrelease #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/codes/assign-by-laurel #
DELETE /api/v1/customers/{customerId}/users/{userId}/entries/external/{entryExternalId} #
POST /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/undelete #
PATCH /api/v1/customers/{customerId}/users/{userId}/entries/{entryId}/override #
PATCH /api/v2/customers/{customerId}/users/{userId}/entries/{entryExternalId}/override #
POST /api/v1/customers/{customerId}/users/{userId}/entries/import-unreleased #
POST /api/v1/customers/{customerId}/users/{userId}/entries #
POST /api/v1/customers/{customerId}/users/{userId}/entries/import-temp #
GET /api/v1/customers/{customerId}/entries/external-id/{externalId} Look up a customer's time entry by externalId. Useful for diagnosing bi-directional sync issues without needing to know the userId. #

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-entries-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-entries-api-openapi.yml Raw ↑
openapi: 3.2.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:
          type:
          - boolean
          - 'null'
      - name: isFromShare
        required: false
        in: query
        description: When true, filter to recipient-copy entries. ORs with `isShared`.
        schema:
          type:
          - boolean
          - 'null'
      - 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:
          type:
          - string
          - 'null'
          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:
          type:
          - boolean
          - 'null'
      - name: isFromShare
        required: false
        in: query
        description: When true, filter to recipient-copy entries. ORs with `isShared`.
        schema:
          type:
          - boolean
          - 'null'
      - 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: ''
          c

# --- truncated at 32 KB (177 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/laurel/refs/heads/main/openapi/laurel-entries-api-openapi.yml