API KBBI: Cek Kata di KBBI Lewat REST API
Cara cek kata di KBBI lewat REST API: cari kata, lookup arti lengkap, dan kata acak dari 62.850+ entri KBBI dengan format JSON konsisten.
Pernah butuh cek kata di KBBI dari dalam aplikasi, tanpa scraping kbbi.kemdikbud.go.id? Scraping memang bisa, tapi lambat, rawan berubah tanpa notifikasi, dan tidak ada garansi keberlanjutan. Kalau Anda sedang bikin aplikasi kamus, game edukasi, atau fitur validasi kata Bahasa Indonesia, API KBBI dari API Indonesia adalah cara paling pragmatis: 62.850+ entri Kamus Besar Bahasa Indonesia yang bisa diakses lewat tiga endpoint REST sederhana, dengan format JSON yang konsisten.
Artikel ini membahas cara cek kata di KBBI lewat REST API: daftar endpoint, contoh request dan response asli, sampai contoh integrasi Node.js dan Python yang tinggal copy paste.
Kenapa Tidak Scraping atau Hardcode Dataset?
Sebelum masuk ke implementasi, ini perbandingan singkat:
| Pendekatan | Masalah |
|---|---|
| Scraping kbbi.kemdikbud.go.id | Lambat, bisa berubah tanpa notifikasi, risiko diblokir |
| Hardcode dataset KBBI ke database sendiri | Ukuran besar, format tidak konsisten, harus maintain sendiri |
| KBBI API | Satu endpoint, format JSON konsisten, paginasi siap pakai |
Daftar Endpoint
Base URL: https://use.apiindonesia.id/api/v1/kbbi
| Method | Endpoint | Keterangan |
|---|---|---|
| GET | /search?q= |
Cari kata berdasarkan kata kunci (paginated) |
| GET | /word/:word |
Lookup semua entri untuk satu kata spesifik |
| GET | /random?count= |
Ambil kata acak (max 20) |
Contoh Request dan Response
1. Cek kata di KBBI (search)
Cocok untuk autocomplete atau fitur pencarian di aplikasi kamus:
curl "https://use.apiindonesia.id/api/v1/kbbi/search?q=rumah&page=1&per_page=5" \
-H "x-api-key: aip_live_xxx"
Response:
{
"data": [
{
"id": 50001,
"word": "rumah",
"arti": "Nomina (kata benda)\n(1) bangunan untuk tempat tinggal manusia",
"type": 2
}
],
"meta": { "total": 15, "page": 1, "per_page": 5, "total_pages": 3 }
}
Field meta.total dan meta.total_pages memudahkan paginasi di sisi klien. Field type menandai kelas kata (2 = nomina, dan seterusnya).
2. Lookup satu kata
Kalau Anda tahu persis katanya (misalnya validasi apakah kata itu ada di KBBI), pakai endpoint ini. Satu kata bisa punya beberapa entri, jadi response-nya berupa array:
curl "https://use.apiindonesia.id/api/v1/kbbi/word/rumah" \
-H "x-api-key: aip_live_xxx"
3. Kata acak
Berguna untuk game tebak kata atau aplikasi pembelajaran:
curl "https://use.apiindonesia.id/api/v1/kbbi/random?count=3" \
-H "x-api-key: aip_live_xxx"
Contoh Integrasi: Autocomplete Kamus di Node.js
const BASE = 'https://use.apiindonesia.id/api/v1/kbbi';
async function searchWords(keyword, page = 1, perPage = 10) {
const url = `${BASE}/search?q=${encodeURIComponent(keyword)}&page=${page}&per_page=${perPage}`;
const res = await fetch(url, {
headers: { 'x-api-key': process.env.API_INDONESIA_KEY },
});
if (!res.ok) {
throw new Error(`KBBI API error: ${res.status}`);
}
const { data, meta } = await res.json();
return { results: data, pagination: meta };
}
// Contoh pemakaian di handler Express
app.get('/api/kamus', async (req, res) => {
const { q, page } = req.query;
const { results, pagination } = await searchWords(q, page);
res.json({ results, pagination });
});
Contoh Python
import requests, os
def lookup_word(word: str):
res = requests.get(
f"https://use.apiindonesia.id/api/v1/kbbi/word/{word}",
headers={"x-api-key": os.environ["API_INDONESIA_KEY"]},
)
res.raise_for_status()
return res.json()["data"]
entries = lookup_word("rumah")
for e in entries:
print(e["word"], "=>", e["arti"].splitlines()[0])
Use Case yang Cocok
- Aplikasi kamus atau thesaurus: pencarian dan arti kata lengkap
- Game edukasi: endpoint
/randomuntuk mode tebak kata - Validasi kata di form: cek apakah input user ada di KBBI sebelum diproses
- Pipeline NLP: sumber definisi untuk lemmatisasi atau anotasi corpus Bahasa Indonesia
- Fitur "arti kata" di chatbot: lookup cepat saat user bertanya arti sebuah kata
Catatan Teknis
- Auth pakai header
x-api-key, sama seperti API Indonesia lainnya. - Semua endpoint list mendukung paginasi:
pagedanper_page(default 20, maksimum 100). - Field
artiberupa teks multi-baris (nomor makna dipisah newline), jadi kalau ingin tampilan rapi di UI, split dulu per baris. - Data bersumber dari dataset KBBI open-source (MIT License) dengan 62.850+ entri.
Mulai Sekarang
Dapatkan API key gratis di dashboard.apiindonesia.id/register, lihat halaman produk API KBBI, dan pelajari parameter lengkap di docs.apiindonesia.id.
