Skip to content
Bahasa: Bahasa Indonesia

API untuk developer

Endpoint API per area

Diperbarui 1 November 2026 7 menit baca

Setiap endpoint yang bisa Anda pakai dengan kunci API – diurutkan per area, dengan metode, path, scope yang diperlukan, dan fungsinya.

Ringkasan ini mencantumkan setiap endpoint yang berfungsi dengan token dari kunci API. Semua path diawali https://dock.at-harbor.com. Kolom persis setiap endpoint ada di deskripsi OpenAPI di https://dock.at-harbor.com/openapi.yaml.

Autentikasi dan endpoint publik

Metode dan pathAutentikasiTujuan
POST /v1/tokenTidak ada (ID kunci dan rahasia di body)Menukar kunci API dengan access token
GET /v1/plansTidak adaPaket dan harga
GET /v1/pages/available?handle=…Tidak adaMemeriksa apakah sebuah handle masih tersedia

Halaman

Metode dan pathScopeTujuan
GET /v1/pagesread:pagesSemua halaman di workspace dengan ID, handle, judul, status, versi tayang, visibilitas, dan URL
POST /v1/pageswrite:pagesMembuat halaman; wajib: handle (2–64 karakter, huruf, angka, tanda hubung) dan template_key; opsional title, domain_id, theme_config
GET /v1/pages/{id}read:pagesSatu halaman; juga has_unpublished_changes (true jika draf berbeda dari versi yang dipublikasikan)
PATCH /v1/pages/{id}write:pagesMengubah title, handle, atau discoverable (pencantuman di direktori)
PATCH /v1/pages/{id}/visibilitywrite:pagespublic, private, atau password (dengan password, 4–72 karakter); langsung berlaku
POST /v1/pages/{id}/publishwrite:pagesMemublikasikan draf; respons berisi versi baru
GET /v1/pages/{id}/versionsread:pagesVersi yang dipublikasikan
GET /v1/pages/{id}/versions/{version}read:pagesSatu versi
POST /v1/pages/{id}/versions/{version}/restorewrite:pagesMengembalikan versi ke draf; current membuang semua perubahan draf
GET /v1/pages/{id}/seoread:pagesTeks SEO dan teks berbagi
PATCH /v1/pages/{id}/seowrite:pagesseo_title, seo_description, og_title, og_description, og_image_asset_id, canonical_url, noindex
POST /v1/pages/{id}/invite-linkwrite:pagesTautan undangan untuk halaman privat yang sudah dipublikasikan; days 1–30, bawaan 7. Jika tidak, 409 page_not_private atau page_not_published
POST /v1/pages/{id}/invite-link/revokewrite:pagesMencabut tautan undangan
POST /v1/pages/{id}/uploadswrite:assetsMengunggah file untuk sebuah halaman

Draf

Metode dan pathScopeTujuan
GET /v1/pages/{id}/draftread:pagesDraf saat ini: template_key, config, theme_config, custom_css, seo, penetapan gambar, dan tautan
PATCH /v1/pages/{id}/draftwrite:pagesMinimal salah satu dari config (paling besar 64 KB sebagai JSON, setiap teks hingga 5.000 karakter), theme_config, custom_css (hingga 50.000 karakter dan 65.535 byte), seo, template_key, template_asset_bindings
GET /v1/pages/{id}/draft/validateread:pagesMemeriksa apakah draf bisa dipublikasikan

Blok

Metode dan pathScopeTujuan
GET /v1/pages/{id}/blocksread:pagesBlok-blok halaman
POST /v1/pages/{id}/blockswrite:pagesMembuat blok; wajib: type dan config
PATCH /v1/pages/{id}/blocks/{blockId}write:pagesMengedit blok
DELETE /v1/pages/{id}/blocks/{blockId}write:pagesMenghapus blok
POST /v1/pages/{id}/blocks/reorderwrite:pagesMenetapkan urutan
GET /v1/blocks/schemasread:pagesSemua jenis blok beserta skema config-nya

Jenis yang bisa Anda buat: text, image, embed, spacer, social_links, form, integration, donation, modal, heading, notice, coupon, contact, opening_hours, tour, file, vcard, countdown, dan gallery. Blok tautan bersifat tetap dan tidak dibuat lewat endpoint ini. API menolak jenis blok di luar paket Anda dengan 403 block_type_requires_plan. config sebuah blok paling besar 128 KB sebagai JSON, dan setiap teks di dalamnya paling banyak 10.000 karakter; di modal info, modal_body_html boleh berisi hingga 50.000 karakter dan paling banyak 65.535 byte.

Tautan

Metode dan pathScopeTujuan
GET /v1/pages/{id}/linksread:linksTautan-tautan halaman
POST /v1/pages/{id}/linkswrite:linksMembuat tautan; wajib: title (1–200) dan target_url_template (8–2048)
GET /v1/pages/{id}/links/{linkId}read:linksSatu tautan
PATCH /v1/pages/{id}/links/{linkId}write:linksMengedit tautan
DELETE /v1/pages/{id}/links/{linkId}write:linksMenghapus tautan
POST /v1/pages/{id}/links/reorderwrite:linksMenetapkan urutan: {"order":[ID]}

Kolom opsional saat membuat dan mengedit: enabled, geo (aturan negara dengan mode allowlist atau denylist dan countries), device (tujuan terpisah per perangkat), starts_at dan ends_at (penjadwalan), protection_tier (perlindungan bot), dan age_restriction. Penjadwalan, aturan negara, dan aturan perangkat tersedia mulai Creator Pro. Saat mengurutkan ulang, cukup kirim ID yang harus pindah ke depan – semua tautan lain mengikuti dalam urutan sebelumnya. API menolak ID yang bukan milik halaman tersebut dengan 422 validation_failed; details.missing_link_ids mencantumkannya.

Tautan pendek

Metode dan pathScopeTujuan
GET /v1/short-linksread:short_linksTautan pendek dengan limit, offset, sort, dan pencarian q; respons berisi total
POST /v1/short-linkswrite:short_linksMembuat; wajib: target_url (http atau https, 8–2048); opsional title (hingga 120) dan custom_slug (3–32, huruf kecil, angka, tanda hubung)
GET /v1/short-links/{id}read:short_linksSatu tautan pendek
PATCH /v1/short-links/{id}write:short_linksMengubah target_url atau title
DELETE /v1/short-links/{id}write:short_linksMenghapus tautan pendek

Jika batas tautan pendek paket sudah tercapai, API merespons dengan 402 plan_limit_reached.

Aset

Metode dan pathScopeTujuan
GET /v1/assetsread:assetsAset-aset workspace
POST /v1/assetswrite:assetsMengunggah file (multipart/form-data, kolom file; opsional page_id, kind, title, alt_text)
DELETE /v1/assets/{assetId}write:assetsMenghapus aset

Formulir

Metode dan pathScopeTujuan
GET /v1/formsread:formsFormulir
POST /v1/formswrite:formsMembuat formulir; wajib: name dan fields (1–100 kolom)
GET /v1/forms/{id}read:formsSatu formulir
PATCH /v1/forms/{id}write:formsMengedit formulir
DELETE /v1/forms/{id}write:formsMenghapus formulir
GET /v1/forms/{id}/summaryread:formsRingkasan
GET /v1/forms/{id}/submissionsread:formsKiriman, yang terbaru lebih dulu (limit 1–500, bawaan 100; halaman berikutnya lewat cursor = next_cursor)
GET /v1/forms/{id}/submissions/exportread:formsSemua kiriman sebagai file CSV, yang terbaru lebih dulu, hingga batas ekspor paket (mulai Creator Pro); header X-Export-Truncated menunjukkan apakah file terpotong

Statistik

Metode dan pathScopeTujuan
GET /v1/stats/pages/{id}/summaryread:statsAngka utama sebuah halaman
GET /v1/stats/pages/{id}/timeseriesread:statsDeret waktu sebuah halaman
GET /v1/stats/pages/{id}/compareread:statsPerbandingan dengan periode sebelumnya
GET /v1/stats/pages/{id}/linksread:statsKlik per tautan
GET /v1/stats/pages/{id}/widgetsread:statsKlik pada widget
GET /v1/stats/pages/{id}/conversions/breakdownread:statsKonversi sebuah halaman
GET /v1/stats/workspaces/me/summaryread:statsAngka utama semua halaman
GET /v1/stats/workspaces/me/timeseriesread:statsDeret waktu semua halaman
GET /v1/stats/workspaces/me/compareread:statsPerbandingan dengan periode sebelumnya
GET /v1/stats/workspaces/me/top-pagesread:statsHalaman teratas
GET /v1/stats/workspaces/me/conversions/breakdownread:statsKonversi workspace
GET /v1/stats/workspaces/me/donationsread:donationsTotal pembayaran pendukung

Periode Anda pilih seperti dijelaskan di Paginasi, dengan period atau dengan from dan to. Seberapa jauh ke belakang Anda bisa melihat tergantung paketnya: 365 hari di Creator Pro dan Agency, 730 hari di Enterprise. Periode yang lebih lama dipangkas ke batas ini.

Push (hanya baca)

Metode dan pathScopeTujuan
GET /v1/push/historyread:statsRiwayat push (limit, offset)
GET /v1/push/usageread:statsPemakaian batas mingguan

Mengirim notifikasi push dan mengelola aturan push hanya bisa dilakukan di dasbor.

Workspace, templat, dan domain

Metode dan pathScopeTujuan
GET /v1/workspaces/me/entitlementsread:workspacesFitur dan batas paket
GET /v1/workspaces/me/usageread:workspacesPemakaian saat ini
GET /v1/workspaces/me/usage/meteringread:workspacesRiwayat pemakaian
GET /v1/workspaces/me/membersread:workspacesDaftar anggota
GET /v1/workspaces/me/settingsread:workspacesPengaturan workspace
GET /v1/workspaces/me/callback-secretsread:workspacesRahasia callback (tanpa rahasia dalam teks biasa)
GET /v1/workspaces/me/callback-secrets/{id}read:workspacesSatu rahasia callback (tanpa rahasia dalam teks biasa)
GET /v1/templatesread:workspacesSemua templat
GET /v1/templates/availableread:workspacesTemplat bawaan dan templat workspace aktif dengan nilai template_key yang valid; templat workspace punya kunci ws:<key> dan type workspace
GET /v1/templates/{key}read:workspacesSatu templat
GET /v1/workspaces/me/templatesread:workspacesTemplat workspace Anda sendiri
GET /v1/workspaces/me/templates/{id}read:workspacesSatu templat workspace
POST, PATCH, DELETE /v1/workspaces/me/templates[/{id}]write:templatesMembuat, mengedit, menghapus templat workspace; html paling besar 60.000 byte (jika tidak, 422 validation_failed dengan details.reason maxBytes), hingga 32 asset_slots
GET /v1/domainsread:workspacesDomain kustom
GET /v1/domains/availableread:workspacesDomain yang tersedia untuk halaman

Tidak tersedia dengan kunci API

Webhook, integrasi, mengirim notifikasi push, mengelola domain, anggota, penagihan, dan menghapus halaman hanya tersedia di dasbor. Rahasia callback juga hanya bisa dibuat dan dikelola di dasbor; mendaftar dan membacanya (tanpa rahasia dalam teks biasa) berfungsi dengan read:workspaces. Daftar lengkapnya ada di Scope secara detail. Data masuk – penjualan dan data langsung Anda sendiri – Anda kirim dengan secret terpisah ke endpoint yang dijelaskan di Callback.

Tidak menemukan jawabannya?

Beri tahu kami apa yang Anda perlukan, dan tim dukungan kami akan membantu Anda secara langsung.

Hubungi dukungan