---
title: "Get Custom Table"
method: GET
path: "/api/v1/hris/custom-tables/{customTableId}"
tags: ["Custom Tables", "Public API"]
---

# Get Custom Table

`GET /api/v1/hris/custom-tables/{customTableId}`

## Request

- Base URL: `https://companySubDomain.bamboohr.com`
- URL: `https://companySubDomain.bamboohr.com/api/v1/hris/custom-tables/{customTableId}`
- Auth: OAuth 2
  - Authorization code: `/authorize.php`
  - Token URL: `/token.php` scopes: `employee:custom_fields`
- TypeScript: <https://skmtc.dev/bamboohr/apis/bamboohr-api/docs/api/v1/hris/custom-tables/:customTableId/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns one custom table definition with its fields. IDs are strings and each has a numeric `legacyId` companion for legacy integrations. Use this for a known custom table ID. For browsing active custom tables, use List Custom Tables (`list-custom-tables`) instead.

OAuth Scopes: employee:custom_fields

## Path parameters

- `customTableId` string, required

## Response `200`

Custom table definition.

- CustomFieldDefinitionResponseObject
  - `id` string: The string custom field or custom table ID.
  - `legacyId` integer: The legacy numeric custom field or custom table ID.
  - `name` string: The custom field or custom table name.
  - `type` string: The custom field or custom table type.
  - `isEncrypted` boolean: Whether the custom field is encrypted.
  - `isCalculated` boolean: Whether the custom field is calculated.
  - `isRequired` boolean: Whether the custom field is required.
  - `order` integer, nullable: The display order.
  - `pageId` string, nullable: The string parent tab/page ID.
  - `pageLegacyId` integer, nullable: The legacy numeric parent tab/page ID.
  - `sectionId` string, nullable: The string parent section ID.
  - `sectionLegacyId` integer, nullable: The legacy numeric parent section ID.
  - `customTableId` string, nullable: The string parent custom table ID when this is a custom table field.
  - `customTableLegacyId` integer, nullable: The legacy numeric parent custom table ID when this is a custom table field.
  - `sortOrderDirection` string, nullable: The custom table sort order direction.
  - `summarize` string, nullable: The custom table field summary setting.
  - `sortField` boolean, nullable: Whether this custom table field is the table sort field.
  - `values` object[], nullable: List values for list and multilist custom table fields.
    - `id` string: The string list value ID.
    - `legacyId` integer: The legacy numeric list value ID.
    - `display` string: The list value display name.
  - `fields` CustomFieldDefinitionResponseObject[], nullable: Fields on a custom table response.

## Other responses

- `401`: Unauthorized.
- `403`: Forbidden.
- `404`: Not found.
- `422`: Invalid argument.
- `500`: Internal server error.

## Changes

- **2026-11-03** `922fc15f43a7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bamboohr/apis/bamboohr-api/changes/api/v1/hris/custom-tables/:customTableId/get.md)

---

[API](https://skmtc.dev/bamboohr/apis/bamboohr-api.md) - [All operations](https://skmtc.dev/bamboohr/apis/bamboohr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bamboohr/apis/bamboohr-api/revisions/922fc15f43a7?raw)
