Documentation Index
Fetch the complete documentation index at: https://developers.lucca.fr/llms.txt
Use this file to discover all available pages before exploring further.
Introduction
The v2 API will be shut down on March 31, 2026, and will no longer respond after this date.
- suffers from significant performance issues, that also affect other API endpoints;
- relies on older technology, that may suffer from security vulnerabilities.
- offers faster response times;
- gives you additional features (pagination, sorting);
- shares the same authentication system than v2.
/api/leaves API endpoint in your integration, then you are affected by this and
must migrate to /api/v3/leaves before 2026-03-31. Otherwise, you are free to skip this.
Changes
Routes
| V2 | V3 |
|---|---|
/api/leaves | /api/v3/leaves |
Query parameters
| api v2 | api v3 | Description |
|---|---|---|
owner.id | leavePeriod.ownerId | Filter leaves by the employee ID they belong to. |
Response
In V2, all responses are a JSON object with adata property which is:
- a JSON object for a response containing a singular resource;
- a JSON array for a response containing a collection of resources.
data property which is always a JSON object. For collections,
it contains an items property, which is a JSON aray which contains the representations of resources in the collection.
Fields
Some of the fields were renamed, moved, removed and/or changed type.| V2 | V3 Equivalent | Description |
|---|---|---|
id: string | id: string | ID generation pattern changed-see below. |
status: string<enum> | status: string<enum> | Represents the approval status of the leave. The enum was changed-see below. |
owner.id: integer | leavePeriod.ownerId: integer | ID of the employee this leave belongs to. The owner is now a property of the leavePeriod. |
owner.name: string | leavePeriod.owner.name: string | Name of the employee this leave belongs to. |
owner.mail: string<email> | N/A | No longer available for security reasons*. |
owner.login: string | N/A | No longer available for security reasons*. |
owner.matricule: string | N/A | No longer available for security reasons*. |
name: string | leaveAccount.name: string | In v2, the name was equal to the name of the leave account. |
duration: integer | duration: string<time> | Duration of the leave, in minutes in v2 (e.g. 720), as a time in v3 (e.g. "12:00:00"). |
accountCode: string | leaveAccount.id: integer | Unique identifier of the leave account. |
accountLabel: string | leaveAccount.name: string | Name of the leave account (e.g. “Vacations”, “Sickness” …) |
| N/A | isActive | Whether the leave was deleted. A deleted leave used to completely disappear in v2, but it can still be retrieved in v3. |
leaveScope: string = ‘AM’ | ‘PM’ | isAM: boolean | Whether the leave belong to the morning or the afternoon. |
About Leave ID
V2 ABNF Syntax for Leave ID
V3 ABNF Syntax for Leave ID
About Leave Status
V2 Leave Status Enum
V3 Leave Status Enum