> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://support.xperiencehr.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# General API

The **General API** in XperienceHR provides a comprehensive interface for managing various core system elements, including employees, work calendars, client records, and API status checks. It enables seamless integration with external systems to automate data synchronization and streamline HR and administrative processes.

This API is particularly beneficial for organizations looking to efficiently manage employee assignments, update work schedules, handle client information, and verify system availability in real-time. It supports **XML & JSON format** for structured data exchange and requires authentication via an **API key**.

By leveraging the General API, businesses can integrate their systems with XperienceHR, reducing manual data entry and ensuring accurate, up-to-date information across platforms.

# Overview

**API Type:** REST
**Supported Formats:** XML
**API Key:** Generated in the app configuration
**Method:** *GET, POST*
**Authentication:** API Key (via request parameter `apiKey` or header `X-API-KEY`)
---

### Employee API (GET / POST)

Manages employees and their assignments within XperienceHR.

###### Operations:
* Retrieve all employees
* Filter employees by **Organization Unit**
* **Create, Update, or Deactivate** an employee
* Assign an employee to a **Project**
* Remove an employee from a **Project**
* Assign a user to an **Organization Unit**
---

### Work Calendar API (POST)

Handles work calendar configurations.

###### Operations:
* **Create** a new work calendar
* **Update** an existing work calendar (past dates cannot be modified)
---

### Shift Assignment API (POST)

Manages **work calendar assignments**.

###### Operations:
* Assign a **Work Calendar** to an employee
---

### Clients API (GET / POST)

Manages client records in XperienceHR.

###### Operations:
* **Retrieve all clients**
* **Get client details**
* **Update client information**
* **Activate or deactivate a client**
---

### Check API Availability (GET)

Verifies the availability status of the **XperienceHR REST API**.

###### Endpoint:
---

### API Authentication & Request Headers

To authenticate API requests, an **API key** must be included in every request. The API key can be provided in one of the following ways:
* **As a request parameter** (`apiKey`), which takes priority over the header method
* **As a request header** (`X-API-KEY`)

###### Request Headers

All API requests must include a **valid request header**, formatted in **XML**.
| Header Name | Value |
| ---- |
| Content-Type | application/xml |
| Accept | application/json  (In case you are using json format) |
| X-API-KEY | [Your API Key]  (If not using request parameter) |

###### Request Structure

* **All API calls using the POST method** must include a **BODY** in **XML format**.
* **CODE values have a higher priority** over NAME values when both are provided in a request.

This ensures proper data structure and priority handling when making API calls.
---

### Process Status Handling

For API calls using the **POST method**, responses may return one of the following:
1. **A valid XML response** – If the request is processed successfully.
2. **An error message** – If the request contains invalid data or encounters an issue.
3. **A process ID (`processId`) with a `WAITING` status** – When multiple processes are being evaluated at the same time.

###### Handling a WAITING Process

If the response includes a `processId` with a `WAITING` status, you must query the API again using the returned `processId` to check whether the request has been completed.

###### Endpoint:
