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.
curl -sS -D - 'https://api.sambasku.com/api/v1/words/search?q=cawan&limit=1' -o /dev/null

Detail kata by lemma

GET
/words/lemma/:lemma

Detail 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

curl -sS 'https://api.sambasku.com/api/v1/words/lemma/cawan'

Cuplikan respons

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
  "success": true,
  "data": {
    "id": "01JDWORDMAKATN000000000000",
    "lemma": "cawan",
    "word_type": "word",
    "status": "published",
    "is_verified": true,
    "meanings": [
      {
        "definition": "tempat untuk minum",
        "translations": [
          {
            "translation_text": "gelas",
            "translation_type": "direct"
          }
        ],
        "examples": []
      }
    ],
    "pronunciations": [],
    "images": []
  }
}

Ade jua'

Daftar A-Z

GET
/words

Browsing 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

curl -sS 'https://api.sambasku.com/api/v1/words?is_verified=true&limit=20'

Cuplikan respons

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
  "success": true,
  "data": [
    {
      "id": "01JDWORDMAKATN000000000000",
      "lemma": "cawan",
      "word_type": "word",
      "status": "published",
      "is_verified": true,
      "updated_at": "2026-09-26T03:00:00.000Z",
      "sense": "[n] gelas"
    }
  ],
  "meta": {
    "limit": 20,
    "next_cursor": "…",
    "has_more": true
  }
}

Detail kata by id

GET
/words/:id

Sama 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

curl -sS 'https://api.sambasku.com/api/v1/words/01JDWORDMAKATN000000000000'

Cuplikan respons

1
2
3
4
5
6
7
8
9
10
11
{
  "success": true,
  "data": {
    "id": "01JDWORDMAKATN000000000000",
    "lemma": "cawan",
    "word_type": "word",
    "status": "published",
    "is_verified": true,
    "meanings": []
  }
}

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

Daftar Kate A-Z · FAQ · llms-full.txt · Balik ke awal