---
title: "List entitlement entries for a list of employees"
method: GET
path: "/bulk/people/entitlement"
tags: ["Employee Tables"]
---

# List entitlement entries for a list of employees

`GET /bulk/people/entitlement`

## Request

- Base URL: `https://api.hibob.com/v1`
- URL: `https://api.hibob.com/v1/bulk/people/entitlement`
- Auth: one of:
  - HTTP basic
  - HTTP bearer

Returns entitlement table entries for all employees or a specific list of employees. Entitlement is a multi-current history table: an employee may have multiple entitlement types concurrently (for example Lunch vouchers and Company Car), each with its own effective-date timeline. Responses include timeline fields such as `effectiveDate`, `endEffectiveDate`, and `isCurrent`.<br /> <br /> There is no per-employee GET for this table — use this bulk endpoint with a single `employeeIds` value when you need one employee.<br /> <br /> You can fetch employee IDs using the <a href="https://apidocs.hibob.com/reference/post_people-search" target="_blank">People search</a> endpoint.<br /> <br /> **<b>Required permissions</b>** <br /> People's Data > People's fields > Entitlement (Table) > View history (and View on the table or required columns), or View for current-effective rows only.<br /> **For the employees**: People's Data > Access data for > Make sure the employees are in the list. Employees that are not listed and were specifically requested will be listed under `errors` in the response. <br /> <br />
**<b>Pagination</b>** <br /> This endpoint uses cursor-based pagination to handle large number of table entries. To learn more, see <a href="https://apidocs.hibob.com/docs/pagination" target="_blank">Pagination in Bob's API</a>

## Query parameters

- `limit` number
- `cursor` string
- `employeeIds` string
- `includeArchived` boolean

## Response `200`

Entitlement table entries.

- BulkEntitlementTableResponse: Cursor-paginated bulk response for entitlement table entries.
  - `results` object[]: Entitlement table entries grouped by employee.
    - `employeeId` string: Employee ID these entitlement entries belong to.
    - `values` EntitlementEntry[]: Entitlement entries for this employee on the current page.
      - `id` integer: The id of the entitlement entry. Assigned by the system on create.
      - `effectiveDate` string, date: Start of this timeline step (ISO 8601 date).
      - `endEffectiveDate` string, date: When this step ceased to be effective (next step or end of timeline). Present on reads only.
      - `isCurrent` boolean: Whether this row is the current effective step for that entitlement type. Present on reads only.
      - `canBeDeleted` boolean: Whether Bob allows delete for this history row. Present on reads only.
      - `entitlement` string: Entitlement type name (for example `Lunch vouchers`).
      - `amount` CurrencyValue
        - `value` number, double, required
        - `currency` string, required: Three-letter currency code.
      - `endDate` string, date: Optional explicit end date for this entitlement period (ISO 8601 date).
      - `customColumns` object: Custom column values for this entry, keyed by column id.
      - `change` object: Details of the last change and the ID of the user who updated this entry. Present on reads only when available.
        - `reason` string: Reason for the last change, when provided.
        - `changedBy` string: Display name of the user who last changed the entry.
        - `changedById` string: Employee ID of the user who last changed the entry.
  - `response_metadata` object: Pagination metadata for the bulk response.
    - `next_cursor` string: Contains a string value if there is a 'next' page of data. `null` if there is no more data. Use this value as the `cursor` parameter for pagination to get the next page.
  - `errors` object[]: Permission errors for employees that were requested but could not be read. In the live JSON payload this is an object keyed by employee ID (`{ "<employeeId>": { "error", "message" } }`); documented as an array of entries (same pattern as other bulk employee-table responses) so the schema stays strict without `additionalProperties`.
    - `employeeId` string: Employee ID that could not be accessed.
    - `error` string: Machine-readable error code.
    - `message` string: Human-readable explanation of the permission error.
  - `restricted_columns` RestrictedColumnsMetadata: Indicates which columns were filtered from the response due to field-level permissions. This object is only present when the service user has partial column permissions. To learn more, see <a href="https://apidocs.hibob.com/docs/employee-data-api-field-level-permissions#detecting-restricted-columns-in-api-responses" target="_blank">Field level permissions</a>.
    - `no_view_permission` string[]: Columns filtered because the service user lacks View permission for these fields.
    - `no_view_history_permission` string[]: Columns filtered because the service user lacks View History permission. Only present for historical tables (work, employment, salaries, lifecycle).

## Other responses

- `400`: Bad request.
- `403`: Forbidden. The service user does not have permissions to access this table or employees. Check the permissions as explained in the endpoint description.

## Changes

- **2026-11-03** `9ac25373a355`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hibob/apis/employee-data-api/changes/bulk/people/entitlement/get.md)

---

[API](https://skmtc.dev/hibob/apis/employee-data-api.md) - [All operations](https://skmtc.dev/hibob/apis/employee-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hibob/apis/employee-data-api/revisions/9ac25373a355?raw)
