Publishable Keys
Panggilan API yang aman di browser. Tanpa backend sendiri.
Sebuah Publishable Key (po_pk_) boleh ditempatkan di frontend: dibatasi scope, terikat origin, dan tertutup anggaran.
Untuk Artifact Claude, Canvas ChatGPT, Grok, dan setiap aplikasi web kustom.
- Infrastruktur Uni Eropa Sendiri Data Anda tetap berada di Eropa.
- ISO 27001 aktif Keamanan bersertifikat.
- SOC 2 Tipe II aktif Standards audit internasional.
- Pengalaman lebih dari 24 tahun Terbukti. Stabil. Siap untuk masa depan.
Langsung dari browser
Dari AI-Canvas langsung ke panggilan API
Anda membangun aplikasi PDF-ke-teks di Claude, ChatGPT Canvas, atau Grok. Tanpa backend, panggilan API belum pernah terjadi: CORS memblokir, kunci rahasia akan terlihat dalam kode sumber, dan kunci terbuka membebani akun Anda. Di sinilah Publishable Keys mengisi kekosongan tersebut.
Tempelkan di Claude, ChatGPT atau Grok
Sebuah prompt yang mengubah setiap AI-Canvas menjadi demo nyata yang didukung oleh API — tanpa backend.
Baca dokumen API ini:
https://api.paperoffice.ai/latest/docs/llms-full.txt Bangun aplikasi React satu file (Claude Artifact / ChatGPT Canvas / Grok):
Pengguna mengunggah PDF, aplikasi memanggil
/job/add/paperoffice_aiocr___generate langsung dari browser
dan menampilkan teks yang diekstrak. Autentikasi: Bearer po_pk_MY_PUBLISHABLE_KEY (minta pengguna untuk memasukkan kunci).
Gunakan processing_lane=instant untuk hasil sinkron. Header Origin ditetapkan oleh browser. Pilih preset, buat kunci, tempelkan.
Dashboard menyediakan preset untuk Scope dan Budget. Origin tetap kosong — masukkan Header Origin dari DevTools browser, lalu salin Key ke dalam Prompt Anda.
const form = new FormData();form.append("file_1", fileInput.files[0]);form.append("processing_lane", "instant");form.append("client_wait", "true");const response = await fetch("https://api.paperoffice.ai/latest/job/add/paperoffice_aiocr___generate", { method: "POST", headers: { Authorization: "Bearer po_pk_YOUR_PUBLISHABLE_KEY" }, body: form,});console.log(await response.json()); curl -X POST "https://api.paperoffice.ai/latest/job/add/paperoffice_aiocr___generate" \ -H "Authorization: Bearer po_pk_YOUR_PUBLISHABLE_KEY" \ -H "Origin: https://app.example.com" \ -F "[email protected]" \ -F "processing_lane=instant" \ -F "client_wait=true" Panggilan pertama
fetch dari browser, Origin ditetapkan oleh browser
Panggilan ditujukan ke POST /latest/job/add/{pipeline} — endpoint yang sama seperti dengan Secret Key. Yang baru hanyalah jenis kunci dan header Origin, yang dikirimkan secara otomatis oleh browser.
- Origin berasal dari browser
fetch mengatur header Origin secara otomatis. Skrip di luar browser (cURL, Node) harus mengirimkannya secara eksplisit — jika tidak, API akan merespons dengan 403 ORIGIN_HEADER_REQUIRED.
- Hasil secara inline
Dengan processing_lane=instant dan client_wait=true, API menjaga koneksi tetap terbuka dan memberikan hasil langsung dalam respons.
- Kode kesalahan yang jelas
402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — setiap batas melaporkan dengan kode tersendiri.
Matriks Keamanan
Enam kontrol, semua dipaksakan di sisi server
Dibatasi scope, terikat origin, tertutup anggaran, dapat ditarik kembali kapan saja. Setiap kontrol ditegakkan di sisi server — oleh karena itu Key boleh berada dalam kode frontend.
-
Dibatasi ruang lingkup
Kunci hanya mencapai grup endpoint yang Anda izinkan secara eksplisit:
ocr:read,llm:generate,translate:textdan lainnya. Pemanggilan di luar ruang lingkup akan mengembalikan HTTP 403. -
Terikat asal
Setiap permintaan harus menyertakan header Origin yang cocok dengan daftar izin kunci (host eksak atau wildcard subdomain). Jika tidak cocok, API akan mengembalikan HTTP 403.
-
Tidak ada batas menit tambahan
Tidak ada batas menit khusus hanya untuk po_pk_. Batas laju token normal akun berlaku; konsumsi ditutupi oleh Lifetime Budget.
-
Dibatasi anggaran
Setiap kunci memiliki anggaran seumur hidup. Jika anggaran telah habis, API akan mengembalikan HTTP 402 BUDGET_EXHAUSTED — konsumsi berhenti di sana, bukan pada saat penagihan.
-
Dapat dicabut kapan saja
Kunci dapat dicabut kapan saja melalui akun. Kunci yang telah dicabut tidak lagi diterima oleh API.
-
Diblokir secara permanen
HTTP DELETE serta login akun, manajemen kunci, OAuth, admin mitra, mutasi pembayaran dan cracking password tetap terkunci untuk setiap po_pk_. Produk yang didokumentasikan — APIs — termasuk penghapusan POST, webhook, penagihan bacaan dan CRM diizinkan.
Hierarki Kunci
Tiga jenis kunci, tanggung jawab yang jelas
Secret Key untuk server, Publishable Key untuk browser — ditambah Token Pengguna untuk akses berbasis pengguna dengan batasan laju.
| Awalan | Jenis | Kasus Penggunaan | Aman untuk Browser | Lingkup Default |
|---|---|---|---|---|
po_sk_ | Kunci Rahasia | Server-ke-Server, akses penuh API | Tidak | Semua Endpoint |
po_ut_ | User Token | Digunakan oleh pengguna, Terbatas pada tier | Tidak | Berdasarkan Tier |
po_pk_ | Publishable Key | Browser / AI canvas (Claude, ChatGPT, Grok) | Ya | Daftar Scope |
Tiga Preset
Satu klik. Satu kunci. Satu tujuan.
Setiap preset dikonfigurasi untuk use-case yang spesifik — default aman, scope terkurasi, anggaran realistis. Semua dapat disesuaikan kapan saja di dasbor.
-
DEFAULTPembacaan amanHak akses default yang aman untuk demo sederhana dan alat internal: OCR, LLM, Terjemahan, Dokumen, Pencarian.
Area izin (scopes)
Mulai dengan preset ini -
AIDEMOAI-Spielwiese DirekomendasikanUntuk Artifact Claude, Canvas ChatGPT, dan demo Grok. Semua yang Anda butuhkan untuk menjalankan demo AI secara langsung.
Area izin (scopes)
Mulai dengan preset ini -
WIDGETSitus Web PublikUntuk formulir kontak, widget obrolan, dan tombol pemesanan di situs web perusahaan Anda.
Area izin (scopes)
Mulai dengan preset ini
Panggilan API Pertama
Siap untuk panggilan pertama dari browser?
Buat kunci, buka llms-full.txt, tempelkan prompt — aplikasi Anda memanggil API langsung dari Claude, ChatGPT atau Grok.
Kunci yang Dapat Dipublikasikan dalam Aksi
Lihat bagaimana PaperOffice Publishable Keys bekerja dalam praktik — dalam video.
Pertanyaan Umum
Semua Informasi Penting dalam Tinjauan
Apa perbedaan antara po_pk_ dan po_sk_?
po_sk_ (Secret Key) dirancang untuk integrasi server-to-server — akses penuh ke API, jangan pernah disertakan dalam kode browser. po_pk_ (Publishable Key) dibangun untuk kode browser: dibatasi scope-nya, terikat pada origin, dan dibatasi anggaran. Menggunakan API yang sama, tetapi dengan profil keamanan yang berbeda.
Mengapa tidak cukup menggunakan reverse proxy dari backend sendiri?
Ini adalah cara klasik — namun tetap memerlukan backend. AI Artifacts (Claude, ChatGPT, Grok) dirancang untuk beroperasi tanpa backend sendiri. Publishable Keys memungkinkan hal ini tanpa membocorkan Secret Key Anda: batasan diterapkan di sisi server.
Apakah ini berfungsi di dalam Artifacts Claude, mengingat sandbox CORS-nya?
Ya. Pemanggilan berjalan langsung dari browser, Header Origin ditetapkan oleh browser itu sendiri. PaperOffice tidak menyediakan Vendor-Allow-List; masukkan Origin saat membuat Key dari DevTools.
Apa yang terjadi jika po_pk_ saya terlihat secara publik?
Kerugian tetap terbatas: Kunci penguncian origin memblokir penggunaan pada domain pihak ketiga, batas anggaran menghentikan konsumsi, dan batas laju memperlambat akses otomatis. Cabut kunci tersebut di akun Anda — setelah itu, API tidak akan menerimanya lagi.
Bisakah saya menambahkan domain saya sendiri ke daftar origin yang diizinkan?
Ya. Saat membuat kunci, tambahkan setiap origin ke Allow-List — sebagai host eksak atau wildcard subdomain. Preset WIDGET dirancang khusus untuk ini: Daftarkan domain Anda sendiri dan sematkan widget Chat, Pemesanan, atau Kontak tanpa backend.
Bagaimana cara mengatur anggaran per kunci?
Saat membuat, pilih batas seumur hidup; preset masing-masing memiliki ketentuan bawaan. Jika batas tercapai, API akan mengembalikan HTTP 402 BUDGET_EXHAUSTED. Nilai ini dapat disesuaikan kapan saja di akun.
Apakah po_pk_ memerlukan tarif sendiri?
Tidak. Publishable Key adalah lapisan perlindungan tambahan di sekitar akun Anda yang ada: ia membatasi Scope, Origin, dan Budget. Paket mana yang sesuai dengan setup Anda dapat dilihat pada ringkasan harga.
Endpoint mana yang diblokir untuk po_pk_?
HTTP DELETE serta login akun, admin pengguna, manajemen kunci, OAuth, admin mitra, Stripe Checkout dan cracking password telah dikunci secara permanen. API produk yang terdokumentasi diizinkan, termasuk penghapusan POST, webhook, baca billing, impor dan CRM. Workspace hapus, kosongkan tempat sampah dan pelepasan hold hukum tetap hanya melalui UI (403 UI_ONLY_ENDPOINT).
Operasi dan Kepercayaan
Yang diperiksa tim perusahaan sebelum panggilan pertama
Kontrak, keamanan, dukungan, dan batas semua terhubung di satu tempat.
- Keamanan dan Kepatuhan ISO 27001, SOC 2 Type II, infrastruktur UE sendiri.
- SLA 99,9% Ketersediaan per bulan kalender, dijamin secara kontrak.
- Pemrosesan Data oleh Pihak Ketiga (DPA) Kontrak pemrosesan data yang sesuai dengan GDPR.
- Daftar Sub-Pengolah Semua sub-pengolah, didaftarkan secara transparan.
- Dukungan Teknis Jalur langsung ke tim dukungan, dengan tiket.
- Batas Laju dan Header Nilai minimum terdokumentasi per token, header Batas Laju dalam setiap respons.
- Harga dan Credits Harga Credits transparan per panggilan.
Berikutnya
Lanjutkan seperti ini
Langkah selanjutnya yang direkomendasikan dalam funnel pengembang dan dua cabang yang sesuai.