---
canonical_url: "https://docs.composio.dev/toolkits/personio"
markdown_url: "https://docs.composio.dev/toolkits/personio.md"
product: "platform"
version: null
last_updated: null
---

# Personio

Read Personio people, employment, attendance, absence, project, document, and employee-attribute data.

- **Category:** human resources
- **Auth:** S2S_OAUTH2
- **Composio-managed OAuth available?** No
- **Tools:** 10
- **Triggers:** 0
- **Slug:** `PERSONIO`
- **Version:** 00000000_00

## Tools

### List Absence Periods

**Slug:** `PERSONIO_LIST_ABSENCE_PERIODS`

Return v2 absence periods filtered by person, absence type, IDs, date-time bounds, or update time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum absence periods to return in this page (1-100). |
| `cursor` | string | No | Continuation cursor returned by the previous call; omit for the first page. |
| `person_ids` | array | No | Person IDs to match. |
| `absence_type_ids` | array | No | Absence type IDs to match. |
| `ends_at_or_after` | string | No | Return periods ending at or after this ISO 8601 date-time. |
| `ends_at_or_before` | string | No | Return periods ending at or before this ISO 8601 date-time. |
| `absence_period_ids` | array | No | Absence period IDs to match. |
| `starts_at_or_after` | string | No | Return periods starting at or after this ISO 8601 date-time. |
| `starts_at_or_before` | string | No | Return periods starting at or before this ISO 8601 date-time. |
| `updated_at_or_after` | string | No | Return periods updated at or after this ISO 8601 date-time. |
| `updated_at_or_before` | string | No | Return periods updated at or before this ISO 8601 date-time. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Absence Types

**Slug:** `PERSONIO_LIST_ABSENCE_TYPES`

Return the v2 absence types configured for the company, including IDs, names, categories, and units.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum absence types to return in this page (1-100). |
| `cursor` | string | No | Continuation cursor returned by the previous call; omit for the first page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Attendance Periods

**Slug:** `PERSONIO_LIST_ATTENDANCE_PERIODS`

Return v2 attendance periods filtered by people, projects, status, attribution dates, time bounds, or update time.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | Comma-separated sort fields. Supported fields are person.id, start.date_time, end.date_time, updated_at, and status; prefix a field with '-' for descending order. |
| `limit` | integer | No | Maximum attendance periods to return in this page (1-100). |
| `cursor` | string | No | Continuation cursor returned by the previous call; omit for the first page. |
| `status` | string ("PENDING" | "CONFIRMED" | "REJECTED") | No | Attendance approval status to match. |
| `person_ids` | array | No | Person IDs to match. |
| `project_ids` | array | No | Project IDs to match. |
| `starts_at_or_after` | string | No | Return periods starting at or after this local date-time. Use YYYY-MM-DDTHH:MM:SS without Z or a timezone offset. |
| `starts_at_or_before` | string | No | Return periods starting at or before this local date-time. Use YYYY-MM-DDTHH:MM:SS without Z or a timezone offset. |
| `updated_at_or_after` | string | No | Return periods updated at or after this UTC date-time. Use an ISO 8601 value ending in Z; Personio also accepts a missing suffix as UTC. |
| `updated_at_or_before` | string | No | Return periods updated at or before this UTC date-time. Use an ISO 8601 value ending in Z; Personio also accepts a missing suffix as UTC. |
| `attendance_period_ids` | array | No | Attendance period IDs to match. |
| `attributed_on_or_after` | string | No | Return periods attributed on or after this date (YYYY-MM-DD). |
| `attributed_on_or_before` | string | No | Return periods attributed on or before this date (YYYY-MM-DD). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Document Categories

**Slug:** `PERSONIO_LIST_DOCUMENT_CATEGORIES`

Return the legacy Personnel Data document categories and IDs used to classify or filter company documents.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Documents

**Slug:** `PERSONIO_LIST_DOCUMENTS`

Return v2 document metadata for one owner, optionally filtered by category and creation date; this does not download document contents.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum document records to return in this page (1-200). |
| `cursor` | string | No | Continuation cursor returned by the previous call; omit for the first page. |
| `owner_id` | string | Yes | ID of the person or other owner whose document metadata should be listed. |
| `category_id` | string | No | Document category ID to match. |
| `created_before` | string | No | Return documents created before this date (YYYY-MM-DD), excluding the given date. |
| `created_on_or_after` | string | No | Return documents created on or after this date (YYYY-MM-DD). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Employee Attributes

**Slug:** `PERSONIO_LIST_EMPLOYEE_ATTRIBUTES`

Return the standard and custom employee attributes readable by the connected integration, including the keys accepted by list employee records.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Employee Records

**Slug:** `PERSONIO_LIST_EMPLOYEE_RECORDS`

Return legacy Personnel Data employee records with selectable standard or custom attributes and incremental-update filtering; use List Persons for ordinary v2 identity lookup.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | Return the employee with this email address; ignored by Personio when updated_since is set. |
| `limit` | integer | No | Maximum employee records to return in this page; ignored by Personio when updated_since is set. |
| `cursor` | integer | No | Continuation offset returned by the previous call; omit for the first page. |
| `attributes` | array | No | Employee attribute keys to return, including readable custom keys discovered with List Employee Attributes. |
| `updated_since` | string | No | Return records updated after this ISO 8601 date-time or YYYY-MM-DD date. Personio ignores email, limit, and cursor when this filter is used. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Person Employments

**Slug:** `PERSONIO_LIST_PERSON_EMPLOYMENTS`

Return employment records for one v2 person, including status, type, and working-hours details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum employments to return in this page (1-50). |
| `cursor` | string | No | Continuation cursor returned by the previous call; omit for the first page. |
| `person_id` | string | Yes | Person ID whose employments should be returned. |
| `updated_after` | string | No | Return employments updated after this ISO 8601 date-time. |
| `employment_ids` | array | No | Employment IDs to match. |
| `updated_before` | string | No | Return employments updated before this ISO 8601 date-time. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Persons

**Slug:** `PERSONIO_LIST_PERSONS`

Return current v2 person summaries, optionally filtered by identity, status, or creation and update times; use employee records instead when custom Personnel Data attributes are needed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum persons to return in this page (1-50). |
| `cursor` | string | No | Continuation cursor returned by the previous call; omit for the first page. |
| `emails` | array | No | Email addresses to match. |
| `status` | string ("ACTIVE" | "INACTIVE") | No | Employment-derived person status to match. |
| `last_name` | string | No | Last name to match. |
| `first_name` | string | No | First name to match. |
| `person_ids` | array | No | Person IDs to match. |
| `created_after` | string | No | Return persons created after this ISO 8601 date-time. |
| `updated_after` | string | No | Return persons updated after this ISO 8601 date-time. |
| `created_before` | string | No | Return persons created before this ISO 8601 date-time. |
| `preferred_name` | string | No | Preferred name to match. |
| `updated_before` | string | No | Return persons updated before this ISO 8601 date-time. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Projects

**Slug:** `PERSONIO_LIST_PROJECTS`

Return v2 time-tracking projects filtered by IDs, names, codes, status, hierarchy, or top-level membership.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum projects to return in this page (1-200). |
| `names` | array | No | Project names to match. |
| `cursor` | string | No | Continuation cursor returned by the previous call; omit for the first page. |
| `status` | string ("ACTIVE" | "ARCHIVED") | No | Project status to match. |
| `include` | array | No | Additional project metrics to include in each result. |
| `project_ids` | array | No | Project IDs to match. |
| `project_codes` | array | No | Project codes to match. |
| `top_level_only` | boolean | No | When true, return only projects without a parent. |
| `parent_project_ids` | array | No | Parent project IDs to match. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
