> ## Documentation Index
> Fetch the complete documentation index at: https://absentify.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick start

> Get up and running with the absentify API in minutes — generate an API key, send your first authenticated request, and explore example endpoints.

Welcome to the absentify API! This quick start guide will walk you through the basic steps to make your first API request.

<Note>
  Access to the API requires a Plus-Plan subscription. If you haven't subscribed yet, please do so to obtain your API key.
</Note>

### Step 1: Get your API key

Every request to the absentify API requires an API key. Without it, requests will be rejected with an error. To get your API key, log into the absentify Dashboard and follow the prompts to generate one. If you signed up with email, you must confirm your email address before you can create an API key.

For details on how to use the API key in requests, refer to the [Authentication](./authentication) section.

### Step 2: Set up authentication

Include the API key in the headers of each request to authenticate with the absentify API. Use the following settings:

* **Header name**: `x-api-key`
* **Header value**: Your unique API key

### Step 3: Make your first request

With authentication set up, you’re ready to send your first request. Start by making an authenticated GET request to the `/requests` endpoint, which returns a list of current absence requests.

<CodeGroup>
  ```python request_example.py theme={null}
  import requests

  url = "https://api.absentify.com/api/v1/requests"
  api_key = "your_api_key_here"

  headers = {
      "x-api-key": api_key,
      "Content-Type": "application/json"
  }

  response = requests.get(url, headers=headers)
  print(response.json())
  ```

  ```javascript requestExample.js theme={null}
  const fetch = require('node-fetch');

  const url = "https://api.absentify.com/api/v1/requests";
  const apiKey = "your_api_key_here";

  const headers = {
      "x-api-key": apiKey,
      "Content-Type": "application/json"
  };

  fetch(url, { headers })
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Error:', error));
  ```

  ```bash request_example.sh theme={null}
  curl -X GET "https://api.absentify.com/api/v1/requests" \
  -H "x-api-key: your_api_key_here" \
  -H "Content-Type: application/json"
  ```
</CodeGroup>

Be sure to replace `"your_api_key_here"` with your actual API key from Step 1.

### Date and time format

Many endpoints accept date or time parameters. Examples include the required `start` and `end` parameters when listing requests or absences over a period, and `employment_start_date` and `birthday` when creating a member.

**Always send dates and times in [ISO 8601](https://learn.microsoft.com/en-us/rest/api/storageservices/formatting-datetime-values) format:**

| You want               | Send                        | Interpreted as                        |
| ---------------------- | --------------------------- | ------------------------------------- |
| A whole day            | `2026-06-01`                | `2026-06-01T00:00:00Z` (UTC midnight) |
| A specific time        | `2026-06-01T09:00:00Z`      | 09:00 UTC                             |
| A time in another zone | `2026-06-01T09:00:00+02:00` | 07:00 UTC                             |

When sending a time of day, **always include a time-zone designator** (`Z` for UTC, or an offset like `+02:00`). A value without one is interpreted in the server's time zone and may shift the result.

<Warning>
  Do **not** use localized date formats such as `01.06.2026` or `06/01/2026`. They are not rejected — they are silently misinterpreted (for example `01.06.2026` is read as **6 January 2026**, not 1 June), so your request returns data for the wrong period. Stick to ISO 8601.
</Warning>

For example, to list all requests in June 2026:

```bash theme={null}
curl -X GET "https://api.absentify.com/api/v1/requests?start=2026-06-01&end=2026-06-30" \
-H "x-api-key: your_api_key_here" \
-H "Content-Type: application/json"
```

All dates and times in API **responses** are likewise returned in ISO 8601 with a UTC `Z` suffix (e.g. `2026-06-01T00:00:00.000Z`).

The `end` parameter is **inclusive**. For example, `start=2026-06-01&end=2026-06-30` returns everything that overlaps June, including absences on 30 June.

For `/requests`, `/requests_per_day`, and `/absences_per_day`, the `start`…`end` window may span at most **1826 days (5 years)**. Wider or inverted ranges return `400`; retrieve longer periods in consecutive, smaller windows. See [Limits](./limits) for details.

### Filtering by member or department

Endpoints that return lists (such as `/requests`, `/requests_per_day` and `/absences_per_day`) accept optional `request_member_ids` and `department_ids` filters.

Pass multiple IDs as a **comma-separated** string, e.g. `department_ids=dept1,dept2`. Semicolons (`;`) are also accepted as a separator for backward compatibility.

```bash theme={null}
curl -X GET "https://api.absentify.com/api/v1/requests?start=2026-06-01&end=2026-06-30&department_ids=dept1,dept2" \
-H "x-api-key: your_api_key_here" \
-H "Content-Type: application/json"
```

### Next steps

* Review the [Limits](./limits) section to understand request rate limits and ensure consistent API usage.
* Check the [Responses](./responses) section to learn how to handle successful and error responses effectively.

With these steps, you’re ready to integrate absentify API features into your application. Happy coding!
