← Blog
Artikel

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 /random untuk 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: page dan per_page (default 20, maksimum 100).
  • Field arti berupa 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.

Mulai Sekarang

Mulai Integrasi
Hari Ini

Daftar gratis, ambil API key, dan langsung call endpoint pertama Anda — tanpa kartu kredit, tanpa proses approval yang ribet.

Visualisasi gelombang titik