Memuat Portal Satu Data...

Tentang API Satu Data Luwu Timur

API Satu Data Luwu Timur menyediakan akses programatik ke seluruh dataset yang dipublikasikan di portal satudata.luwutimurkab.go.id. API ini bersifat terbuka dan tidak memerlukan autentikasi untuk mengakses data publik.

Semua response menggunakan format JSON. Pastikan request header menyertakan Accept: application/json.
Versi v1.0
Format JSON
Autentikasi Tidak diperlukan
Rate Limit Tidak dibatasi
Protocol HTTPS
Method GET
Encoding UTF-8
CORS Diizinkan
Struktur Response

Semua response API mengembalikan objek JSON dengan field status dan message sebagai indikator keberhasilan request.

{
    "status": 200,
    "message": "OK",
    "data": [...]
}
GET /urusan Daftar Urusan

Mengembalikan daftar seluruh urusan (kategori) yang tersedia di portal. Gunakan id dari response ini sebagai parameter pada endpoint /dataset/by-urusan/{id}.

curl -X GET \
  "https://satudata.luwutimurkab.go.id/api/urusan" \
  -H "Accept: application/json"
fetch('https://satudata.luwutimurkab.go.id/api/urusan')
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));
$response = file_get_contents('https://satudata.luwutimurkab.go.id/api/urusan');
$data     = json_decode($response, true);
print_r($data);
Contoh Response
200 OK
{
  "status": 200,
  "message": "OK",
  "data": [
    { "id": 1, "urusan": "Pertanian" },
    { "id": 2, "urusan": "Pendidikan" },
    { "id": 3, "urusan": "Kesehatan" }
  ]
}
GET /organisasi Daftar Organisasi

Mengembalikan daftar seluruh organisasi perangkat daerah (OPD) yang menjadi produsen data. Gunakan id dari response ini sebagai parameter pada endpoint /dataset/by-organisasi/{id}.

curl -X GET "https://satudata.luwutimurkab.go.id/api/organisasi"
fetch('https://satudata.luwutimurkab.go.id/api/organisasi')
  .then(res => res.json())
  .then(data => console.log(data));
Contoh Response
200 OK
{
  "status": 200,
  "message": "OK",
  "data": [
    { "id": 1, "skpd": "Dinas Pertanian Luwu Timur" },
    { "id": 2, "skpd": "Dinas Kesehatan Luwu Timur" },
    { "id": 3, "skpd": "Dinas Pendidikan Luwu Timur" }
  ]
}
GET /daftar_dataset Daftar Dataset

Mengembalikan daftar seluruh dataset yang berstatus sudah proses, diurutkan berdasarkan tanggal update terbaru. Setiap item menyertakan URL langsung untuk mengakses detail data melalui API.

curl -X GET "https://satudata.luwutimurkab.go.id/api/daftar_dataset"
fetch('https://satudata.luwutimurkab.go.id/api/daftar_dataset')
  .then(res => res.json())
  .then(data => console.log(data));
$response = file_get_contents('https://satudata.luwutimurkab.go.id/api/daftar_dataset');
$data     = json_decode($response, true);
print_r($data);
Contoh Response
200 OK
{
  "status": 200,
  "message": "OK",
  "data": [
    {
      "id": "abc123",
      "kode": "LUTU-2025-001",
      "judul": "Produksi Tanaman Pangan Luwu Timur",
      "deskripsi": "Data produksi tanaman pangan...",
      "organisasi": "Dinas Pertanian Luwu Timur",
      "tgl_buat": "2025-01-15",
      "tgl_update": "2025-05-28",
      "url": "https://satudata.luwutimurkab.go.id/api/dataset/abc123"
    }
  ]
}
GET /dataset/by-urusan/{id_kategori} Dataset by Urusan

Mengembalikan daftar dataset berdasarkan ID urusan/kategori tertentu. Gunakan endpoint /urusan untuk mendapatkan daftar ID yang valid. Mengembalikan 404 jika ID urusan tidak ditemukan.

Parameter URL
Parameter Tipe Keterangan Status
id_kategori integer ID urusan dari endpoint /urusan Wajib
curl -X GET "https://satudata.luwutimurkab.go.id/api/dataset/by-urusan/1"
fetch('https://satudata.luwutimurkab.go.id/api/dataset/by-urusan/1')
  .then(res => res.json())
  .then(data => console.log(data));
Contoh Response
200 OK
{
  "status": 200,
  "message": "OK",
  "data": [
    {
      "id": "abc123",
      "kode": "LUTU-2025-001",
      "judul": "Produksi Tanaman Pangan Luwu Timur",
      "deskripsi": "Data produksi tanaman pangan...",
      "organisasi": "Dinas Pertanian Luwu Timur",
      "tgl_buat": "2025-01-15",
      "tgl_update": "2025-05-28",
      "url": "https://satudata.luwutimurkab.go.id/api/dataset/abc123"
    }
  ]
}
GET /dataset/by-organisasi/{id_skpd} Dataset by Organisasi

Mengembalikan daftar dataset berdasarkan ID organisasi/OPD tertentu. Gunakan endpoint /organisasi untuk mendapatkan daftar ID yang valid. Mengembalikan 404 jika ID organisasi tidak ditemukan.

Parameter URL
Parameter Tipe Keterangan Status
id_skpd integer ID organisasi dari endpoint /organisasi Wajib
curl -X GET "https://satudata.luwutimurkab.go.id/api/dataset/by-organisasi/1"
fetch('https://satudata.luwutimurkab.go.id/api/dataset/by-organisasi/1')
  .then(res => res.json())
  .then(data => console.log(data));
Contoh Response
200 OK
{
  "status": 200,
  "message": "OK",
  "data": [
    {
      "id": "abc123",
      "kode": "LUTU-2025-001",
      "judul": "Produksi Tanaman Pangan Luwu Timur",
      "deskripsi": "Data produksi tanaman pangan...",
      "organisasi": "Dinas Pertanian Luwu Timur",
      "tgl_buat": "2025-01-15",
      "tgl_update": "2025-05-28",
      "url": "https://satudata.luwutimurkab.go.id/api/dataset/abc123"
    }
  ]
}
GET /find/{judul} Cari Dataset

Mencari dataset berdasarkan kata kunci judul. Parameter judul harus di-encode terlebih dahulu menggunakan URL encoding. Mengembalikan 404 jika tidak ada dataset yang cocok.

Parameter URL
Parameter Tipe Keterangan Status
judul string Kata kunci pencarian judul dataset (URL encoded) Wajib
# Cari dataset dengan kata kunci "tanaman pangan"
curl -X GET \
  "https://satudata.luwutimurkab.go.id/api/find/tanaman%20pangan"
const keyword = 'tanaman pangan';
const url     = `https://satudata.luwutimurkab.go.id/api/find/${encodeURIComponent(keyword)}`;

fetch(url)
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));
$keyword  = 'tanaman pangan';
$url      = 'https://satudata.luwutimurkab.go.id/api/find/' . urlencode($keyword);
$response = file_get_contents($url);
$data     = json_decode($response, true);
print_r($data);
Contoh Response
200 OK
{
  "status": 200,
  "message": "OK",
  "data": [
    {
      "id": "abc123",
      "judul": "Produksi Tanaman Pangan Luwu Timur",
      "organisasi": "Dinas Pertanian Luwu Timur",
      "url": "https://satudata.luwutimurkab.go.id/api/dataset/abc123"
    }
  ]
}
Jika tidak ditemukan
404 Not Found
{
  "status": 404,
  "message": "Resource tidak ditemukan"
}
GET /dataset/{id} Detail Dataset

Mengembalikan isi lengkap data dari sebuah dataset berdasarkan ID. Data dikembalikan dalam format array dua dimensi dengan header kolom tersedia secara terpisah. Mendukung file Excel dengan merged cells dan baris kosong dihilangkan otomatis.

Parameter URL
Parameter Tipe Keterangan Status
id string ID unik dataset. Gunakan endpoint /daftar_dataset untuk mendapatkan daftar ID. Wajib
curl -X GET \
  "https://satudata.luwutimurkab.go.id/api/dataset/abc123" \
  -H "Accept: application/json"
fetch('https://satudata.luwutimurkab.go.id/api/dataset/abc123')
  .then(res => res.json())
  .then(data => console.log(data))
  .catch(err => console.error(err));
$response = file_get_contents(
  'https://satudata.luwutimurkab.go.id/api/dataset/abc123'
);
$data = json_decode($response, true);
print_r($data);
import requests

url      = "https://satudata.luwutimurkab.go.id/api/dataset/abc123"
response = requests.get(url)
data     = response.json()
print(data)
Contoh Response
200 OK
{
  "status": 200,
  "id": "abc123",
  "judul": "Produksi Tanaman Pangan Luwu Timur",
  "total": 12,
  "headers": ["No", "Kecamatan", "Tanam (Ha)", "Produksi (Ton)"],
  "data": [
    ["1", "Malili", "4250", "24600"],
    ["2", "Wotu", "7381", "49515"],
    ["3", "Mangkutana", "4581", "30652"]
  ]
}
Kode Error
Selalu periksa field status pada response sebelum memproses data.
Kode Status Keterangan
200 OK Request berhasil, data tersedia
400 Bad Request Parameter tidak valid atau tidak lengkap
404 Not Found Resource tidak ditemukan — ID tidak valid atau data tidak ada
500 Server Error Kesalahan internal server, coba beberapa saat lagi
Alur Penggunaan API (Step by Step)

Contoh alur lengkap: ambil daftar urusan → pilih urusan → ambil dataset → tampilkan data.

const baseUrl = 'https://satudata.luwutimurkab.go.id/api';

// Step 1: Ambil daftar urusan
const urusan = await fetch(`${baseUrl}/urusan`).then(r => r.json());
console.log(urusan.data); // [{id:1, urusan:"Pertanian"}, ...]

// Step 2: Ambil dataset berdasarkan urusan id=1
const list = await fetch(`${baseUrl}/dataset/by-urusan/1`).then(r => r.json());
const firstId = list.data[0].id;

// Step 3: Ambil detail data dari dataset pertama
const detail = await fetch(`${baseUrl}/dataset/${firstId}`).then(r => r.json());

// Step 4: Render ke tabel HTML
const thead = detail.headers.map(h => `<th>${h}</th>`).join('');
const tbody = detail.data.map(row =>
  `<tr>${row.map(cell => `<td>${cell}</td>`).join('')}</tr>`
).join('');

document.getElementById('output').innerHTML =
  `<table><thead><tr>${thead}</tr></thead><tbody>${tbody}</tbody></table>`;