# List of People

GET https://api.letsdeel.com/rest/v2/people

Use this endpoint to retrieve people in your organization for building directories or syncing HR data. Paginate with offset/limit and filter with search, teams, and other query parameters. This operation is non-destructive.
 **Token scopes**: `people:read`

Reference: https://developer.deel.com/api/endpoints/people/get-people

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: Deel HRIS SCIM API
  version: 1.0.0
paths:
  /people:
    get:
      operationId: get-people
      summary: List of People
      description: >-
        Use this endpoint to retrieve people in your organization for building
        directories or syncing HR data. Paginate with offset/limit and filter
        with search, teams, and other query parameters. This operation is
        non-destructive.
         **Token scopes**: `people:read`
      tags:
        - subpackage_people
      parameters:
        - name: offset
          in: query
          description: Return a page of results with given number of records.
          required: false
          schema:
            type: integer
            default: 0
        - name: limit
          in: query
          description: Return a page of results with given number of records.
          required: false
          schema:
            type: integer
        - name: search
          in: query
          description: >-
            Include a contract if by name or contractor name contains given
            search term.
          required: false
          schema:
            type: string
        - name: teams
          in: query
          description: >-
            Filter the results based on the team(group) the users contract is
            associated with
          required: false
          schema:
            type: array
            items:
              type: string
              format: uuid
        - name: fields
          in: query
          description: >-
            Pick the fields you want to see in the response in order to avoid a
            bloated people list output. Supports dot notation (e.g.,
            'employments[0].contract_status') to access nested fields.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/PeopleGetParametersFieldsSchemaItems'
        - name: sort_by
          in: query
          description: Sort people by given field name.
          required: false
          schema:
            $ref: '#/components/schemas/PeopleGetParametersSortBy'
        - name: sort_order
          in: query
          description: Order direction of results; ascending or descending.
          required: false
          schema:
            $ref: '#/components/schemas/PeopleGetParametersSortOrder'
        - name: hiring_statuses
          in: query
          description: Employee's current hiring status.
          required: false
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/PeopleGetParametersHiringStatusesSchemaItems
        - name: band_placements
          in: query
          description: Employee's current band placement.
          required: false
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/PeopleGetParametersBandPlacementsSchemaItems
        - name: comparative_ratios_from
          in: query
          description: Employee's minimum band placement
          required: false
          schema:
            type: number
            format: double
        - name: comparative_ratios_to
          in: query
          description: Employee's maximum band placement
          required: false
          schema:
            type: number
            format: double
        - name: hiring_types
          in: query
          description: Filter people by hiring types
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/PeopleGetParametersHiringTypesSchemaItems'
        - name: person_statuses
          in: query
          description: Filter people by person (worker profile) lifecycle status.
          required: false
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/PeopleGetParametersPersonStatusesSchemaItems
        - name: Authorization
          in: header
          description: >
            ## Authentication

            The Deel API uses bearer tokens to authenticate requests. All API
            calls must be made over HTTPS — calls over plain HTTP or without
            authentication will fail.


            ```curl

            curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
              -H 'Authorization: Bearer YOUR-TOKEN-HERE'
            ```


            [Learn more about authentication](/api/authentication)
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/people_getPeople_Response_200'
        '400':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/ListOfPeople-v2026-01-01RequestInternalServerError
servers:
  - url: https://api.letsdeel.com/rest/v2
  - url: https://api-staging.letsdeel.com/rest/v2
components:
  schemas:
    PeopleGetParametersFieldsSchemaItems:
      type: string
      enum:
        - id
        - first_name
        - last_name
        - full_name
        - display_name
        - preferred_name
        - preferred_first_name
        - preferred_last_name
        - personal_id
        - country
        - country_name
        - state
        - email
        - personal_email
        - work_email
        - phoneNumbers
        - nationalities
        - personal_address
        - addresses
        - pic_url
        - birth_date
        - nestedCustomFields
        - start_date
        - hris_original_start_date
        - worker_id
        - external_id
        - direct_reports
        - direct_reports_count
        - direct_manager
        - work_location
        - custom_fields
        - new_hiring_status
        - hiring_status
        - job_title
        - seniority
        - custom_field_values
        - worker_relations
        - timezone
        - employments
        - employments[0].id
        - employments[0].name
        - employments[0].start_date
        - employments[0].job_title
        - employments[0].hiring_status
        - employments[0].new_hiring_status
        - employments[0].seniority
        - employments[0].email
        - employments[0].work_email
        - employments[0].employee_number
        - employments[0].hiring_type
        - employments[0].team
        - employments[0].timezone
        - employments[0].client_legal_entity
        - employments[0].payment
        - employments[0].country
        - employments[0].state
        - employments[0].contract_status
        - employments[0].contract_type
        - employments[0].hris_service_provider
        - employments[0].hris_direct_employee_invitation
        - employments[0].voluntarily_left
        - employments[0].has_eor_termination
        - employments[0].contract_is_archived
        - employments[0].completion_date
        - employments[0].contract_has_contractor
        - employments[0].is_ended
        - employments[0].is_user_contract_deleted
        - employments[0].contract_coverage
        - employments[0].currency
        - employments[0].is_amending
        - employments[0].client_legal_entity_id
        - employments[0].is_eor_consultant_contract
        - employments[0].is_interview_process_required
        - employments[0].contract_timezone
        - employments[0].amendment_status
        - employments[0].pay_date
        - employments[0].termination_last_day
        - employments[0].custom_field_values
        - employments[0].hris_is_active
        - employments[0].isPrimary
        - employments[0].compensation_band_id
        - employments[0].band_placement
        - employments[0].comparative_ratio
        - direct_employee_termination_state
        - is_user_contract_deleted
        - orgStructures
        - ooo
        - is_ended
        - hris_service_provider
        - contract_types
        - contract_coverage
        - payments
        - pay_date
        - nextPayment
        - lastPayment
        - hourly_report_total
        - monthly_payment
        - hris_is_active
        - department
        - currency
        - contract_is_archived
        - termination_last_day
        - completion_date
        - hiring_type
        - worker_entity_name
        - client_legal_entity
        - parent_relations
        - child_relations
        - worker_termination_last_date_of_work
        - active_worker_termination_status
        - org_structures
      title: PeopleGetParametersFieldsSchemaItems
    PeopleGetParametersSortBy:
      type: string
      enum:
        - id
        - first_name
        - last_name
        - full_name
        - email
        - country
        - birth_date
        - hiring_type
        - start_date
        - team
        - job_title
        - hiring_status
        - completion_date
        - direct_manager
        - direct_reports_count
        - band_placement
        - comparative_ratio
      title: PeopleGetParametersSortBy
    PeopleGetParametersSortOrder:
      type: string
      enum:
        - asc
        - desc
      title: PeopleGetParametersSortOrder
    PeopleGetParametersHiringStatusesSchemaItems:
      type: string
      enum:
        - pending_invite
        - draft
        - invited
        - onboarding
        - onboarding_at_risk
        - onboarding_overdue
        - onboarded
        - offboarding
        - active
        - inactive
        - in_review
        - quote_requires_changes
      title: PeopleGetParametersHiringStatusesSchemaItems
    PeopleGetParametersBandPlacementsSchemaItems:
      type: string
      enum:
        - ABOVE
        - WITHIN
        - BELOW
      title: PeopleGetParametersBandPlacementsSchemaItems
    PeopleGetParametersHiringTypesSchemaItems:
      type: string
      enum:
        - contractor
        - eor
        - peo
        - hris_direct_employee
        - hris_direct_contractor
        - direct_employee
        - contractor_outside_deel
        - person_without_contract
      title: PeopleGetParametersHiringTypesSchemaItems
    PeopleGetParametersPersonStatusesSchemaItems:
      type: string
      enum:
        - ACTIVE
        - OFFBOARDING
        - NOT_STARTED
        - INACTIVE
      title: PeopleGetParametersPersonStatusesSchemaItems
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmailsItems:
      type: object
      properties:
        type:
          type:
            - string
            - 'null'
          description: The type of email.
        value:
          type:
            - string
            - 'null'
          description: The email address.
      title: PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmailsItems
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsAddressesItems:
      type: object
      properties:
        region:
          type: string
          description: Region code.
        country:
          type:
            - string
            - 'null'
          description: Country code.
        locality:
          type: string
          description: Locality name.
        postalCode:
          type: string
          description: Postal code.
        streetAddress:
          type: string
          description: Street and number.
      title: PeopleGetResponsesContentApplicationJsonSchemaDataItemsAddressesItems
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsDepartment:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of this resource.
        name:
          type: string
          description: The name of the department.
        parent:
          type: string
          description: The parent department name.
      description: The department of the employee.
      title: PeopleGetResponsesContentApplicationJsonSchemaDataItemsDepartment
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsTeam:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Refers to Groups in the platform. Working groups that reflect the
            organization's structure.
        name:
          type: string
          description: The team name.
      description: The team to which the employee belongs.
      title: >-
        PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsTeam
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsPayment:
      type: object
      properties:
        rate:
          type:
            - number
            - 'null'
          format: double
          description: The payment rate
        scale:
          type:
            - string
            - 'null'
          description: The payment scale (e.g., hourly, weekly, monthly, etc.)
        currency:
          type: string
          description: The currency code (ISO 4217) for the payment
        contract_name:
          type: string
          description: The name of the contract associated with the payment
      description: >-
        Payment information for the employment, including rate, scale, currency,
        and associated contract name.
      title: >-
        PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsPayment
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsBandPlacement:
      type: string
      enum:
        - ABOVE
        - WITHIN
        - BELOW
      description: Where the employee falls in their compensation band
      title: >-
        PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsBandPlacement
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsContractCoverage:
      type: string
      enum:
        - is_premium
        - is_shielded
        - no_coverage
      description: The coverage of the employment contract.
      title: >-
        PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsContractCoverage
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsClientLegalEntity:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
          format: uuid
          description: Unique identifier of this resource.
        name:
          type:
            - string
            - 'null'
          description: The name of the client legal entity.
      description: The client legal entity associated with this employment contract.
      title: >-
        PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsClientLegalEntity
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsHrisDirectEmployeeInvitation:
      type: object
      properties:
        oid:
          type: string
          description: Unique identifier of this resource.
        status:
          type:
            - string
            - 'null'
          description: The HRIS direct employee invitation status.
        send_at:
          type:
            - string
            - 'null'
          format: date-time
          description: The HRIS direct employee invitation send date.
        timezone:
          type:
            - string
            - 'null'
          description: The HRIS direct employee invitation timezone.
      description: The HRIS direct employee invitation status.
      title: >-
        PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsHrisDirectEmployeeInvitation
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItems:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the employment.
        name:
          type: string
          description: Name of the employee.
        team:
          $ref: >-
            #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsTeam
          description: The team to which the employee belongs.
        email:
          type: string
          description: The work email of the employee.
        state:
          type:
            - string
            - 'null'
          description: The state of employment.
        country:
          type:
            - string
            - 'null'
          description: The country of employment.
        payment:
          $ref: >-
            #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsPayment
          description: >-
            Payment information for the employment, including rate, scale,
            currency, and associated contract name.
        is_ended:
          type: boolean
          description: Whether the employment has ended.
        timezone:
          type:
            - string
            - 'null'
          description: The timezone of the employment.
        job_title:
          type:
            - string
            - 'null'
          description: The job title of the employment.
        seniority:
          type:
            - string
            - 'null'
          description: The seniority level of the employment.
        start_date:
          type:
            - string
            - 'null'
          format: date
          description: The start date of the employment.
        work_email:
          type:
            - string
            - 'null'
          description: The work email of the employment.
        hiring_type:
          type:
            - string
            - 'null'
          description: The type of hiring of the employment.
        hiring_status:
          type: string
          description: The current hiring status of the employment.
        band_placement:
          oneOf:
            - $ref: >-
                #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsBandPlacement
            - type: 'null'
          description: Where the employee falls in their compensation band
        completion_date:
          type:
            - string
            - 'null'
          description: The completion date of the employment contract.
        contract_status:
          type: string
          description: The status of the employment contract.
        voluntarily_left:
          type:
            - boolean
            - 'null'
          description: Whether the employee voluntarily left the employment.
        comparative_ratio:
          type:
            - number
            - 'null'
          format: double
          description: Number comparing an employee's compensation to the band midpoint
        contract_coverage:
          oneOf:
            - $ref: >-
                #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsContractCoverage
            - type: 'null'
          description: The coverage of the employment contract.
        new_hiring_status:
          type:
            - string
            - 'null'
          description: The new hiring status of the employment.
        client_legal_entity:
          $ref: >-
            #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsClientLegalEntity
          description: The client legal entity associated with this employment contract.
        has_eor_termination:
          type:
            - boolean
            - 'null'
          description: Whether the employment has an EOR termination.
        compensation_band_id:
          type:
            - string
            - 'null'
          description: The employee's assigned compensation band
        contract_is_archived:
          type: boolean
          description: Whether the employment contract is archived.
        termination_last_day:
          type:
            - string
            - 'null'
          format: date-time
          description: The last day of work mentioned on the contract termination.
        contract_has_contractor:
          type: boolean
          description: Whether the contract has a contractor.
        is_user_contract_deleted:
          type: boolean
          description: Whether the user contract is deleted.
        hris_direct_employee_invitation:
          oneOf:
            - $ref: >-
                #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItemsHrisDirectEmployeeInvitation
            - type: 'null'
          description: The HRIS direct employee invitation status.
      title: PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItems
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsPersonStatus:
      type: string
      enum:
        - ACTIVE
        - OFFBOARDING
        - NOT_STARTED
        - INACTIVE
      description: >-
        Lifecycle status of the person (worker profile). Omitted or null without
        people_person_status.view; excluded from the response when using
        `fields` if not requested.
      title: PeopleGetResponsesContentApplicationJsonSchemaDataItemsPersonStatus
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsDirectManager:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the manager.
        last_name:
          type: string
          description: The last name of the manager.
        worker_id:
          type: number
          format: double
          description: The worker ID of the manager.
        first_name:
          type: string
          description: The first name of the manager.
        work_email:
          type:
            - string
            - 'null'
          description: The work email of the manager.
      description: The direct manager of the employee.
      title: PeopleGetResponsesContentApplicationJsonSchemaDataItemsDirectManager
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsDirectReportsItems:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the direct report.
        last_name:
          type: string
          description: The last name of the direct report.
        first_name:
          type: string
          description: The first name of the direct report.
        work_email:
          type:
            - string
            - 'null'
          description: The work email of the direct report.
      title: >-
        PeopleGetResponsesContentApplicationJsonSchemaDataItemsDirectReportsItems
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsClientLegalEntity:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
          format: uuid
          description: Unique identifier of this resource.
        name:
          type:
            - string
            - 'null'
          description: The name of the client legal entity.
      description: The primary client legal entity associated with the employee.
      title: PeopleGetResponsesContentApplicationJsonSchemaDataItemsClientLegalEntity
    PeopleGetResponsesContentApplicationJsonSchemaDataItemsActiveWorkerTerminationStatus:
      type: string
      enum:
        - PENDING
        - CONTRACT_TERMINATION_DATA_COLLECTED
        - IN_PROGRESS
        - COMPLETED
        - FAILED
        - CANCELED
      description: The status of the active worker termination.
      title: >-
        PeopleGetResponsesContentApplicationJsonSchemaDataItemsActiveWorkerTerminationStatus
    PeopleGetResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the employee.
        state:
          type:
            - string
            - 'null'
          description: The state of the employee.
        emails:
          type:
            - array
            - 'null'
          items:
            $ref: >-
              #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmailsItems
          description: An array of the employee's email addresses.
        country:
          type:
            - string
            - 'null'
          description: The country of the employee.
        is_pwac:
          type: boolean
          description: Whether the worker is a Person Without a Contract (PWAC)
        timezone:
          type:
            - string
            - 'null'
          description: The timezone of the employee.
        addresses:
          type:
            - array
            - 'null'
          items:
            $ref: >-
              #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsAddressesItems
          description: >-
            An array of address objects containing the employee's physical
            addresses.
        full_name:
          type: string
          description: The full name of the employee.
        job_title:
          type:
            - string
            - 'null'
          description: The job title of the employee.
        last_name:
          type:
            - string
            - 'null'
          description: The last name of the employee.
        seniority:
          type:
            - string
            - 'null'
          description: The seniority level of the employee.
        worker_id:
          type: string
          description: The worker ID of the employee.
        birth_date:
          type:
            - string
            - 'null'
          description: The birth date of the employee.
        created_at:
          type: string
          format: date-time
          description: The creation timestamp of the employee record.
        department:
          $ref: >-
            #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsDepartment
          description: The department of the employee.
        first_name:
          type: string
          description: The first name of the employee.
        start_date:
          type:
            - string
            - 'null'
          format: date
          description: The date the employee started working.
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Long date-time format following ISO-8601
        employments:
          type:
            - array
            - 'null'
          items:
            $ref: >-
              #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsEmploymentsItems
          description: >-
            An array of employment records associated with the employee,
            including contract details, team information, payment details, and
            employment status.
        external_id:
          type:
            - string
            - 'null'
          description: The external ID of the employee.
        hiring_type:
          type:
            - string
            - 'null'
          description: The type of hiring of the employee.
        hiring_status:
          type: string
          description: The current hiring status of the employee.
        nationalities:
          type: array
          items:
            type: string
          description: The nationality of the employee.
        person_status:
          oneOf:
            - $ref: >-
                #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsPersonStatus
            - type: 'null'
          description: >-
            Lifecycle status of the person (worker profile). Omitted or null
            without people_person_status.view; excluded from the response when
            using `fields` if not requested.
        work_location:
          type:
            - string
            - 'null'
          description: The work location of the employee.
        direct_manager:
          oneOf:
            - $ref: >-
                #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsDirectManager
            - type: 'null'
          description: The direct manager of the employee.
        direct_reports:
          type:
            - array
            - 'null'
          items:
            $ref: >-
              #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsDirectReportsItems
          description: The direct reports to the employee.
        completion_date:
          type:
            - string
            - 'null'
          description: The completion date of the task or project.
        new_hiring_status:
          type:
            - string
            - 'null'
          description: The new hiring status of the employee.
        client_legal_entity:
          $ref: >-
            #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsClientLegalEntity
          description: The primary client legal entity associated with the employee.
        preferred_last_name:
          type:
            - string
            - 'null'
          description: The preferred last name of the employee.
        direct_reports_count:
          type: integer
          description: The count of direct reports to the employee.
        preferred_first_name:
          type:
            - string
            - 'null'
          description: The preferred first name of the employee.
        hris_organization_user_id:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            HRIS Organization User ID of the employee. Used in products like
            Deel Engage.
        active_worker_termination_status:
          oneOf:
            - $ref: >-
                #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItemsActiveWorkerTerminationStatus
            - type: 'null'
          description: The status of the active worker termination.
        direct_employee_termination_last_day:
          type: string
          format: date-time
          description: The last day of work mentioned on the primary contract termination.
      title: PeopleGetResponsesContentApplicationJsonSchemaDataItems
    PeopleGetResponsesContentApplicationJsonSchemaPage:
      type: object
      properties:
        offset:
          type: integer
        total_rows:
          type: number
          format: double
        items_per_page:
          type: number
          format: double
      required:
        - offset
        - total_rows
        - items_per_page
      title: PeopleGetResponsesContentApplicationJsonSchemaPage
    people_getPeople_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: >-
              #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaDataItems
        page:
          $ref: >-
            #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaPage
      required:
        - data
      title: people_getPeople_Response_200
    ApiErrorRequest:
      type: object
      properties:
        method:
          type: string
          description: The HTTP method of the failed request
        url:
          type: string
          description: The relative URL of the failed request
        status:
          type: number
          format: double
          description: The status code of the response
        api_req_id:
          type: string
          description: The request ID of the failed request
        docs:
          type: string
          description: >-
            A link to the official documentation for the requested endpoint
            resource
        source:
          type: string
          description: The source handler which produced the returned error
        code:
          type: number
          format: double
          description: The code of the source handler which produced the returned error
      title: ApiErrorRequest
    ApiError:
      type: object
      properties:
        message:
          type: string
          description: A description of the returned error
        path:
          type: string
          description: The JSON path where input validation failed
      title: ApiError
    ApiErrorContainer:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/ApiErrorRequest'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
      title: ApiErrorContainer
    PeopleGetResponsesContentApplicationJsonSchemaError:
      type: object
      properties:
        code:
          type: string
          description: Error code identifying the type of error.
        details:
          type:
            - string
            - 'null'
          description: Additional details about the error.
        message:
          type: string
          description: Error message describing what went wrong.
      required:
        - code
        - message
      title: PeopleGetResponsesContentApplicationJsonSchemaError
    ListOfPeople-v2026-01-01RequestInternalServerError:
      type: object
      properties:
        error:
          $ref: >-
            #/components/schemas/PeopleGetResponsesContentApplicationJsonSchemaError
      required:
        - error
      title: ListOfPeople-v2026-01-01RequestInternalServerError
  securitySchemes:
    deelToken:
      type: http
      scheme: bearer
      description: >
        ## Authentication

        The Deel API uses bearer tokens to authenticate requests. All API calls
        must be made over HTTPS — calls over plain HTTP or without
        authentication will fail.


        ```curl

        curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
          -H 'Authorization: Bearer YOUR-TOKEN-HERE'
        ```


        [Learn more about authentication](/api/authentication)
    oauth2:
      type: http
      scheme: bearer
      description: >-
        Standard OAuth2 security scheme based on
        https://swagger.io/docs/specification/authentication/

```

## SDK Code Examples

```python
import requests

url = "https://api.letsdeel.com/rest/v2/people"

querystring = {"offset":"150","limit":"50","search":"John Doe","teams":"[\"00000000-0000-0000-0000-000000000000\",\"642b0547-9d80-4d35-a085-fd977ef209ef\"]","fields":"[\"first_name\",\"last_name\",\"email\"]","sort_by":"hiring_status","sort_order":"asc","hiring_statuses":"[\"active\",\"onboarded\"]","band_placements":"[\"ABOVE\",\"WITHIN\"]","comparative_ratios_from":"1.1","comparative_ratios_to":"1.1","hiring_types":"[\"eor\",\"contractor\"]","person_statuses":"[\"ACTIVE\",\"INACTIVE\"]"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.letsdeel.com/rest/v2/people?offset=150&limit=50&search=John+Doe&teams=%5B%2200000000-0000-0000-0000-000000000000%22%2C%22642b0547-9d80-4d35-a085-fd977ef209ef%22%5D&fields=%5B%22first_name%22%2C%22last_name%22%2C%22email%22%5D&sort_by=hiring_status&sort_order=asc&hiring_statuses=%5B%22active%22%2C%22onboarded%22%5D&band_placements=%5B%22ABOVE%22%2C%22WITHIN%22%5D&comparative_ratios_from=1.1&comparative_ratios_to=1.1&hiring_types=%5B%22eor%22%2C%22contractor%22%5D&person_statuses=%5B%22ACTIVE%22%2C%22INACTIVE%22%5D';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/v2/people?offset=150&limit=50&search=John+Doe&teams=%5B%2200000000-0000-0000-0000-000000000000%22%2C%22642b0547-9d80-4d35-a085-fd977ef209ef%22%5D&fields=%5B%22first_name%22%2C%22last_name%22%2C%22email%22%5D&sort_by=hiring_status&sort_order=asc&hiring_statuses=%5B%22active%22%2C%22onboarded%22%5D&band_placements=%5B%22ABOVE%22%2C%22WITHIN%22%5D&comparative_ratios_from=1.1&comparative_ratios_to=1.1&hiring_types=%5B%22eor%22%2C%22contractor%22%5D&person_statuses=%5B%22ACTIVE%22%2C%22INACTIVE%22%5D"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/v2/people?offset=150&limit=50&search=John+Doe&teams=%5B%2200000000-0000-0000-0000-000000000000%22%2C%22642b0547-9d80-4d35-a085-fd977ef209ef%22%5D&fields=%5B%22first_name%22%2C%22last_name%22%2C%22email%22%5D&sort_by=hiring_status&sort_order=asc&hiring_statuses=%5B%22active%22%2C%22onboarded%22%5D&band_placements=%5B%22ABOVE%22%2C%22WITHIN%22%5D&comparative_ratios_from=1.1&comparative_ratios_to=1.1&hiring_types=%5B%22eor%22%2C%22contractor%22%5D&person_statuses=%5B%22ACTIVE%22%2C%22INACTIVE%22%5D")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.letsdeel.com/rest/v2/people?offset=150&limit=50&search=John+Doe&teams=%5B%2200000000-0000-0000-0000-000000000000%22%2C%22642b0547-9d80-4d35-a085-fd977ef209ef%22%5D&fields=%5B%22first_name%22%2C%22last_name%22%2C%22email%22%5D&sort_by=hiring_status&sort_order=asc&hiring_statuses=%5B%22active%22%2C%22onboarded%22%5D&band_placements=%5B%22ABOVE%22%2C%22WITHIN%22%5D&comparative_ratios_from=1.1&comparative_ratios_to=1.1&hiring_types=%5B%22eor%22%2C%22contractor%22%5D&person_statuses=%5B%22ACTIVE%22%2C%22INACTIVE%22%5D")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.letsdeel.com/rest/v2/people?offset=150&limit=50&search=John+Doe&teams=%5B%2200000000-0000-0000-0000-000000000000%22%2C%22642b0547-9d80-4d35-a085-fd977ef209ef%22%5D&fields=%5B%22first_name%22%2C%22last_name%22%2C%22email%22%5D&sort_by=hiring_status&sort_order=asc&hiring_statuses=%5B%22active%22%2C%22onboarded%22%5D&band_placements=%5B%22ABOVE%22%2C%22WITHIN%22%5D&comparative_ratios_from=1.1&comparative_ratios_to=1.1&hiring_types=%5B%22eor%22%2C%22contractor%22%5D&person_statuses=%5B%22ACTIVE%22%2C%22INACTIVE%22%5D', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/v2/people?offset=150&limit=50&search=John+Doe&teams=%5B%2200000000-0000-0000-0000-000000000000%22%2C%22642b0547-9d80-4d35-a085-fd977ef209ef%22%5D&fields=%5B%22first_name%22%2C%22last_name%22%2C%22email%22%5D&sort_by=hiring_status&sort_order=asc&hiring_statuses=%5B%22active%22%2C%22onboarded%22%5D&band_placements=%5B%22ABOVE%22%2C%22WITHIN%22%5D&comparative_ratios_from=1.1&comparative_ratios_to=1.1&hiring_types=%5B%22eor%22%2C%22contractor%22%5D&person_statuses=%5B%22ACTIVE%22%2C%22INACTIVE%22%5D");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/v2/people?offset=150&limit=50&search=John+Doe&teams=%5B%2200000000-0000-0000-0000-000000000000%22%2C%22642b0547-9d80-4d35-a085-fd977ef209ef%22%5D&fields=%5B%22first_name%22%2C%22last_name%22%2C%22email%22%5D&sort_by=hiring_status&sort_order=asc&hiring_statuses=%5B%22active%22%2C%22onboarded%22%5D&band_placements=%5B%22ABOVE%22%2C%22WITHIN%22%5D&comparative_ratios_from=1.1&comparative_ratios_to=1.1&hiring_types=%5B%22eor%22%2C%22contractor%22%5D&person_statuses=%5B%22ACTIVE%22%2C%22INACTIVE%22%5D")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```