Minta API key
Pengelola simPORA membuat satu API key untuk tiap dinas atau aplikasi agar pemakaian mudah dipantau.
Halaman ini dapat dibagikan ke dinas, aplikasi, atau mitra yang membutuhkan daftar fasilitas publik UPTD PPO dalam format JSON.
API ini disiapkan untuk integrasi read-only. Pengguna hanya menerima data fasilitas yang memang ditandai publik di simPORA.
Pengelola simPORA membuat satu API key untuk tiap dinas atau aplikasi agar pemakaian mudah dipantau.
Setiap request wajib menyertakan header X-API-Key atau Authorization: Bearer.
Ambil daftar fasilitas, simpan seperlunya di sistem pemakai, dan tampilkan link detail atau pemesanan.
Semua endpoint memakai format JSON dan hanya menerima metode GET.
Menampilkan daftar fasilitas publik dengan pagination dan filter ringan.
Menampilkan satu fasilitas berdasarkan UUID dari hasil endpoint daftar.
| Parameter | Contoh | Keterangan |
|---|---|---|
q |
stadion |
Cari nama, jenis, lokasi, atau GOR. |
jenis |
Lapangan |
Filter berdasarkan jenis fasilitas. |
gor_id |
1 |
Filter berdasarkan ID GOR yang dikirim pada objek gor. |
page |
2 |
Nomor halaman hasil. |
per_page |
20 |
Maksimal 50 data per request. |
publik = 1.
Limit dihitung per API key. Saat limit habis, API mengembalikan HTTP 429.
Response juga membawa header rate limit agar aplikasi pemakai bisa menampilkan sisa kuota.
X-RateLimit-Limit jumlah kuota
X-RateLimit-Remaining sisa kuota
Retry-After waktu tunggu saat terkena 429
Ganti API_KEY_DINAS_ANDA dengan API key yang diberikan pengelola simPORA.
curl -H "Accept: application/json" \
-H "X-API-Key: API_KEY_DINAS_ANDA" \
"https://simpora.co.id/api/public/facilities?per_page=10"
const response = await fetch('https://simpora.co.id/api/public/facilities?q=stadion', {
headers: {
Accept: 'application/json',
'X-API-Key': 'API_KEY_DINAS_ANDA'
}
});
const result = await response.json();
console.log(result.data);
$client = new \GuzzleHttp\Client();
$response = $client->get('https://simpora.co.id/api/public/facilities', [
'headers' => [
'Accept' => 'application/json',
'X-API-Key' => 'API_KEY_DINAS_ANDA',
],
'query' => [
'per_page' => 10,
],
]);
$facilities = json_decode($response->getBody(), true);
Struktur response dibuat stabil agar mudah dipakai oleh website, dashboard, atau aplikasi mobile.
{
"data": [
{
"uuid": "018f7b5d-3f78-7f7b-9c12-6f0d7756f102",
"nama": "Stadion Utama",
"jenis": "Stadion",
"status": "Aktif",
"kapasitas": 30000,
"satuan": "orang",
"luas_m2": 12000,
"jumlah": 1,
"lokasi": "Komplek Stadion Utama",
"foto_url": "https://simpora.example/storage/facilities/stadion.jpg",
"detail_api_url": "https://simpora.co.id/api/public/facilities/{uuid}",
"booking_url": "https://pwa.simpora.co.id/facility/018f7b5d-3f78-7f7b-9c12-6f0d7756f102",
"gor": {
"id": 1,
"nama": "Gelora Kadrie Oening",
"singkatan": "GKO"
},
"updated_at": "2026-05-16T08:00:00+08:00"
}
],
"meta": {
"current_page": 1,
"per_page": 10,
"total": 25,
"last_page": 3,
"daily_limit": 1000
},
"links": {
"first": "https://simpora.co.id/api/public/facilities?page=1",
"last": "https://simpora.co.id/api/public/facilities?page=3",
"prev": null,
"next": "https://simpora.co.id/api/public/facilities?page=2"
}
}
https://simpora.co.id/dokumentasi-api.PUBLIC_API_KEYS=dinas-a-token,dinas-b-token
PUBLIC_API_DAILY_LIMIT=1000
PUBLIC_API_PER_PAGE=20
PUBLIC_API_MAX_PER_PAGE=50
Setelah mengubah konfigurasi produksi, jalankan php artisan config:clear
atau ulangi proses deploy agar konfigurasi baru terbaca.