API Terbuka · Gratis · Tanpa Kunci
Dokumentasi API.
Semua data pencarian Tutur dapat diakses siapa saja lewat HTTP GET. Tidak perlu autentikasi.
Memulai
Endpoint
Basis URL produksi mengikuti domain situs, sehingga API dapat dipanggil langsung dari domain mana pun (CORS terbuka). Untuk pengembangan lokal, server API berjalan terpisah pada http://localhost:3001.
GET /healthCek kesehatan layanan. Selalu mengembalikan
{"status":"ok"}.GET /api/searchPencarian lintas koleksi: definisi, relasi kata, bentuk slang, dan rima.
GET /api/search
Parameter
qKata yang dicari, 2-80 karakter. Diproses sebagai teks yang dinormalisasi (huruf kecil, spasi dirapikan).
type (opsional)Jenis pencarian, salah satu dari: all, dictionary, baku, sinonim, antonim, slang, rima, rima-awal. Default: all.
limit (opsional)Jumlah hasil maksimal, angka 1-50. Default: 20.
Nilai yang mungkin untuk type:
allSemua koleksidictionaryDefinisi kamus (KBBI IV & VI)bakuBaku & nonbakusinonimSinonimantonimAntonimslangBentuk slangrimaRima akhirrima-awalRima awal (aliterasi)
Format
Contoh respons
{
"query": "bahasa",
"results": [
{
"type": "dictionary",
"word": "bahasa",
"slug": "bahasa",
"url": "/kata/bahasa/",
"summary": "1ba·ha·sa n 1 Ling sistem lambang bunyi yg arbitrer, ..."
},
{
"type": "rima",
"word": "berbahasa",
"slug": "berbahasa",
"url": "/kata/berbahasa/",
"summary": "ber.ba.ha.sa Verba (kata kerja) (1) menggunakan bahasa; ..."
}
]
}Setiap hasil berisi type, word, slug,url (jalur halaman kata di situs ini), dan summary. Hasil tipebaku, sinonim, dan antonim juga memuatcounterpart.
Cara pakai
Contoh permintaan
Mencari kata berima untuk “bahasa” dengan curl:
curl "https://tutur.taratsa.id/api/search?q=bahasa&type=rima&limit=10"
Contoh yang sama dengan JavaScript:
const response = await fetch(
"https://tutur.taratsa.id/api/search?q=bahasa&type=rima&limit=10",
);
const { results } = await response.json();
console.log(results.map((item) => item.word));Batas & etika
Rate limit, cache, dan galat
Batas pemakaian adalah 120 permintaan per menit per IP; respons429 menyertakan header Retry-After. Respons sukses dapat di-cache (Cache-Control: public, max-age=60, stale-while-revalidate=300) dan menyertakanETag — kirim kembali If-None-Match untuk mendapat respons304 yang hemat kuota.
400Parameter tidak valid (q terlalu pendek/panjang, type atau limit salah).
404Endpoint tidak ditemukan.
429Melebihi batas 120 permintaan/menit per IP. Ikuti header Retry-After.
Data API berasal dari KBBI dan sumber terbuka lain (lihat halaman Sumber data). Layanan ini disediakan apa adanya; mohon tidak dipakai untuk membebani layanan resmi KBBI.