Satu panggilan HTTP, dan situs mitra, dashboard internal, atau ruang redaksi Anda selalu menampilkan skor Indonesia Emas Progress Index yang sama persis dengan yang dipublikasikan INDEC. Terbuka untuk semua, tanpa kunci API, tanpa pendaftaran.
# Skor IEPI terkini, apa adanya curl https://indec.id/api/v1/iepi/current
Tidak ada kunci API yang perlu diminta dan tidak ada kuota yang perlu dijaga. Pilih jalur integrasi sesuai kebutuhan tim Anda, lalu tempel potongan kodenya.
Panggil endpoint /api/v1/iepi/current dari server atau browser, lalu render sendiri sesuai desain Anda. Paling fleksibel.
Tempel satu <div> dan satu <script>. Widget resmi INDEC merender kartu skor yang selalu mutakhir, tanpa dependensi.
Butuh yang paling ringan? Tautkan langsung berkas SVG skor terkini — tanpa JavaScript sama sekali.
Semua endpoint hanya menerima GET, mengembalikan JSON UTF-8, dan membungkus isinya dalam amplop { meta, data }. Klik Coba untuk memanggilnya langsung dari halaman ini.
Klik "Coba" pada salah satu endpoint di atas untuk melihat responsnya di sini.
Spesifikasi mesin tersedia di /api/v1/openapi.json (OpenAPI 3.1) — dapat langsung diimpor ke Postman, Insomnia, atau generator klien.
Kesalahan integrasi paling umum adalah salah skala. Karena itu setiap respons membawa objek scale yang menyatakan rentang tiap metrik secara eksplisit.
{
"meta": {
"api_version": "1.0.0",
"resource": "iepi.edition.current",
"generated_at": "2026-09-01T00:00:00Z",
"license": { "id": "CC-BY-4.0", ... },
"next_edition_expected": "2026-10-01"
},
"data": {
"period": "2026-09",
"label": "Sep 2026",
"calibration_id": "IEPI-MTH-v5.0.2026-09",
"published_at": "2026-09-01",
"scale": {
"core": "0-100", "trust": "0-100",
"risk_adj": "0-1", "iepi": "0-100"
},
"score": {
"core": 92.3,
"trust": 100.0,
"risk_adj": 0.88,
"iepi": 81.0
},
"status": "ON TRACK",
"formula": "IEPI = Core × RiskAdj",
"pillars": [ { "code": "P1", "score": 87.2, ... } ],
"risk_factors": [ { "key": "fiskal", "score": 89 } ],
"change": { "vs_period": "2026-08", "iepi_delta": -0.2 }
}
}
| Field | Tipe & arti |
|---|---|
| period | string — periode edisi, format YYYY-MM. Kunci stabil untuk cache dan deduplikasi. |
| label | string — label edisi siap tampil, mis. Sep 2026. |
| calibration_id | string — ID kalibrasi metodologi, dapat ditelusuri ke jejak audit di laporan. |
| published_at | date — tanggal terbit resmi edisi (selalu tanggal 1). |
| score.core | number 0–100 — Pencapaian: seberapa jauh target trayektori tercapai. |
| score.trust | number 0–100 — Kepercayaan data, membobot kontribusi tiap indikator. |
| score.risk_adj | number 0–1 — koefisien pengali, bukan persen. Rata-rata empat faktor risiko dibagi 100. |
| score.iepi | number 0–100 — skor komposit publik. iepi = core × risk_adj. |
| status | string — GOLD TRACK ≥90, ON TRACK ≥80, ADVANCING ≥70, AT RISK ≥60, selebihnya OFF TRACK. |
| pillars[] | array — enam pilar: code, name, score (0–100), trust, weight_pct, status. |
| risk_factors[] | array — empat faktor risiko (0–100): fiskal, politik, iklim, geopolitik. |
| change | object | null — selisih terhadap edisi sebelumnya, termasuk direction: up/down/flat. |
Catatan penting: risk_adj berada pada skala 0–1 sementara metrik lain 0–100. Jangan mengalikan 100 pada nilai ini saat menampilkannya.
Semua contoh menarik endpoint yang sama. Untuk situs dengan trafik tinggi, cache respons di sisi Anda minimal satu jam — data hanya berubah sekali sebulan.
// Vanilla JS — aman dipanggil langsung dari browser (CORS terbuka) const res = await fetch('https://indec.id/api/v1/iepi/current'); const json = await res.json(); const d = json.data; document.querySelector('#iepi-score').textContent = d.score.iepi.toLocaleString('id-ID', { minimumFractionDigits: 1 }); document.querySelector('#iepi-edition').textContent = d.label; // Skala: core / trust / iepi = 0–100, risk_adj = 0–1 console.log(d.score.core, d.score.risk_adj, d.status);
# Skor edisi terkini curl -s https://indec.id/api/v1/iepi/current | jq '.data.score' # Seluruh edisi yang pernah terbit curl -s https://indec.id/api/v1/iepi/editions | jq '.data[].period' # Satu edisi spesifik curl -s https://indec.id/api/v1/iepi/editions/2026-09 # Worksheet 32 indikator lengkap dengan sumber curl -s https://indec.id/api/v1/iepi/indicators | jq '.data[0]' # Cek status layanan curl -sI https://indec.id/api/v1/health | grep -i x-indec
import requests BASE = "https://indec.id/api/v1" def iepi_terkini(): r = requests.get(f"{BASE}/iepi/current", timeout=10) r.raise_for_status() return r.json()["data"] d = iepi_terkini() print(f"IEPI {d['label']}: {d['score']['iepi']:.1f}/100 ({d['status']})") for p in d["pillars"]: print(f" {p['code']} {p['name']:<28} {p['score']:5.1f} {p['status']}")
// WordPress shortcode: [iepi_score] — cache 12 jam via transient add_shortcode('iepi_score', function () { $d = get_transient('indec_iepi'); if (false === $d) { $res = wp_remote_get('https://indec.id/api/v1/iepi/current', ['timeout' => 10]); if (is_wp_error($res)) { return ''; } $d = json_decode(wp_remote_retrieve_body($res), true)['data']; set_transient('indec_iepi', $d, 12 * HOUR_IN_SECONDS); } return sprintf( '<span class="iepi">IEPI %s: <strong>%s</strong>/100</span>', esc_html($d['label']), esc_html(number_format($d['score']['iepi'], 1, ',', '.')) ); });
import { useEffect, useState } from 'react'; export function useIepi() { const [data, setData] = useState(null); useEffect(() => { const ac = new AbortController(); fetch('https://indec.id/api/v1/iepi/current', { signal: ac.signal }) .then(r => r.json()) .then(j => setData(j.data)) .catch(() => {}); return () => ac.abort(); }, []); return data; } export function IepiBadge() { const d = useIepi(); if (!d) return null; return ( <a href="https://indec.id/iepi/"> IEPI {d.score.iepi.toFixed(1)}/100 · {d.label} </a> ); }
Widget resmi INDEC berukuran ringan, tanpa dependensi, tanpa cookie, dan tidak melacak pengunjung situs Anda. Ia menarik data dari endpoint yang sama dan menyegarkan dirinya setiap kali halaman dimuat.
<div data-indec-iepi
data-variant="card"
data-theme="light"
data-pillars="true"></div>
<script src="https://indec.id/connect/embed.js" async></script>
| Atribut | Nilai |
|---|---|
| data-variant | card (default), badge, inline |
| data-theme | light (default), dark |
| data-pillars | true untuk menampilkan enam pilar pada varian card |
| data-link | false untuk mematikan tautan ke indec.id/iepi |
| data-lang | id (default) atau en |
Butuh kontrol penuh? Widget mengekspos window.INDEC.iepi.fetch() yang mengembalikan Promise berisi objek data yang sama, sehingga Anda bisa merender sendiri tanpa memanggil endpoint dua kali.
Tanpa JavaScript sama sekali — cocok untuk README, newsletter, atau tanda tangan surel.
<a href="https://indec.id/iepi/"> <img src="https://indec.id/api/v1/iepi/badge.svg" alt="Skor IEPI terkini" width="228" height="64"> </a>
API publik terbuka untuk siapa pun. Untuk kebutuhan yang lebih dalam — data historis granular, indikator kustom, atau kolaborasi riset — INDEC membuka jalur kemitraan.
Seluruh endpoint di halaman ini. Tanpa pendaftaran, tanpa kunci, tanpa batas panggilan.
Untuk media, lembaga, dan korporasi yang menjadikan IEPI bagian dari produk atau kanal resminya.
Untuk kebutuhan analitik mendalam di luar cakupan indeks publik.
Tertarik pada jalur Mitra Terdaftar atau Data Lab? Hubungi engage@indec.id dengan menyebut nama lembaga, kanal yang akan menampilkan data, dan kebutuhan teknis Anda.
Versi mayor tertanam pada path (/api/v1/). Selama v1 berlaku, INDEC hanya menambah field — tidak pernah menghapus atau mengubah arti field yang sudah ada. Perubahan yang merusak kompatibilitas akan terbit sebagai /api/v2/, dan v1 tetap dilayani sekurang-kurangnya 12 bulan setelahnya. Karena itu, klien Anda harus mengabaikan field yang tidak dikenali, bukan menolaknya.
Edisi IEPI terbit setiap tanggal 1. Respons dikirim dengan Cache-Control: public, max-age=300, s-maxage=3600, stale-while-revalidate=86400 dan disajikan dari CDN global. Hormati header tersebut; menembak endpoint tiap detik tidak akan memberi data yang lebih baru. Untuk situs bertrafik tinggi, cache di sisi Anda 1–24 jam.
Data IEPI dilisensikan CC BY 4.0. Anda bebas menyalin, menampilkan, mengolah, dan menggunakannya untuk keperluan komersial, sepanjang mencantumkan atribusi: “Sumber: INDEC — Indonesia Development Catalyst (indec.id)” beserta tautan ke indec.id/iepi dan periode edisi yang ditampilkan.
Endpoint /iepi/current membaca catatan skor resmi yang sama dengan yang dirender di halaman publik IEPI, sehingga situs Anda dan indec.id tidak mungkin menampilkan angka yang berbeda. Setiap edisi membawa calibration_id agar dapat ditelusuri ke jejak audit metodologi.