API publik
Base URL: https://api.sambasku.com/api/v1
API publik SambasKu untuk membaca kamus Melayu Sambas. Tanpa login. Respons memakai envelope JSON standar: success, data, dan meta (pagination bila ada).
Batas: 100 permintaan per menit per IP. Saat terlampaui, respons 429 dengan header Retry-After (detik). Hanya kata berstatus published. Draf dan kata belum tayang tidak tersedia di endpoint ini.
CORS: permintaan baca dari origin mana pun diizinkan (Access-Control-Allow-Origin). Permintaan ber-credentials (cookie/Authorization) hanya dari origin yang diizinkan situs dan konsol.
Konten kata (lemma, makna, terjemahan, contoh) bebas dikutip dengan tautan ke halaman katanya di https://sambasku.com. Cantumkan sumber bila data dipakai ulang di produk atau dataset.
Spesifikasi interaktif (Scalar): /docs · openapi.json
Konvensi
- Envelope:
{ success, data, meta? } - Auth: tidak perlu. Rate limit 100/menit/IP; 429 +
Retry-After. - Hanya kata
published. Cache publik singkat pada GET baca kata.
Playground
Coba endpoint langsung dari browser. Request jalan ke API produksi, sama seperti dari aplikasimu.
Kata kunci (trim, maks 255). Kosong = daftar kosong / tanpa hasil bermakna.
1-100, default 20.
Cursor opaque ULID dari meta.next_cursor halaman sebelumnya.
lemma (default) atau translation.
Opsional: word | idiom | peribahasa | ungkapan.
Opsional: true | false. Omit = semua yang tayang.
URL request
https://api.sambasku.com/api/v1/words/search
Cari kata
/words/searchPencarian kosakata. Arah default Sambas ke Indonesia (lemma). Pakai search_in=translation untuk Indonesia ke Sambas.
Parameter
q- Kata kunci (trim, maks 255). Kosong = daftar kosong / tanpa hasil bermakna.limit- 1-100, default 20.cursor- Cursor opaque ULID dari meta.next_cursor halaman sebelumnya.search_in- lemma (default) atau translation.word_type- Opsional: word | idiom | peribahasa | ungkapan.is_verified- Opsional: true | false. Omit = semua yang tayang.
Item list memuat lemma, word_type, status, is_verified, dan sense (gloss singkat seperti [n] gelas).
Bila search_in=translation, item bisa punya matched_translation.
Cache respons: Cache-Control public, max-age=60, s-maxage=300.
Contoh
Cuplikan respons
Detail kata by lemma
/words/lemma/:lemmaDetail lengkap satu kata published. Path yang sama dipakai situs publik (/id/words/{lemma}). Encode karakter khusus di lemma (spasi, apostrof).
Parameter
lemma- Segment path, case-insensitive (Cawan = cawan). EncodeURIComponent wajib untuk spasi dan apostrof.
Field penting: lemma, is_verified, meanings[].definition, meanings[].translations, examples, pronunciations, images.
404 bila lemma tidak ditemukan atau tidak published.
Homonim: bila ada beberapa published dengan lemma sama (beda huruf besar/kecil), dipilih yang is_verified=true dulu, lalu yang paling lama dibuat.
Cache respons: Cache-Control public, max-age=60, s-maxage=300.
Contoh
Cuplikan respons
Juga tersedia
Daftar A-Z
/wordsBrowsing korpus urut lemma. Filter letter (satu huruf A-Z), q (contains), is_verified=true untuk lemma yang boleh diindeks sitemap, cursor komposit opaque (beda bentuk dari /search).
Parameter
limit- 1-100, default 20.cursor- Cursor opaque dari meta.next_cursor.letter- Opsional: satu huruf a-z.q- Opsional: filter contains pada lemma.is_verified- Opsional: true | false. Sitemap memakai true.
Field updated_at dipakai sitemap untuk lastmod yang jujur.
Cache respons: Cache-Control public, max-age=60, s-maxage=300.
Contoh
Cuplikan respons
Detail kata by id
/words/:idSama bentuk respons dengan /words/lemma/:lemma. :id adalah ULID 26 karakter. Berguna untuk backlink lama yang memakai id, bukan lemma.
Parameter
id- ULID 26 karakter (contoh: 01JDWORDMAKATN000000000000).
404 bila id tidak ditemukan atau kata tidak published.
Contoh
Cuplikan respons
Endpoint lain (kata hari ini, feed terbaru, admin) tidak dibahas di halaman ini. Fokus halaman: baca kamus untuk aplikasi, agen, dan peneliti. Dump korpus terverifikasi untuk agen: https://sambasku.com/llms-full.txt


