# Retrieve a person

Operation ID: `getPerson`

Group: People Management › People

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/getPerson)

`GET /people/person/{id}`

Read-only: Reads and returns; changes nothing.

Retrieves a person. Use the person's id, not their employeeNumber.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |
| `id` | path | string | yes | The unique identifier of the person you want to retrieve. |

## Response

`200` Success

Under `data` (getPersonOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The unique identifier for the person. |
| `employeeNumber` | string | no | The person's business number. |
| `firstName` | string | no | The person's first name. |
| `lastName` | string | no | The person's last name. |
| `middleName` | string | no | The person's middle name. |
| `preferredFirstName` | string | no | The person's preferred first name. |
| `preferredLastName` | string | no | The person's preferred last name. |
| `name` | string | no | The person's full name, in first-name-last-name order. |
| `email` | string | no | The person's work email address. |
| `status` | string | no | The current employment status of the person. Possible values: 'Active', 'Inactive', 'Planned', 'Cancelled'. |
| `employmentCategory` | string | no | The employment category assigned to this person. |
| `startDate` | string | no | The employment start date. Format YYYY-MM-DD. |
| `endDate` | string | no | The employment end date. Format YYYY-MM-DD. Absent while the person is still employed. |
| `probationEndDate` | string | no | The probation end date. Format YYYY-MM-DD. Absent when no probation period applies. |
| `jobId` | string | no | The identifier of this person's active primary job. Absent when the person has no active primary job. There is no endpoint for it. |
| `departmentName` | string | no | The name of the department this person belongs to. Absent when no department is assigned. |
| `positionName` | string | no | The position or job title assigned to this person. Absent when no position is assigned. |
| `managerName` | string | no | The full name of this person's primary manager. Absent when there is no active primary job or no manager assigned to it. |
| `compensation` | object | no | The person's current active compensation record. Absent when no compensation record exists. |
| `compensation.amount` | object | no | The base salary as a currency amount. |
| `compensation.amount.currency` | string | no | The currency of the base salary. Format ISO 4217, for example 'USD'. |
| `compensation.amount.amount` | decimal | no | The numeric value of the base salary, in the given currency. |
| `compensation.paymentFrequency` | string | no | The frequency at which this person is paid. Possible values: 'monthly', 'biweekly', 'weekly', 'yearly'. |
| `compensation.unit` | string | no | The unit the base salary is measured in. Possible values: 'annually', 'quarterly', 'monthly', 'semiMonthly', 'weekly', 'biWeekly', 'daily', 'hourly', 'fixed'. |
| `compensation.monthlyAmount` | object | no | The base salary converted to a monthly amount. Only the 'annually' and 'hourly' units are converted. For every other unit this repeats the base salary unchanged and is not a monthly figure. |
| `compensation.monthlyAmount.currency` | string | no | The currency of the monthly-equivalent salary. Format ISO 4217, for example 'USD'. |
| `compensation.monthlyAmount.amount` | decimal | no | The numeric value of the monthly-equivalent salary, in the given currency. |
| `compensation.salaryType` | string | no | The name of the compensation type. Absent when none is assigned. |
| `compensation.salaryCode` | string | no | The code of the compensation type. Absent when the type has no code or none is assigned. |
| `compensation.startDate` | string | no | The date from which this compensation record is effective. Format YYYY-MM-DD. |
| `compensation.endDate` | string | no | The date on which this compensation record expires. Format YYYY-MM-DD. Absent when it is open-ended. |
| `entityName` | string | no | The name of the legal entity this person belongs to. |
| `locationName` | string | no | The name of this person's work location. Absent when none is assigned. |
| `customFields` | UnknownObject | no | The person's custom field values, as key-value pairs of field name and value. Free-form JSON object. |
| `lastModifiedDate` | date-time | yes | The date and time the person record last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
| `externalIdentifiers` | array<object> | no | The external identifiers owned by other systems, at most one per fieldName. Absent when the person has none. |
| `externalIdentifiers[].fieldName` | string | yes | The configured key of the external identifier, a camelCase slug such as 'netsuiteEmployeeId'. It is the fieldName of an existing employee external-identifier configuration. |
| `externalIdentifiers[].value` | string | yes | The identifier as the source system holds it. |
| `externalIdentifiers[].externalUrl` | string | no | An absolute http(s) link to the object in the source system. Absent when none is set. |

```json
{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "employeeNumber": "<employeeNumber>",
    "firstName": "<firstName>",
    "lastName": "<lastName>",
    "middleName": "<middleName>",
    "preferredFirstName": "<preferredFirstName>",
    "preferredLastName": "<preferredLastName>",
    "name": "<name>",
    "email": "<email>",
    "status": "<status>",
    "employmentCategory": "<employmentCategory>",
    "startDate": "<startDate>",
    "endDate": "<endDate>",
    "probationEndDate": "<probationEndDate>",
    "jobId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "departmentName": "<departmentName>",
    "positionName": "<positionName>",
    "managerName": "<managerName>",
    "compensation": {
      "amount": {
        "currency": "<currency>",
        "amount": "19.99"
      },
      "paymentFrequency": "<paymentFrequency>",
      "unit": "<unit>",
      "monthlyAmount": {
        "currency": "<currency>",
        "amount": "19.99"
      },
      "salaryType": "<salaryType>",
      "salaryCode": "<salaryCode>",
      "startDate": "<startDate>",
      "endDate": "<endDate>"
    },
    "entityName": "<entityName>",
    "locationName": "<locationName>",
    "customFields": {},
    "lastModifiedDate": "2026-01-15T09:30:00.000Z",
    "externalIdentifiers": [
      {
        "fieldName": "<fieldName>",
        "value": "<value>",
        "externalUrl": "<externalUrl>"
      }
    ]
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}
```

## Errors

| Code | Status |
| --- | --- |
| `NOT_FOUND` | 400 |

## Statuses

- `400` — Invalid request or business failure. Codes: NOT_FOUND
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
