Sawala CloudSawala Cloud — Docs
KontenaReferensi

Referensi API Kontena

REST API publik Kontena — semua endpoint, parameter, dan header yang Anda butuhkan untuk membaca konten.

Renderer OpenAPI interaktif akan ditambahkan di sini ketika spec publik tersedia. Sementara ini, halaman menyajikan ringkasan endpoint dalam tabel.

Base URL

https://api.sawala.cloud/public/kontena

Semua endpoint di bawah ini relatif terhadap base URL ini.

Header wajib

X-API-Key: pk_live_xxx

Public key (pk_live_…) cukup untuk semua endpoint read di halaman ini. Lihat cara mint API key untuk mendapatkan token.

Endpoint

Koleksi (multiple entries)

MethodPathDeskripsi
GET/projects/{projId}/content/collection/{schemaSlug}List entri di sebuah koleksi
GET/projects/{projId}/content/collection/{schemaSlug}/{id}Ambil satu entri berdasarkan ID

Single (one entry per locale)

MethodPathDeskripsi
GET/projects/{projId}/content/single/{schemaSlug}Ambil entri singleton

Skema

MethodPathDeskripsi
GET/projects/{projId}/schemasList semua skema di project
GET/projects/{projId}/schemas/{schemaId}Ambil definisi satu skema

Query parameters

Semua endpoint list dan get menerima parameter berikut:

ParamNilaiDeskripsi
localeid, en, …Filter berdasarkan locale entri
qstringSubstring filter pada title dan slug (pencarian)
publicationStatelive (default), previewlive hanya entri yang sudah dipublish. preview membutuhkan secret key
limitinteger (default 20, max 100)Jumlah entri per halaman
cursorstringCursor untuk halaman berikutnya (dari meta.pagination.nextCursor di response sebelumnya)

Format response

Response berbentuk JSON dengan struktur:

{
  "items": [
    {
      "id":        "ent_abc",
      "slug":      "halo-dunia",
      "title":     "Halo Dunia",
      "locale":    "id",
      "status":    "published",
      "createdAt": "2026-05-01T10:00:00Z",
      "updatedAt": "2026-05-01T10:30:00Z",
      "data":      { "body": "<p>...</p>", "coverImage": { "url": "https://..." } }
    }
  ],
  "meta": {
    "pagination": {
      "limit":      20,
      "hasMore":    true,
      "nextCursor": "ZW50X3h5eg"
    }
  }
}

Field data berisi semua field yang Anda definisikan di skema.

Error codes

HTTPBodyPenyebab
400{ "error": "..." }Parameter atau body tidak valid
401{ "error": "unauthorized" }Header X-API-Key salah atau hilang
403{ "error": "forbidden" }Token tidak punya akses project ini
404{ "error": "not found" }Entri / skema / project tidak ditemukan
429{ "error": "rate limit exceeded" }Terlalu banyak request, tambahkan caching

Pagination

Pagination berbasis cursor: ambil meta.pagination.nextCursor dari response, lalu kirim sebagai cursor=... di request berikutnya. meta.pagination.hasMore akan false di halaman terakhir.

Rate limit

Default: 100 request per menit per API key. Hubungi tim Sawala untuk menaikkan limit jika Anda butuh lebih.

Daftar Isi