Prototipe Tampilan contoh Fase P — data dan hasil di halaman ini belum berasal dari mesin sungguhan. Data contoh Peta prototipe

Satu skema untuk semua penyedia

Seluruh produk dilayani lewat bentuk permintaan dan respons yang sama — dataset yang diunggah penjual, API pihak ketiga yang direlai, maupun script yang dieksekusi. Contoh di halaman ini dibangun dari produk yang benar-benar ada di katalog, bukan skema karangan.

Kanal

Tujuh kanal distribusi, satu model data. Kanal yang belum dibuka ditandai dengan tahapnya.

REST API

Autentikasi token, paginasi, dan filter. Versi eksplisit di URL — tidak pernah diganti diam-diam.

Unduhan terprogram

CSV, Parquet, dan GeoJSON/GeoPackage untuk data spasial — lewat presigned URL.

Push & delta Tahap 2

Webhook, object storage, SFTP, atau spreadsheet daring, dengan opsi delta: hanya baris yang berubah.

Gerbang API relai Tahap 2

Endpoint DataDiti untuk API pihak ketiga: respons ternormalisasi, cache sesuai TTL, kuota per tier.

Endpoint eksekusi script Tahap 3

Pembungkus API untuk produk script: sinkron atau asinkron (job + webhook selesai), dengan batas sumber daya per panggilan.

Endpoint MCP Tahap 3

Lapisan tipis di atas API yang sudah rapi — menjadikan DataDiti sumber data tepercaya untuk agen AI.

Autentikasi

Setiap permintaan membawa token bearer milik akun Anda. Token bisa dibatasi cakupannya per dataset dan dicabut kapan saja dari area pembeli.

  • Token dikirim di header Authorization, tidak pernah sebagai parameter URL — parameter URL ikut tercatat di log perantara.
  • Kredensial API asal milik penyedia tidak pernah sampai ke Anda; Anda selalu memanggil endpoint DataDiti.
  • Setiap panggilan tercatat di log audit: siapa, kapan, dari yurisdiksi mana.
# Autentikasi Authorization: Bearer $DATADITI_TOKEN

Endpoint

Tiga endpoint menutup sebagian besar kebutuhan: metadata produk, baris data, dan skema kolomnya.

Metode Jalur Kegunaan
GET /v1/datasets Daftar produk yang bisa Anda akses.
GET /v1/datasets/{slug} Metadata produk: versi terbaru, skor, cakupan, kelas akses.
GET /v1/datasets/{slug}/rows Baris data, dengan paginasi dan filter.
GET /v1/datasets/{slug}/schema Kamus data versi tersebut: nama kolom, tipe, satuan, keterangan.

Permintaan pertama

Contoh di bawah memakai Proyeksi Penduduk Kabupaten 2020-2025 — produk sungguhan di katalog, beserta nama kolomnya yang sebenarnya.

Permintaan

curl -H "Authorization: Bearer $DATADITI_TOKEN" \ "https://api.dataditi.com/v1/datasets/proyeksi-penduduk-kabupaten-2020-2025/rows?per_halaman=100"

Respons

{ "version": "2.1.0", "fingerprint": "req_8f2c1a47", "meta": { "halaman": 1, "per_halaman": 100, "total": 3140000 }, "rows": [ { "kode_wilayah": "3273", "nama_wilayah": "Kota Bandung", "tahun": 2024, "nilai": 2452943, "sumber": "BPS" } ] }

Satu baris ditampilkan; sisanya mengikuti paginasi.

Paginasi & filter

Paginasi berbasis halaman dengan batas 100 baris per permintaan. Filter memakai nama kolom pada kamus data produk yang bersangkutan — tidak ada nama filter khusus yang harus dihafal.

  • halaman dan per_halaman mengatur potongan; meta.total memberi jumlah seluruh baris yang cocok.
  • Untuk produk berbasis harga per baris, yang ditagih adalah baris yang benar-benar dikirim setelah filter Anda.
  • Filter yang menunjuk kolom tak dikenal ditolak dengan galat, bukan diabaikan diam-diam.
# Paginasi & filter GET https://api.dataditi.com/v1/datasets/proyeksi-penduduk-kabupaten-2020-2025/rows?halaman=2&per_halaman=100&kode_wilayah=3273

Galat

Kode status HTTP dipakai sebagaimana mestinya, dan badan responsnya selalu menyebutkan sebab yang bisa ditindaklanjuti.

401 Token tidak ada, kedaluwarsa, atau sudah dicabut.
403 Token sah, tetapi produk ini di luar cakupannya — atau yurisdiksi Anda tidak boleh menerima data ini.
404 Produk atau versi tidak ada. Produk yang ditarik lewat takedown juga menjawab 404.
410 Versi ini sudah dipensiunkan setelah masa layannya habis.
429 Kuota tier terlampaui. Header respons menyebutkan kapan kuota disetel ulang.

Versi & deprecation

Integrasi bisa rusak diam-diam bila nama kolom berubah tanpa peringatan. Tiga janji di bawah ini mencegahnya.

/v1/

Versi eksplisit di URL

Setiap endpoint memuat versinya. Versi yang sudah terbit tidak pernah diubah isinya — perbaikan terbit sebagai versi baru.

≥90

Breaking change diumumkan

Minimal 90 hari sebelum rilis, lewat changelog, notifikasi, dan email.

≥180

Versi lama tetap dilayani

Minimal 180 hari setelah penggantinya terbit, lalu dipensiunkan dengan pengingat bertahap.

Endpoint MCP Tahap 3

Agen AI memanggil alat, bukan URL. Responsnya membawa provenance — versi, sumber, dan skor — supaya jawaban yang mengutip angkanya bisa ditelusuri asal-usulnya.

Panggilan alat

{ "tool": "dataditi.query_dataset", "arguments": { "dataset": "proyeksi-penduduk-kabupaten-2020-2025", "filter": { "wilayah": "ID-JK" }, "limit": 25 } }

Respons

{ "content": [ { "kode_wilayah": "3273", "nama_wilayah": "Kota Bandung", "tahun": 2024, "nilai": 2452943, "sumber": "BPS" } ], "provenance": { "dataset": "proyeksi-penduduk-kabupaten-2020-2025", "versi": "2.1.0", "skor": 72.61, "sumber": "PT Geodata Nusantara", "diperiksa_pada": "2026-02-04" } }