# Public holidays and Hijri calendar

> Documentation index for AI agents: [/llms.txt](https://docs.apiindonesia.id/llms.txt). Every page is also available as markdown: add `.md` to the URL.

National holidays and cuti bersama (SKB 3 Menteri), plus Hijri date conversion and calendar.

Public holidays include joint leave days (cuti bersama) set by the SKB 3 Menteri decree. The Hijri endpoints convert dates and return a Hijri calendar.

All endpoints need the `x-api-key` header (see [Authentication](https://docs.apiindonesia.id/authentication.md)) and return the standard [envelope](https://docs.apiindonesia.id/errors.md). A successful request costs 2 credits.

## Endpoints on this page

- [`GET /api/v1/libur`](#get-api-v1-libur): List public holidays
- [`GET /api/v1/libur/upcoming`](#get-api-v1-libur-upcoming): Upcoming holidays
- [`GET /api/v1/libur/{id}`](#get-api-v1-libur-id): Retrieve a holiday
- [`GET /api/v1/hijriah/konversi`](#get-api-v1-hijriah-konversi): Convert date
- [`GET /api/v1/hijriah/kalender`](#get-api-v1-hijriah-kalender): Year calendar

## Public Holidays

Calendar of national public holidays, religious holidays, and joint leave days based on the SKB 3 Menteri (joint ministerial decree).

### GET /api/v1/libur

**List public holidays.** Returns a list of public holidays, sorted by date. Can be filtered by year and month.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `tahun` | query | no | integer | Filter by year, e.g. 2026. |
| `bulan` | query | no | string | Filter by month (two digits), e.g. 06. |

```bash
curl "https://use.apiindonesia.id/api/v1/libur" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": "hol_2026_001",
      "date": "2026-01-01",
      "name": "Tahun Baru 2026 Masehi",
      "type": "nasional",
      "is_joint_leave": 0,
      "description": null,
      "source": "SKB 3 Menteri",
      "year": 2026,
      "is_active": 1
    }
  ]
}
```

### GET /api/v1/libur/upcoming

**Upcoming holidays.** Returns up to 10 upcoming public holidays, counted from today.

```bash
curl "https://use.apiindonesia.id/api/v1/libur/upcoming" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "id": "hol_2026_014",
      "date": "2026-08-17",
      "name": "Hari Kemerdekaan RI",
      "type": "nasional",
      "is_joint_leave": 0,
      "source": "SKB 3 Menteri",
      "year": 2026,
      "is_active": 1
    }
  ]
}
```

### GET /api/v1/libur/{id}

**Retrieve a holiday.** Returns a single public holiday by ID.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `id` | path | yes | string | Holiday ID. |

```bash
curl "https://use.apiindonesia.id/api/v1/libur/hol_2026_014" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "id": "hol_2026_014",
    "date": "2026-08-17",
    "name": "Hari Kemerdekaan RI",
    "type": "nasional",
    "is_joint_leave": 0,
    "description": null,
    "source": "SKB 3 Menteri",
    "year": 2026,
    "is_active": 1
  }
}
```

## Hijri Calendar

Gregorian ↔ Hijri date conversion based on the Indonesian Hijri Calendar (Kemenag, MABIMS). Static 2026 data.

### GET /api/v1/hijriah/konversi

**Convert date.** Convert one Gregorian date to Hijri.

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `tanggal` | query | yes | string | YYYY-MM-DD |

```bash
curl "https://use.apiindonesia.id/api/v1/hijriah/konversi?tanggal=2026-07-11" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": {
    "gregorian_date": "2026-07-11",
    "hijri_formatted": "26 Muharram 1448 H"
  },
  "meta": {
    "disclaimer": "Berdasarkan Kalender Hijriah Indonesia (hisab MABIMS)..."
  }
}
```

### GET /api/v1/hijriah/kalender

**Year calendar.** Full date mapping for one Gregorian year (currently 2026).

| Parameter | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `tahun` | query | yes | integer | Gregorian year, e.g. 2026 |

```bash
curl "https://use.apiindonesia.id/api/v1/hijriah/kalender?tahun=2026" \
  -H "x-api-key: YOUR_API_KEY"
```

Example response (shortened):

```json
{
  "data": [
    {
      "gregorian_date": "2026-01-01",
      "hijri_day": 12,
      "hijri_month_name": "Rajab",
      "hijri_year": 1447
    }
  ],
  "meta": {
    "tahun": 2026,
    "total_days": 365
  }
}
```
