Langsung ke konten utama
Pasal.id

API Hukum Indonesia — Dokumentasi REST

API REST publik untuk mencari dan mengakses undang-undang, peraturan, dan pasal hukum Indonesia. Gratis, tanpa autentikasi, dengan pencarian teks lengkap.

Base URL

https://pasal.id/api/v1

Endpoint

GET/api/v1/laws

Daftar peraturan dengan filter jenis, tahun, dan status. Mendukung pagination.

Parameter

typeFilter jenis peraturan (lihat daftar kode di bawah)
yearFilter tahun (contoh: 2023)
statusFilter status: berlaku, dicabut, atau diubah
limitJumlah hasil (default: 20, max: 100)
offsetOffset untuk pagination (default: 0)

Contoh request

curl "https://pasal.id/api/v1/laws?type=UU&year=2003&limit=2"

Contoh response

{
  "total": 5,
  "limit": 2,
  "offset": 0,
  "laws": [
    {
      "id": 1,
      "frbr_uri": "/akn/id/act/uu/2003/13",
      "title": "Ketenagakerjaan",
      "number": "13",
      "year": 2003,
      "status": "berlaku",
      "content_verified": true,
      "type": "UU"
    },
    {
      "id": 7,
      "frbr_uri": "/akn/id/act/uu/2003/17",
      "title": "Keuangan Negara",
      "number": "17",
      "year": 2003,
      "status": "berlaku",
      "content_verified": true,
      "type": "UU"
    }
  ]
}

GET/api/v1/laws/{frbr_uri}

Detail lengkap satu peraturan: metadata, daftar pasal beserta isi, dan relasi ke peraturan lain.

Parameter

frbr_uriwajibPath FRBR URI, contoh: akn/id/act/uu/2003/13

Contoh request

curl "https://pasal.id/api/v1/laws/akn/id/act/uu/2003/13"

Contoh response

{
  "work": {
    "id": 1,
    "frbr_uri": "/akn/id/act/uu/2003/13",
    "title": "Ketenagakerjaan",
    "number": "13",
    "year": 2003,
    "status": "berlaku",
    "content_verified": true,
    "type": "UU",
    "type_name": "Undang-Undang",
    "source_url": "https://peraturan.go.id/..."
  },
  "articles": [
    {
      "id": 10,
      "type": "bab",
      "number": "I",
      "heading": "KETENTUAN UMUM",
      "content": null,
      "parent_id": null,
      "sort_order": 1
    },
    {
      "id": 11,
      "type": "pasal",
      "number": "1",
      "heading": null,
      "content": "Dalam undang-undang ini yang dimaksud dengan: 1. Ketenagakerjaan adalah...",
      "parent_id": 10,
      "sort_order": 2
    }
  ],
  "relationships": [
    {
      "type": "Mengubah",
      "type_en": "Amends",
      "related_work": {
        "frbr_uri": "/akn/id/act/uu/1969/14",
        "title": "Ketentuan-Ketentuan Pokok Mengenai Tenaga Kerja",
        "number": "14",
        "year": 1969,
        "status": "dicabut"
      }
    }
  ]
}

Kode Jenis Peraturan

Gunakan kode berikut pada parameter type di endpoint /search dan /laws. Tidak case-sensitive.

KodeNama
UUDUndang-Undang Dasar
TAP_MPRKetetapan MPR
UUUndang-Undang
PERPPUPeraturan Pemerintah Pengganti Undang-Undang
PPPeraturan Pemerintah
PERPRESPeraturan Presiden
KEPPRESKeputusan Presiden
INPRESInstruksi Presiden
PENPRESPenetapan Presiden
PERMENPeraturan Menteri
PERMENKUMHAMPeraturan Menteri Hukum dan HAM
PERMENKUMPeraturan Menteri Hukum
PERBANPeraturan Badan/Lembaga
PERDAPeraturan Daerah
PERDA_PROVPeraturan Daerah Provinsi
PERDA_KABPeraturan Daerah Kabupaten/Kota
KEPMENKeputusan Menteri
SESurat Edaran
PERMAPeraturan Mahkamah Agung
PBIPeraturan Bank Indonesia
UUDRTUndang-Undang Darurat
UUDSUndang-Undang Dasar Sementara

Nilai Status

Gunakan pada parameter status di endpoint /laws.

NilaiKeterangan
berlakuPeraturan masih berlaku (in force)
dicabutPeraturan telah dicabut (revoked)
diubahPeraturan telah diubah/diamandemen (amended)

Mulai Cepat

Cari peraturan tentang ketenagakerjaan

curl "https://pasal.id/api/v1/search?q=ketenagakerjaan"

Daftar semua Peraturan Pemerintah tahun 2020

curl "https://pasal.id/api/v1/laws?type=PP&year=2020"

Detail UU 13/2003 (Ketenagakerjaan) dengan semua pasal

curl "https://pasal.id/api/v1/laws/akn/id/act/uu/2003/13"

Gunakan di JavaScript / TypeScript

const res = await fetch("https://pasal.id/api/v1/search?q=upah+minimum");
const data = await res.json();

// data.results berisi array hasil pencarian
for (const result of data.results) {
  console.log(result.work.title, "-", result.metadata.node_type, result.metadata.node_number);
  console.log(result.snippet);
}

Gunakan di Python

import requests

res = requests.get("https://pasal.id/api/v1/laws", params={"type": "UU", "limit": 5})
data = res.json()

for law in data["laws"]:
    print(f"{law['type']} {law['number']}/{law['year']} - {law['title']}")

Error Response

KodeKeterangan
400Parameter tidak valid atau tidak lengkap
404Peraturan tidak ditemukan
429Terlalu banyak request

Rate Limit

API ini gratis dan terbuka untuk semua. Untuk menjaga kualitas layanan, kami menerapkan batas berikut:

Request per menit60
Request per hari1.000
AutentikasiTidak diperlukan
CORSSemua origin (*)

Request yang melebihi batas akan mendapat respons 429 Too Many Requests.

Butuh limit lebih besar?

Jika Anda membangun aplikasi yang memerlukan akses lebih banyak, kami siap membantu. Hubungi kami untuk mendiskusikan kebutuhan Anda, termasuk API key khusus dan batas yang lebih besar.

Hubungi kami

Untuk integrasi AI, gunakan MCP Server kami, akses langsung dari Claude tanpa perlu menulis kode.