Hari Libur Nasional
Freeindonesia:hari-libur
Hari libur nasional dan cuti bersama (SKB 3 Menteri) per tahun, pengecekan tanggal, dan penghitung hari kerja. Tanggal yang belum ditetapkan resmi ditandai tentative. Tahun di luar cakupan sumber utama dijawab sumber cadangan tanpa cuti bersama.
Belum punya key? Daftar gratis
GET/v1/indonesia:hari-libur/check
Cek apakah sebuah tanggal hari libur, cuti bersama, atau akhir pekan.
Cache 86400 dtk
1 kuota / request
indonesia.hari-libur.check
cURL
curl -H "x-api-key: ga_live_..." "https://kajidata.artonlabs.com/v1/indonesia:hari-libur/check?date=2026-08-17"
Python
import requests
response = requests.get(
"https://kajidata.artonlabs.com/v1/indonesia:hari-libur/check",
params={"date": "2026-08-17"},
headers={"x-api-key": "ga_live_..."},
timeout=30,
)
body = response.json()
print(body["data"] if body["ok"] else body["error"])
JavaScript
const params = new URLSearchParams({"date": "2026-08-17"});
const response = await fetch(`https://kajidata.artonlabs.com/v1/indonesia:hari-libur/check?${params}`, {
headers: { "x-api-key": "ga_live_..." },
});
const body = await response.json();
console.log(body.ok ? body.data : body.error);
PHP
<?php
$ch = curl_init('https://kajidata.artonlabs.com/v1/indonesia:hari-libur/check?' . http_build_query(['date' => '2026-08-17']));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ga_live_...'],
CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body['ok'] ? $body['data'] : $body['error']);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
func main() {
params := url.Values{}
params.Set("date", "2026-08-17")
req, _ := http.NewRequest("GET", "https://kajidata.artonlabs.com/v1/indonesia:hari-libur/check?"+params.Encode(), nil)
req.Header.Set("x-api-key", "ga_live_...")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
fmt.Println(body["data"])
}
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/check?date=2026-08-17"))
.header("x-api-key", "ga_live_...")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Ruby
require "net/http"
require "json"
uri = URI("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/check")
uri.query = URI.encode_www_form({"date" => "2026-08-17"})
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "ga_live_..."
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
body = JSON.parse(response.body)
puts body["ok"] ? body["data"] : body["error"]
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "ga_live_...");
var json = await client.GetStringAsync("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/check?date=2026-08-17");
Console.WriteLine(json);
GET/v1/indonesia:hari-libur/hari-kerja
Jumlah hari kerja (Senin-Jumat, di luar libur nasional dan cuti bersama) di antara dua tanggal.
Cache 86400 dtk
1 kuota / request
indonesia.hari-libur.hari-kerja
cURL
curl -H "x-api-key: ga_live_..." "https://kajidata.artonlabs.com/v1/indonesia:hari-libur/hari-kerja?end=2026-03-31&start=2026-03-16"
Python
import requests
response = requests.get(
"https://kajidata.artonlabs.com/v1/indonesia:hari-libur/hari-kerja",
params={"end": "2026-03-31", "start": "2026-03-16"},
headers={"x-api-key": "ga_live_..."},
timeout=30,
)
body = response.json()
print(body["data"] if body["ok"] else body["error"])
JavaScript
const params = new URLSearchParams({"end": "2026-03-31", "start": "2026-03-16"});
const response = await fetch(`https://kajidata.artonlabs.com/v1/indonesia:hari-libur/hari-kerja?${params}`, {
headers: { "x-api-key": "ga_live_..." },
});
const body = await response.json();
console.log(body.ok ? body.data : body.error);
PHP
<?php
$ch = curl_init('https://kajidata.artonlabs.com/v1/indonesia:hari-libur/hari-kerja?' . http_build_query(['end' => '2026-03-31', 'start' => '2026-03-16']));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ga_live_...'],
CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body['ok'] ? $body['data'] : $body['error']);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
func main() {
params := url.Values{}
params.Set("end", "2026-03-31")
params.Set("start", "2026-03-16")
req, _ := http.NewRequest("GET", "https://kajidata.artonlabs.com/v1/indonesia:hari-libur/hari-kerja?"+params.Encode(), nil)
req.Header.Set("x-api-key", "ga_live_...")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
fmt.Println(body["data"])
}
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/hari-kerja?end=2026-03-31&start=2026-03-16"))
.header("x-api-key", "ga_live_...")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Ruby
require "net/http"
require "json"
uri = URI("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/hari-kerja")
uri.query = URI.encode_www_form({"end" => "2026-03-31", "start" => "2026-03-16"})
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "ga_live_..."
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
body = JSON.parse(response.body)
puts body["ok"] ? body["data"] : body["error"]
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "ga_live_...");
var json = await client.GetStringAsync("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/hari-kerja?end=2026-03-31&start=2026-03-16");
Console.WriteLine(json);
GET/v1/indonesia:hari-libur/list
Semua hari libur nasional, cuti bersama, dan hari peringatan dalam satu tahun.
Cache 86400 dtk
1 kuota / request
indonesia.hari-libur.list
cURL
curl -H "x-api-key: ga_live_..." "https://kajidata.artonlabs.com/v1/indonesia:hari-libur/list?year=2026"
Python
import requests
response = requests.get(
"https://kajidata.artonlabs.com/v1/indonesia:hari-libur/list",
params={"year": "2026"},
headers={"x-api-key": "ga_live_..."},
timeout=30,
)
body = response.json()
print(body["data"] if body["ok"] else body["error"])
JavaScript
const params = new URLSearchParams({"year": "2026"});
const response = await fetch(`https://kajidata.artonlabs.com/v1/indonesia:hari-libur/list?${params}`, {
headers: { "x-api-key": "ga_live_..." },
});
const body = await response.json();
console.log(body.ok ? body.data : body.error);
PHP
<?php
$ch = curl_init('https://kajidata.artonlabs.com/v1/indonesia:hari-libur/list?' . http_build_query(['year' => '2026']));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ga_live_...'],
CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body['ok'] ? $body['data'] : $body['error']);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
func main() {
params := url.Values{}
params.Set("year", "2026")
req, _ := http.NewRequest("GET", "https://kajidata.artonlabs.com/v1/indonesia:hari-libur/list?"+params.Encode(), nil)
req.Header.Set("x-api-key", "ga_live_...")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
fmt.Println(body["data"])
}
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/list?year=2026"))
.header("x-api-key", "ga_live_...")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Ruby
require "net/http"
require "json"
uri = URI("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/list")
uri.query = URI.encode_www_form({"year" => "2026"})
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "ga_live_..."
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
body = JSON.parse(response.body)
puts body["ok"] ? body["data"] : body["error"]
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "ga_live_...");
var json = await client.GetStringAsync("https://kajidata.artonlabs.com/v1/indonesia:hari-libur/list?year=2026");
Console.WriteLine(json);