---
title: "Get bookings"
method: GET
path: "/api/v2/bookings"
tags: ["Bookings"]
---

# Get bookings

`GET /api/v2/bookings`

List bookings with optional filters and pagination.

## Query parameters

- `filter` union — Filter schema for `booking` list endpoints — pass a single condition or a logical group.
  - FilterBooking — Filters bookings (scheduled allocations of people to work or time-off events).
    - `before` union — Filter bookings that overlap with or end before a given date.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` Before — unresolved $ref
        - `contains` Before — unresolved $ref
        - `not_contain` Before — unresolved $ref
        - `not_eq` Before — unresolved $ref
      - Before — unresolved $ref
    - `origin_id` union — Filter by the origin booking ID (the source booking this was created from).
      - OriginId — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` OriginId — unresolved $ref
        - `not_contain` OriginId — unresolved $ref
        - `not_eq` OriginId — unresolved $ref
        - `eq` OriginId — unresolved $ref
    - `autotracking` union — Filter by whether the booking uses automatic time tracking.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` Autotracking — unresolved $ref
        - `eq` Autotracking — unresolved $ref
        - `contains` Autotracking — unresolved $ref
        - `not_contain` Autotracking — unresolved $ref
      - Autotracking — unresolved $ref
    - `ended_on` union — Filter by booking end date range (ended_on).
      - EndedOn — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` EndedOn — unresolved $ref
        - `not_contain` EndedOn — unresolved $ref
        - `eq` EndedOn — unresolved $ref
        - `contains` EndedOn — unresolved $ref
    - `rejected_at` union — Filter by rejection date range (rejected_at).
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` RejectedAt — unresolved $ref
        - `contains` RejectedAt — unresolved $ref
        - `not_contain` RejectedAt — unresolved $ref
        - `not_eq` RejectedAt — unresolved $ref
      - RejectedAt — unresolved $ref
    - `person_id` union — Filter by the booked person.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` PersonId — unresolved $ref
        - `eq` PersonId — unresolved $ref
        - `contains` PersonId — unresolved $ref
        - `not_contain` PersonId — unresolved $ref
      - PersonId — unresolved $ref
    - `approved_at` union — Filter by approval date range (approved_at).
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` ApprovedAt — unresolved $ref
        - `not_contain` ApprovedAt — unresolved $ref
        - `eq` ApprovedAt — unresolved $ref
        - `not_eq` ApprovedAt — unresolved $ref
      - ApprovedAt — unresolved $ref
    - `draft` union — Filter by whether the booking is a draft (tentative) or confirmed.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` Draft — unresolved $ref
        - `contains` Draft — unresolved $ref
        - `eq` Draft — unresolved $ref
        - `not_eq` Draft — unresolved $ref
      - Draft — unresolved $ref
    - `tags` union — Filter by tag.
      - Tags — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` Tags — unresolved $ref
        - `contains` Tags — unresolved $ref
        - `eq` Tags — unresolved $ref
        - `not_contain` Tags — unresolved $ref
    - `approval_status` union — Filter by approval status. Use eq/not_eq to match a specific approval status value.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` ApprovalStatus — unresolved $ref
        - `not_contain` ApprovalStatus — unresolved $ref
        - `not_eq` ApprovalStatus — unresolved $ref
        - `eq` ApprovalStatus — unresolved $ref
      - ApprovalStatus — unresolved $ref
    - `booking_type` union — Filter by booking type — project booking or absence booking.
      - BookingType — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` BookingType — unresolved $ref
        - `contains` BookingType — unresolved $ref
        - `not_eq` BookingType — unresolved $ref
        - `eq` BookingType — unresolved $ref
    - `approver_id` union — Filter by the person who approved the booking.
      - ApproverId — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` ApproverId — unresolved $ref
        - `not_eq` ApproverId — unresolved $ref
        - `contains` ApproverId — unresolved $ref
        - `eq` ApproverId — unresolved $ref
    - `project_type` union — Filter by project type (e.g. billable or internal).
      - ProjectType — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` ProjectType — unresolved $ref
        - `not_eq` ProjectType — unresolved $ref
        - `not_contain` ProjectType — unresolved $ref
        - `contains` ProjectType — unresolved $ref
    - `company_id` union — Filter by the client company associated with the booking's service.
      - CompanyId — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` CompanyId — unresolved $ref
        - `contains` CompanyId — unresolved $ref
        - `not_eq` CompanyId — unresolved $ref
        - `not_contain` CompanyId — unresolved $ref
    - `started_on` union — Filter by booking start date range (started_on).
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` StartedOn — unresolved $ref
        - `contains` StartedOn — unresolved $ref
        - `not_contain` StartedOn — unresolved $ref
        - `not_eq` StartedOn — unresolved $ref
      - StartedOn — unresolved $ref
    - `project_id` union — Filter by the associated project.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` ProjectId — unresolved $ref
        - `eq` ProjectId — unresolved $ref
        - `not_contain` ProjectId — unresolved $ref
        - `contains` ProjectId — unresolved $ref
      - ProjectId — unresolved $ref
    - `updated_at` union — Filter by booking last updated date range (updated_at).
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` UpdatedAt — unresolved $ref
        - `not_eq` UpdatedAt — unresolved $ref
        - `not_contain` UpdatedAt — unresolved $ref
        - `contains` UpdatedAt — unresolved $ref
      - UpdatedAt — unresolved $ref
    - `created_at` union — Filter by booking creation date range (created_at).
      - CreatedAt — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` CreatedAt — unresolved $ref
        - `not_contain` CreatedAt — unresolved $ref
        - `eq` CreatedAt — unresolved $ref
        - `contains` CreatedAt — unresolved $ref
    - `event_id` union — Filter by the ID of the absence event category (e.g. vacation, sick leave).
      - EventId — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` EventId — unresolved $ref
        - `not_eq` EventId — unresolved $ref
        - `not_contain` EventId — unresolved $ref
        - `eq` EventId — unresolved $ref
    - `people_custom_fields` union — Filter by custom field values on the booked person.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` PeopleCustomFields — unresolved $ref
        - `eq` PeopleCustomFields — unresolved $ref
        - `contains` PeopleCustomFields — unresolved $ref
        - `not_contain` PeopleCustomFields — unresolved $ref
      - PeopleCustomFields — unresolved $ref
    - `canceled_at` union — Filter by cancellation date range (canceled_at).
      - CanceledAt — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` CanceledAt — unresolved $ref
        - `contains` CanceledAt — unresolved $ref
        - `eq` CanceledAt — unresolved $ref
        - `not_eq` CanceledAt — unresolved $ref
    - `canceled` union — Filter by whether the booking has been canceled (true = canceled, false = not canceled).
      - Canceled — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` Canceled — unresolved $ref
        - `contains` Canceled — unresolved $ref
        - `eq` Canceled — unresolved $ref
        - `not_contain` Canceled — unresolved $ref
    - `task_id` union — Filter by the associated task.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` TaskId — unresolved $ref
        - `contains` TaskId — unresolved $ref
        - `eq` TaskId — unresolved $ref
        - `not_contain` TaskId — unresolved $ref
      - TaskId — unresolved $ref
    - `id` union — Filter by booking ID.
      - Id — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` Id — unresolved $ref
        - `not_contain` Id — unresolved $ref
        - `contains` Id — unresolved $ref
        - `not_eq` Id — unresolved $ref
    - `budget_id` union — Filter by the ID of the budget (deal) associated with the booking's service.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` BudgetId — unresolved $ref
        - `eq` BudgetId — unresolved $ref
        - `contains` BudgetId — unresolved $ref
        - `not_eq` BudgetId — unresolved $ref
      - BudgetId — unresolved $ref
    - `custom_fields` union — Filter by custom field values.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` CustomFields — unresolved $ref
        - `contains` CustomFields — unresolved $ref
        - `eq` CustomFields — unresolved $ref
        - `not_eq` CustomFields — unresolved $ref
      - CustomFields — unresolved $ref
    - `with_draft` union — When true, includes draft (tentative) bookings in results alongside confirmed bookings.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` WithDraft — unresolved $ref
        - `not_eq` WithDraft — unresolved $ref
        - `eq` WithDraft — unresolved $ref
        - `not_contain` WithDraft — unresolved $ref
      - WithDraft — unresolved $ref
    - `stage_type` union — Filter by the stage type of the booking's associated deal.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` StageType — unresolved $ref
        - `eq` StageType — unresolved $ref
        - `not_contain` StageType — unresolved $ref
        - `not_eq` StageType — unresolved $ref
      - StageType — unresolved $ref
    - `last_activity_at` union — Filter by last activity date range (last_activity_at).
      - LastActivityAt — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` LastActivityAt — unresolved $ref
        - `contains` LastActivityAt — unresolved $ref
        - `not_contain` LastActivityAt — unresolved $ref
        - `not_eq` LastActivityAt — unresolved $ref
    - `billing_type_id` union — Filter by billing type.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` BillingTypeId — unresolved $ref
        - `eq` BillingTypeId — unresolved $ref
        - `not_eq` BillingTypeId — unresolved $ref
        - `contains` BillingTypeId — unresolved $ref
      - BillingTypeId — unresolved $ref
    - `person_subsidiary_id` union — Filter by the subsidiary the booked person belongs to.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` PersonSubsidiaryId — unresolved $ref
        - `not_eq` PersonSubsidiaryId — unresolved $ref
        - `eq` PersonSubsidiaryId — unresolved $ref
        - `contains` PersonSubsidiaryId — unresolved $ref
      - PersonSubsidiaryId — unresolved $ref
    - `person_type` union — Filter by the type of person assigned (e.g. employee, contractor, placeholder).
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` PersonType — unresolved $ref
        - `not_contain` PersonType — unresolved $ref
        - `eq` PersonType — unresolved $ref
        - `not_eq` PersonType — unresolved $ref
      - PersonType — unresolved $ref
    - `after` union — Filter bookings that overlap with or start after a given date.
      - After — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `eq` After — unresolved $ref
        - `not_contain` After — unresolved $ref
        - `contains` After — unresolved $ref
        - `not_eq` After — unresolved $ref
    - `status` union — Filter by booking status (e.g. pending, approved, rejected).
      - Status — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_eq` Status — unresolved $ref
        - `not_contain` Status — unresolved $ref
        - `eq` Status — unresolved $ref
        - `contains` Status — unresolved $ref
    - `resource_request_id` union — Filter by the associated resource request.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` ResourceRequestId — unresolved $ref
        - `not_eq` ResourceRequestId — unresolved $ref
        - `eq` ResourceRequestId — unresolved $ref
        - `contains` ResourceRequestId — unresolved $ref
      - ResourceRequestId — unresolved $ref
    - `note` union — Filter by booking note text content.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `not_contain` Note — unresolved $ref
        - `not_eq` Note — unresolved $ref
        - `eq` Note — unresolved $ref
        - `contains` Note — unresolved $ref
      - Note — unresolved $ref
  - object — A logical filter group — combine multiple conditions with the `$op` operator.
    - `$op` 'or' | 'and', required — Logical operator combining conditions in this group. `or` matches records satisfying any condition; `and` requires all conditions to match.
- `sort` string[]

## Headers

- `X-Organization-Id` string, required

## Response `200`

Collection booking

---

[API](https://skmtc.net/productive/apis/api-documentation.md) · [All operations](https://skmtc.net/productive/apis/api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/productive/api-documentation/revisions/7764b2b9fcc4/schema)
