---
title: "Get people"
method: GET
path: "/api/v2/people"
tags: ["People"]
---

# Get people

`GET /api/v2/people`

List people in the organization. Supports filtering by name, email, type, status, team, company, manager, tags, and custom fields.

## Query parameters

- `filter` union — Filter schema for `person` list endpoints — pass a single condition or a logical group.
  - 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.
  - FilterPerson — Filters people by various criteria such as name, email, role, team, tags, status, and date fields.
    - `first_name` union — Filter by first name (text search).
      - FirstName — unresolved $ref
      - object — Operator object for filtering by first_name.
        - `contains` FirstName — unresolved $ref
        - `not_eq` FirstName — unresolved $ref
        - `not_contain` FirstName — unresolved $ref
        - `eq` FirstName — unresolved $ref
    - `project_id` union — Filter by project ID — returns people who are members of the specified project.
      - ProjectId — unresolved $ref
      - object — Operator object for filtering by project_id.
        - `not_contain` ProjectId — unresolved $ref
        - `not_eq` ProjectId — unresolved $ref
        - `eq` ProjectId — unresolved $ref
        - `contains` ProjectId — unresolved $ref
    - `approval_workflow_id` union — Filter by approval workflow ID — returns people who have approvals in the specified workflow.
      - ApprovalWorkflowId — unresolved $ref
      - object — Operator object for filtering by approval_workflow_id.
        - `not_contain` ApprovalWorkflowId — unresolved $ref
        - `contains` ApprovalWorkflowId — unresolved $ref
        - `not_eq` ApprovalWorkflowId — unresolved $ref
        - `eq` ApprovalWorkflowId — unresolved $ref
    - `id` union — Filter by person ID.
      - object — Operator object for filtering by id.
        - `eq` Id — unresolved $ref
        - `not_eq` Id — unresolved $ref
        - `contains` Id — unresolved $ref
        - `not_contain` Id — unresolved $ref
      - Id — unresolved $ref
    - `query` union — Text search filter — matches by full name (exact) or contains partial name.
      - Query — unresolved $ref
      - object — Operator object for filtering by query.
        - `not_eq` Query — unresolved $ref
        - `eq` Query — unresolved $ref
        - `not_contain` Query — unresolved $ref
        - `contains` Query — unresolved $ref
    - `status` union — Filter by person status: 1 (active) or 2 (deactivated).
      - Status — unresolved $ref
      - object — Operator object for filtering by status.
        - `not_contain` Status — unresolved $ref
        - `not_eq` Status — unresolved $ref
        - `contains` Status — unresolved $ref
        - `eq` Status — unresolved $ref
    - `company_id` union — Filter by company (client) ID.
      - CompanyId — unresolved $ref
      - object — Operator object for filtering by company_id.
        - `not_eq` CompanyId — unresolved $ref
        - `contains` CompanyId — unresolved $ref
        - `eq` CompanyId — unresolved $ref
        - `not_contain` CompanyId — unresolved $ref
    - `full_query` union — Full text search filter — matches against name and other indexed fields.
      - object — Operator object for filtering by full_query.
        - `not_contain` FullQuery — unresolved $ref
        - `eq` FullQuery — unresolved $ref
        - `not_eq` FullQuery — unresolved $ref
        - `contains` FullQuery — unresolved $ref
      - FullQuery — unresolved $ref
    - `subsidiary_id` union — Filter by the person's subsidiary.
      - object — Operator object for filtering by subsidiary_id.
        - `contains` SubsidiaryId — unresolved $ref
        - `not_contain` SubsidiaryId — unresolved $ref
        - `not_eq` SubsidiaryId — unresolved $ref
        - `eq` SubsidiaryId — unresolved $ref
      - SubsidiaryId — unresolved $ref
    - `bookings_before` union — Filter by bookings_before date — returns people with bookings starting on or before this date.
      - object — Operator object for filtering by bookings_before.
        - `not_contain` BookingsBefore — unresolved $ref
        - `contains` BookingsBefore — unresolved $ref
        - `not_eq` BookingsBefore — unresolved $ref
        - `eq` BookingsBefore — unresolved $ref
      - BookingsBefore — unresolved $ref
    - `bookings_after` union — Filter by bookings_after date — returns people with bookings ending on or after this date.
      - BookingsAfter — unresolved $ref
      - object — Operator object for filtering by bookings_after.
        - `eq` BookingsAfter — unresolved $ref
        - `not_contain` BookingsAfter — unresolved $ref
        - `not_eq` BookingsAfter — unresolved $ref
        - `contains` BookingsAfter — unresolved $ref
    - `custom_role_id` union — Filter by custom role (permission set) ID.
      - CustomRoleId — unresolved $ref
      - object — Operator object for filtering by custom_role_id.
        - `eq` CustomRoleId — unresolved $ref
        - `contains` CustomRoleId — unresolved $ref
        - `not_eq` CustomRoleId — unresolved $ref
        - `not_contain` CustomRoleId — unresolved $ref
    - `service_type_id` union — Filter by service type ID — returns people assigned to the specified service types.
      - object — Operator object for filtering by service_type_id.
        - `not_eq` ServiceTypeId — unresolved $ref
        - `not_contain` ServiceTypeId — unresolved $ref
        - `eq` ServiceTypeId — unresolved $ref
        - `contains` ServiceTypeId — unresolved $ref
      - ServiceTypeId — unresolved $ref
    - `title` union — Filter by job title (text search).
      - Title — unresolved $ref
      - object — Operator object for filtering by title.
        - `not_contain` Title — unresolved $ref
        - `eq` Title — unresolved $ref
        - `not_eq` Title — unresolved $ref
        - `contains` Title — unresolved $ref
    - `joined_at` union — Filter by the date the person joined the organization (joined_at).
      - JoinedAt — unresolved $ref
      - object — Operator object for filtering by joined_at.
        - `eq` JoinedAt — unresolved $ref
        - `not_eq` JoinedAt — unresolved $ref
        - `not_contain` JoinedAt — unresolved $ref
        - `contains` JoinedAt — unresolved $ref
    - `last_name` union — Filter by last name (text search).
      - LastName — unresolved $ref
      - object — Operator object for filtering by last_name.
        - `not_contain` LastName — unresolved $ref
        - `contains` LastName — unresolved $ref
        - `not_eq` LastName — unresolved $ref
        - `eq` LastName — unresolved $ref
    - `accessible_filter_id` union — Filter by accessible filter ID — returns people who are members of the specified saved filter.
      - object — Operator object for filtering by accessible_filter_id.
        - `not_eq` AccessibleFilterId — unresolved $ref
        - `eq` AccessibleFilterId — unresolved $ref
        - `not_contain` AccessibleFilterId — unresolved $ref
        - `contains` AccessibleFilterId — unresolved $ref
      - AccessibleFilterId — unresolved $ref
    - `holiday_calendar_id` union — Filter by the person's assigned holiday calendar.
      - object — Operator object for filtering by holiday_calendar_id.
        - `contains` HolidayCalendarId — unresolved $ref
        - `not_contain` HolidayCalendarId — unresolved $ref
        - `eq` HolidayCalendarId — unresolved $ref
        - `not_eq` HolidayCalendarId — unresolved $ref
      - HolidayCalendarId — unresolved $ref
    - `timesheet_submission_disabled` union — Filter by whether timesheet submission is disabled for the person.
      - TimesheetSubmissionDisabled — unresolved $ref
      - object — Operator object for filtering by timesheet_submission_disabled.
        - `contains` TimesheetSubmissionDisabled — unresolved $ref
        - `not_eq` TimesheetSubmissionDisabled — unresolved $ref
        - `not_contain` TimesheetSubmissionDisabled — unresolved $ref
        - `eq` TimesheetSubmissionDisabled — unresolved $ref
    - `last_activity_at` union — Filter by the date of the person's last activity (last_activity_at).
      - LastActivityAt — unresolved $ref
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` LastActivityAt — unresolved $ref
        - `eq` LastActivityAt — unresolved $ref
        - `not_contain` LastActivityAt — unresolved $ref
        - `not_eq` LastActivityAt — unresolved $ref
    - `two_factor_auth` union — Filter by two-factor authentication status.
      - object — Operator object for filtering by two_factor_auth.
        - `not_contain` TwoFactorAuth — unresolved $ref
        - `contains` TwoFactorAuth — unresolved $ref
        - `eq` TwoFactorAuth — unresolved $ref
        - `not_eq` TwoFactorAuth — unresolved $ref
      - TwoFactorAuth — unresolved $ref
    - `approval_policy_id` union — Filter by the person's assigned approval policy.
      - ApprovalPolicyId — unresolved $ref
      - object — Operator object for filtering by approval_policy_id.
        - `not_eq` ApprovalPolicyId — unresolved $ref
        - `eq` ApprovalPolicyId — unresolved $ref
        - `not_contain` ApprovalPolicyId — unresolved $ref
        - `contains` ApprovalPolicyId — unresolved $ref
    - `jump_query` union — Quick jump search filter — matches against name for navigation shortcuts.
      - object — Operator object for filtering by jump_query.
        - `contains` JumpQuery — unresolved $ref
        - `eq` JumpQuery — unresolved $ref
        - `not_eq` JumpQuery — unresolved $ref
        - `not_contain` JumpQuery — unresolved $ref
      - JumpQuery — unresolved $ref
    - `virtual` union — Filter by virtual status — whether this is a virtual person record.
      - object — Operator object for filtering by virtual.
        - `not_contain` Virtual — unresolved $ref
        - `not_eq` Virtual — unresolved $ref
        - `contains` Virtual — unresolved $ref
        - `eq` Virtual — unresolved $ref
      - Virtual — unresolved $ref
    - `created_at` union — Filter by creation date range (created_at).
      - object — Operator object for filtering by created_at.
        - `contains` CreatedAt — unresolved $ref
        - `not_contain` CreatedAt — unresolved $ref
        - `not_eq` CreatedAt — unresolved $ref
        - `eq` CreatedAt — unresolved $ref
      - CreatedAt — unresolved $ref
    - `subscribable_type` union — Filter by subscribable type — the resource type to match subscribers against.
      - SubscribableType — unresolved $ref
      - object — Operator object for filtering by subscribable_type.
        - `not_contain` SubscribableType — unresolved $ref
        - `contains` SubscribableType — unresolved $ref
        - `not_eq` SubscribableType — unresolved $ref
        - `eq` SubscribableType — unresolved $ref
    - `service_id` union — Filter by service ID — returns people who can track time on the specified service.
      - object — Operator object for filtering by service_id.
        - `not_contain` ServiceId — unresolved $ref
        - `contains` ServiceId — unresolved $ref
        - `not_eq` ServiceId — unresolved $ref
        - `eq` ServiceId — unresolved $ref
      - ServiceId — unresolved $ref
    - `permissions` union — Filter by permission set — returns people with the specified permission slugs.
      - Permissions — unresolved $ref
      - object — Operator object for filtering by permissions.
        - `contains` Permissions — unresolved $ref
        - `not_contain` Permissions — unresolved $ref
        - `not_eq` Permissions — unresolved $ref
        - `eq` Permissions — unresolved $ref
    - `shared_seat` union
      - object
        - `eq` SharedSeat — unresolved $ref
        - `not_eq` SharedSeat — unresolved $ref
      - SharedSeat — unresolved $ref
    - `archived_at` union — Filter by archival date range (archived_at).
      - object — Operator object for filtering by archived_at.
        - `contains` ArchivedAt — unresolved $ref
        - `not_contain` ArchivedAt — unresolved $ref
        - `eq` ArchivedAt — unresolved $ref
        - `not_eq` ArchivedAt — unresolved $ref
      - ArchivedAt — unresolved $ref
    - `person_type` union — Filter by person type: user (can log in), contact (external), placeholder (resource planning).
      - object — Operator object for filtering by person_type.
        - `not_contain` PersonType — unresolved $ref
        - `not_eq` PersonType — unresolved $ref
        - `contains` PersonType — unresolved $ref
        - `eq` PersonType — unresolved $ref
      - PersonType — unresolved $ref
    - `accessible_deal_id` union — Filter by accessible deal ID — returns people who have access to the specified deal.
      - object — Operator object for filtering by accessible_deal_id.
        - `eq` AccessibleDealId — unresolved $ref
        - `contains` AccessibleDealId — unresolved $ref
        - `not_contain` AccessibleDealId — unresolved $ref
        - `not_eq` AccessibleDealId — unresolved $ref
      - AccessibleDealId — unresolved $ref
    - `autotracking` union — Filter by autotracking (automatic time tracking) status.
      - Autotracking — unresolved $ref
      - object — Operator object for filtering by autotracking.
        - `not_eq` Autotracking — unresolved $ref
        - `eq` Autotracking — unresolved $ref
        - `contains` Autotracking — unresolved $ref
        - `not_contain` Autotracking — unresolved $ref
    - `accessible_project_id` union — Filter by accessible project ID — returns people who have access to the specified project.
      - object — Operator object for filtering by accessible_project_id.
        - `not_eq` AccessibleProjectId — unresolved $ref
        - `not_contain` AccessibleProjectId — unresolved $ref
        - `eq` AccessibleProjectId — unresolved $ref
        - `contains` AccessibleProjectId — unresolved $ref
      - AccessibleProjectId — unresolved $ref
    - `custom_fields` union — Filter by custom field values.
      - CustomFields — unresolved $ref
      - object — Operator object for filtering by custom_fields.
        - `not_contain` CustomFields — unresolved $ref
        - `contains` CustomFields — unresolved $ref
        - `eq` CustomFields — unresolved $ref
        - `not_eq` CustomFields — unresolved $ref
    - `fuzzy_dates` union — Fuzzy date filter for approximate date matching.
      - FuzzyDates — unresolved $ref
      - object — Operator object for filtering by fuzzy_dates.
        - `not_eq` FuzzyDates — unresolved $ref
        - `eq` FuzzyDates — unresolved $ref
    - `deactivated_at` union — Filter by deactivation date range (deactivated_at).
      - DeactivatedAt — unresolved $ref
      - object — Operator object for filtering by deactivated_at.
        - `eq` DeactivatedAt — unresolved $ref
        - `contains` DeactivatedAt — unresolved $ref
        - `not_eq` DeactivatedAt — unresolved $ref
        - `not_contain` DeactivatedAt — unresolved $ref
    - `fuzzy_people` union — Fuzzy people filter for approximate person name matching.
      - object — Operator object for filtering by fuzzy_people.
        - `not_eq` FuzzyPeople — unresolved $ref
        - `contains` FuzzyPeople — unresolved $ref
        - `eq` FuzzyPeople — unresolved $ref
        - `not_contain` FuzzyPeople — unresolved $ref
      - FuzzyPeople — unresolved $ref
    - `hrm_type_id` union — Filter by HRM type: 1 for employee (time tracker), 2 for contact.
      - HrmTypeId — unresolved $ref
      - object — Operator object for filtering by hrm_type_id.
        - `eq` HrmTypeId — unresolved $ref
        - `contains` HrmTypeId — unresolved $ref
        - `not_contain` HrmTypeId — unresolved $ref
        - `not_eq` HrmTypeId — unresolved $ref
    - `email` union — Filter by email address (text search).
      - Email — unresolved $ref
      - object — Operator object for filtering by email.
        - `not_contain` Email — unresolved $ref
        - `eq` Email — unresolved $ref
        - `not_eq` Email — unresolved $ref
        - `contains` Email — unresolved $ref
    - `project_watching` union — Filter by project_watching — returns people who are auto-subscribed to the specified project.
      - object — Operator object for filtering by project_watching.
        - `eq` ProjectWatching — unresolved $ref
        - `contains` ProjectWatching — unresolved $ref
        - `not_contain` ProjectWatching — unresolved $ref
        - `not_eq` ProjectWatching — unresolved $ref
      - ProjectWatching — unresolved $ref
    - `agent` union — Filter by whether the person is an AI agent.
      - object — Operator object — supports eq, not_eq, contains, not_contain.
        - `contains` Agent — unresolved $ref
        - `eq` Agent — unresolved $ref
        - `not_eq` Agent — unresolved $ref
        - `not_contain` Agent — unresolved $ref
      - Agent — unresolved $ref
    - `offboarding_status` union — Filter by offboarding status (e.g. active, in-progress).
      - OffboardingStatus — unresolved $ref
      - object — Operator object for filtering by offboarding_status.
        - `not_eq` OffboardingStatus — unresolved $ref
        - `eq` OffboardingStatus — unresolved $ref
        - `not_contain` OffboardingStatus — unresolved $ref
        - `contains` OffboardingStatus — unresolved $ref
    - `last_seen_at` union — Filter by the date the person was last seen (last_seen_at).
      - object — Operator object for filtering by last_seen_at.
        - `eq` LastSeenAt — unresolved $ref
        - `not_eq` LastSeenAt — unresolved $ref
        - `not_contain` LastSeenAt — unresolved $ref
        - `contains` LastSeenAt — unresolved $ref
      - LastSeenAt — unresolved $ref
    - `eligible_replacement_managers` union — Filter for eligible replacement managers — returns people who could replace the specified person as a manager.
      - object — Operator object for filtering by eligible_replacement_managers.
        - `eq` EligibleReplacementManagers — unresolved $ref
        - `not_eq` EligibleReplacementManagers — unresolved $ref
        - `not_contain` EligibleReplacementManagers — unresolved $ref
        - `contains` EligibleReplacementManagers — unresolved $ref
      - EligibleReplacementManagers — unresolved $ref
    - `role_id` union — Filter by built-in role type ID.
      - object — Operator object for filtering by role_id.
        - `contains` RoleId — unresolved $ref
        - `not_eq` RoleId — unresolved $ref
        - `eq` RoleId — unresolved $ref
        - `not_contain` RoleId — unresolved $ref
      - RoleId — unresolved $ref
    - `job_role_id` union
      - JobRoleId — unresolved $ref
      - object
        - `not_contain` JobRoleId — unresolved $ref
        - `eq` JobRoleId — unresolved $ref
        - `not_eq` JobRoleId — unresolved $ref
        - `contains` JobRoleId — unresolved $ref
    - `accessible_doc_id` union — Filter by accessible doc ID — returns people who have access to the specified document.
      - AccessibleDocId — unresolved $ref
      - object — Operator object for filtering by accessible_doc_id.
        - `not_eq` AccessibleDocId — unresolved $ref
        - `contains` AccessibleDocId — unresolved $ref
        - `eq` AccessibleDocId — unresolved $ref
        - `not_contain` AccessibleDocId — unresolved $ref
    - `subscribable_id` union — Filter by subscribable ID — used with subscribable_type to return subscribers of a resource.
      - SubscribableId — unresolved $ref
      - object — Operator object for filtering by subscribable_id.
        - `contains` SubscribableId — unresolved $ref
        - `not_eq` SubscribableId — unresolved $ref
        - `eq` SubscribableId — unresolved $ref
        - `not_contain` SubscribableId — unresolved $ref
    - `tags` union — Filter by tag.
      - Tags — unresolved $ref
      - object — Operator object for filtering by tags.
        - `contains` Tags — unresolved $ref
        - `not_contain` Tags — unresolved $ref
        - `eq` Tags — unresolved $ref
        - `not_eq` Tags — unresolved $ref
    - `manager_id` union — Filter by the person's manager.
      - object — Operator object for filtering by manager_id.
        - `not_eq` ManagerId — unresolved $ref
        - `eq` ManagerId — unresolved $ref
        - `not_contain` ManagerId — unresolved $ref
        - `contains` ManagerId — unresolved $ref
      - ManagerId — unresolved $ref
    - `schedulable` union — Filter for schedulable people — returns employees, contractors, and placeholders who can be booked.
      - Schedulable — unresolved $ref
      - object — Operator object for filtering by schedulable.
        - `contains` Schedulable — unresolved $ref
        - `not_contain` Schedulable — unresolved $ref
        - `not_eq` Schedulable — unresolved $ref
        - `eq` Schedulable — unresolved $ref
    - `time_tracking_policy_id` union — Filter by the person's assigned time tracking policy.
      - TimeTrackingPolicyId — unresolved $ref
      - object — Operator object for filtering by time_tracking_policy_id.
        - `contains` TimeTrackingPolicyId — unresolved $ref
        - `eq` TimeTrackingPolicyId — unresolved $ref
        - `not_eq` TimeTrackingPolicyId — unresolved $ref
        - `not_contain` TimeTrackingPolicyId — unresolved $ref
    - `team` union — Filter by team ID — returns people who belong to the specified team(s).
      - object — Operator object for filtering by team.
        - `eq` Team — unresolved $ref
        - `contains` Team — unresolved $ref
        - `not_contain` Team — unresolved $ref
        - `not_eq` Team — unresolved $ref
      - Team — unresolved $ref
- `sort` string[]

## Headers

- `X-Organization-Id` string, required

## Response `200`

Collection person

---

[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/11e8576224b8/schema)
