canonical: https://jentic.com/apis/planday.com/planday

# Planday API

Planday workforce management API covering absence, HR, pay, payroll, portal, reports, revenue, and scheduling. The API exposes 90 endpoints secured with Bearer, apiKey authentication.

## For AI agents

Programmatically get return salary allocation for a given employee id, get return salary allocation history for a given employee id. Covers 90 operations with Bearer, apiKey authentication.

## Scope

Does not handle payments, communications, or crm - use for hr and recruiting only.

## Capabilities

- GET Return salary allocation for a given employee id
- PUT Disable salary allocation for a given employee id
- Access Planday API resources via REST API

## Use cases

### HR and Recruiting Operations

Use the Planday API to perform hr recruiting operations programmatically. The API provides 90 endpoints covering core functionality including get return salary allocation for a given employee id, get return salary allocation history for a given employee id, put disable salary allocation for a given employee id.

Example prompt: Call GET `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}` to get return salary allocation for a given employee id

### Automated PayRates Management

Automate payrates operations by combining multiple Planday API endpoints. Agents can get return salary allocation history for a given employee id and then put disable salary allocation for a given employee id in a single workflow.

Example prompt: Call GET `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}/history` to get return salary allocation history for a given employee id, then verify the result

### AI Agent Integration via Jentic

AI agents discover and call Planday API endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle Bearer, apiKey tokens manually.

Example prompt: Search Jentic for 'get return salary allocation for a given employee id', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}` | GET Return salary allocation for a given employee id |
| GET | `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}/history` | GET Return salary allocation history for a given employee id |
| PUT | `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}/noallocation` | PUT Disable salary allocation for a given employee id |
| PUT | `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}/monthlysalary` | PUT Set salary allocation for a given employee id to Monthly Salary |
| PUT | `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}/scheduledhours` | PUT Set salary allocation for a given employee id to Scheduled Hours |
| PUT | `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}/businessdays` | PUT Set salary allocation for a given employee id to Business Days |
| GET | `/pay/v1.0/payrates/employeeGroups/default` | GET Return default pay rates for all employee groups |
| GET | `/pay/v1.0/payrates/employeeGroups/{employeeGroupId}/default` | GET Return default pay rate for an employee group with specified id |

## Key resources

- **PayRates** — ### Overview


**Methods Supported** | `GET`, `PUT`
--- | ---
**Description** | Controller for pay
- **Allocations** — ### Overview


**Methods Supported** | `GET`, `PUT`
--- | ---
**Description** | Get or set salary a
- **DefaultPayRates** — ### Overview


**Methods Supported** | `GET`, `PUT`
--- | ---
**Description** | Controller for defa
- **EmployeeSalaries** — ### Overview


**Methods Supported** | `GET`, `PUT`
--- | ---
**Description** | Controller for empl
- **Salaries** — ### Overview


**Methods Supported** | `GET`
--- | ---
**Description** | Controller for employee sa

## Why Jentic

- **Setup:** Wiring Planday by hand means learning its combined Bearer token and X-ClientId header auth and hand-building requests across its pay and salary-allocation endpoints yourself. Through Jentic you install once, import Planday from the API Directory, store the token and client id once, and your agent calls it.
- **Permission scoping:** Planday puts the employee id in the URL path (`/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}`), so a rule can pin your agent to one employee: it reads that employee's allocations and nothing else. You choose the operations it may call, so state-changing ones like setting a monthly salary or scheduled hours are not included unless you add them.
- **Credential handling:** Your Planday token and client id are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get salary allocations for an employee' or 'read default pay rates', and Jentic returns the matching Planday operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Greenhouse** — Alternative hr recruiting API
- **Lever** — Alternative hr recruiting API
- **Workday** — Complementary hr recruiting API

## FAQ

### What authentication does the Planday API use?

The Planday API uses Bearer, apiKey authentication. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I get return salary allocation for a given employee id with the Planday API?

Yes. Use the GET `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}` endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the Planday API?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I get return salary allocation for a given employee id through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'get return salary allocation for a given employee id'. Jentic returns the matching Planday API operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the Planday API have?

The Planday API exposes 90 endpoints covering payrates, allocations, defaultpayrates operations.

### Can I limit what my agent is allowed to do with the Planday API?

Yes. Jentic One is self-hosted, so your own rules decide which Planday operations and credentials the agent may use. Because Planday puts the employee id in the URL path, such as `/pay/v1.0/salaries/scheduling/timeandcost/allocations/{employeeId}`, you can pin the agent to a single employee and let it read only that person's salary allocations. You also choose which operations it may call, so state-changing endpoints like setting a monthly salary or scheduled hours stay off unless you add them.
