Publishable Keys
Gọi API an toàn trên trình duyệt. Không cần backend riêng.
Một Publishable Key (po_pk_) có thể xuất hiện ở frontend: giới hạn theo scope, ràng buộc theo origin và giới hạn ngân sách.
Dành cho Claude Artifacts, ChatGPT Canvas, Grok và mọi ứng dụng web tùy chỉnh.
- Cơ sở hạ tầng EU riêng Dữ liệu của bạn vẫn ở châu Âu.
- ISO 27001 đang hoạt động Bảo mật đã được chứng nhận.
- SOC 2 Type II đang hoạt động Tiêu chuẩn kiểm toán quốc tế.
- Hơn 24 năm kinh nghiệm Đã được chứng minh. Ổn định. An toàn cho tương lai.
Trực tiếp từ trình duyệt
Từ AI-Canvas trực tiếp đến lệnh gọi API
Bạn đang xây dựng ứng dụng chuyển đổi PDF sang văn bản trong Claude Artifacts, ChatGPT Canvas hoặc Grok. Cho đến nay, lệnh gọi API chưa được thực hiện do: CORS chặn yêu cầu, khóa bí mật (Secret Key) sẽ hiển thị rõ ràng trong mã nguồn, và việc sử dụng khóa mở (open key) sẽ gây tải lên tài khoản của bạn. Chính các Khóa công khai (Publishable Keys) khắc phục khoảng trống này.
Dán vào Claude, ChatGPT hoặc Grok
Một lời nhắc biến mọi AI-Canvas thành bản demo thực sự, hỗ trợ API — mà không cần backend.
Đọc tài liệu API này:
https://api.paperoffice.ai/latest/docs/llms-full.txt Xây dựng một ứng dụng React tệp đơn (Claude Artifact / ChatGPT Canvas / Grok):
Người dùng tải lên một PDF, ứng dụng gọi
/job/add/paperoffice_aiocr___generate trực tiếp từ trình duyệt
và hiển thị văn bản đã trích xuất. Xác thực: Bearer po_pk_MY_PUBLISHABLE_KEY (yêu cầu người dùng nhập khóa).
Sử dụng processing_lane=instant để lấy kết quả đồng bộ. Header Origin được trình duyệt đặt. Chọn một preset, tạo một khóa, dán vào.
Bảng điều khiển cung cấp các preset cho scopes và ngân sách. Origins để trống — hãy nhập Header Origin từ DevTools của trình duyệt, sau đó sao chép Key vào prompt của bạn.
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" Gọi lần đầu
fetch từ trình duyệt, trình duyệt đặt Origin
Yêu cầu gọi đến POST /latest/job/add/{pipeline} — cùng điểm cuối với Khóa bí mật (Secret Key). Chỉ có loại Khóa và tiêu đề Origin, do trình duyệt tự động gửi, là mới.
- Origin đến từ trình duyệt
fetch tự đặt tiêu đề Origin. Các tập lệnh bên ngoài trình duyệt (cURL, Node) phải gửi nó một cách rõ ràng — nếu không, API sẽ trả về 403 ORIGIN_HEADER_REQUIRED.
- Kết quả trực tiếp
Với processing_lane=instant và client_wait=true, API giữ kết nối và cung cấp kết quả ngay trong phản hồi.
- Mã lỗi rõ ràng
402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — mỗi giới hạn đều báo bằng một mã riêng.
Ma trận Bảo mật
Sáu kiểm soát, tất cả được thực thi phía máy chủ
Giới hạn theo scope, ràng buộc theo origin, giới hạn ngân sách, có thể thu hồi bất cứ lúc nào. Mọi kiểm soát đều được thực thi phía máy chủ — do đó Key có thể nằm trong mã frontend.
-
Giới hạn phạm vi
Khóa chỉ truy cập vào các nhóm Endpoint mà bạn explicitly cấp quyền:
ocr:read,llm:generate,translate:textvà các nhóm khác. Các yêu cầu ngoài phạm vi sẽ trả về HTTP 403. -
Gắn liền với nguồn gốc
Mỗi yêu cầu phải gửi kèm tiêu đề Origin khớp với danh sách cho phép của khóa (chính xác host hoặc wildcard subdomain). Nếu không khớp, API sẽ trả về HTTP 403.
-
Không giới hạn phút bổ sung
Không có giới hạn phút riêng chỉ dành cho po_pk_. Các giới hạn tốc độ token thông thường của tài khoản vẫn áp dụng; việc tiêu thụ được kiểm soát bởi ngân sách lifetime.
-
Ngân sách giới hạn
Mỗi khóa có một ngân sách lifetime. Khi ngân sách cạn kiệt, API sẽ trả về HTTP 402 BUDGET_EXHAUSTED — việc tiêu thụ kết thúc ngay tại đó, không chờ đến khi thanh toán.
-
Thu hồi bất cứ lúc nào
Các khóa có thể được thu hồi bất cứ lúc nào trong tài khoản. Một khóa đã thu hồi sẽ không còn được API chấp nhận.
-
Khóa cứng
HTTP DELETE cũng như đăng nhập tài khoản, quản lý Key, OAuth, quản lý đối tác, thao tác thanh toán và bẻ khóa mật khẩu luôn bị khóa chặt cho mọi po_pk_. Các sản phẩm API được tài liệu hóa — bao gồm xóa bằng POST, webhooks, đọc hóa đơn và CRM — được phép.
Phân cấp khóa
Ba loại khóa, trách nhiệm rõ ràng
Secret Key cho máy chủ, Publishable Key cho trình duyệt — cùng một User Token để truy cập liên quan đến người dùng và có giới hạn tỷ lệ.
| Tiền tố | Loại | Trường hợp sử dụng | An toàn trình duyệt | Phạm vi mặc định |
|---|---|---|---|---|
po_sk_ | Khóa bí mật | Máy chủ đến máy chủ, truy cập đầy đủ API | Không | Tất cả điểm cuối |
po_ut_ | User Token | Người dùng, giới hạn theo cấp độ | Không | Dựa trên cấp độ |
po_pk_ | Publishable Key | Trình duyệt / AI-Canvas (Claude, ChatGPT, Grok) | Có | Danh sách phạm vi |
Ba mẫu cài đặt
Một cú nhấp chuột. Một khóa. Một mục đích.
Mỗi preset được cấu hình cho một trường hợp sử dụng cụ thể — các mặc định bảo mật, phạm vi được tuyển chọn, ngân sách thực tế. Mọi thứ đều có thể điều chỉnh mọi lúc trên bảng điều khiển.
-
DEFAULTĐọc an toànQuyền mặc định an toàn cho các bản demo đơn giản và công cụ nội bộ: OCR, LLM, Dịch, Tài liệu, Tìm kiếm.
Phạm vi quyền (Scopes)
Bắt đầu với preset này -
AIDEMOSân chơi AI Được khuyến nghịDành cho Claude Artifacts, ChatGPT Canvas và các demo Grok. Mọi thứ bạn cần để triển khai demo AI trực tiếp.
Phạm vi quyền (Scopes)
Bắt đầu với preset này -
WIDGETTrang web công cộngDành cho biểu mẫu liên hệ, widget trò chuyện và nút đặt lịch trên trang web công ty của bạn.
Phạm vi quyền (Scopes)
Bắt đầu với preset này
Cuộc gọi API đầu tiên
Sẵn sàng cho cuộc gọi đầu tiên từ trình duyệt?
Tạo Key, mở llms-full.txt, dán Prompt — Ứng dụng của bạn gọi API trực tiếp từ Claude, ChatGPT hoặc Grok.
Publishable Keys trong thực tế
Xem cách PaperOffice Publishable Keys hoạt động trong thực tế — qua video.
Câu hỏi thường gặp
Tất cả thông tin quan trọng trong tầm tay
po_pk_ và po_sk_ khác nhau như thế nào?
po_sk_ (Khóa bí mật) dành cho tích hợp máy chủ-máy chủ — truy cập đầy vào API, không bao giờ nhúng vào trình duyệt. po_pk_ (Khóa công khai) được xây dựng cho mã trình duyệt: giới hạn phạm vi, gắn liền với nguồn gốc, giới hạn ngân sách. Cùng API, hồ sơ bảo mật khác nhau.
Tại sao không chỉ sử dụng proxy ngược từ backend của riêng mình?
Đây là cách tiếp cận truyền thống — nhưng vẫn yêu cầu một backend. AI-Artifacts (Claude, ChatGPT, Grok) được thiết kế để hoạt động mà không cần backend riêng. Các khóa công khai (Publishable Keys) cho phép điều này mà không làm lộ Khóa bí mật của bạn: các giới hạn được thực thi phía máy chủ.
Điều này có hoạt động trong các AI Artifacts của Claude, bất chấp sandbox CORS của chúng không?
Có. Cuộc gọi diễn ra trực tiếp từ trình duyệt, header Origin do chính trình duyệt đặt. PaperOffice không cung cấp danh sách cho phép của nhà cung cấp; bạn nhập Origin khi tạo Key từ DevTools.
Điều gì xảy ra nếu po_pk_ của tôi bị công khai?
Thiệt hại được giới hạn: Khóa nguồn gốc chặn việc sử dụng trên các tên miền lạ, giới hạn ngân sách chấm dứt việc tiêu thụ, giới hạn tốc độ làm chậm các truy cập tự động. Thu hồi khóa trong tài khoản — sau đó API sẽ không chấp nhận nó nữa.
Tôi có thể thêm tên miền của riêng mình vào danh sách nguồn gốc được cho phép không?
Có. Khi tạo khóa, bạn thêm mỗi nguồn gốc vào danh sách cho phép — dưới dạng máy chủ chính xác hoặc ký tự đại diện con miền. Preset WIDGET được xây dựng chính xác cho mục đích này: Đăng ký tên miền của riêng bạn và nhúng các tiện ích Chat, Đặt lịch hoặc Liên hệ mà không cần backend.
Tôi đặt ngân sách cho mỗi khóa như thế nào?
Khi tạo, hãy chọn một giới hạn Lifetime; các preset sẽ đi kèm với một giá trị mặc định. Khi đạt đến giới hạn này, API sẽ trả về HTTP 402 BUDGET_EXHAUSTED. Bạn có thể điều chỉnh giá trị này trong tài khoản bất cứ lúc nào.
po_pk_ có cần một gói dịch vụ riêng không?
Không. Publishable Key là một lớp bảo vệ bổ sung xung quanh tài khoản hiện có của bạn: nó giới hạn scopes, origins và ngân sách. Bảng giá sẽ cho biết gói nào phù hợp với cấu hình của bạn.
Những Endpoints nào bị khóa đối với po_pk_?
HTTP DELETE cũng như đăng nhập tài khoản, quản lý người dùng, quản lý khóa, OAuth, quản lý đối tác, thanh toán Stripe và bẻ khóa mật khẩu đều bị khóa cố định. Các sản phẩm được tài liệu hóa theo APIs được phép, bao gồm xóa POST, webhook, đọc hóa đơn, nhập liệu và CRM. Xóa Workspace, làm rỗng thùng rác và giải phóng Legal-Hold vẫn chỉ khả dụng qua giao diện người dùng (403 UI_ONLY_ENDPOINT).
Vận hành và niềm tin
Những gì các nhóm doanh nghiệp kiểm tra trước cuộc gọi đầu tiên
Hợp đồng, bảo mật, hỗ trợ và giới hạn, tất cả đều được liên kết tại một nơi.
- Bảo mật và Tuân thủ ISO 27001, SOC 2 Type II, cơ sở hạ tầng EU riêng.
- SLA 99,9% Thời gian hoạt động mỗi tháng dương lịch, được đảm bảo bằng hợp đồng.
- Xử lý dữ liệu thay mặt (DPA) Hợp đồng xử lý dữ liệu thay mặt tuân thủ GDPR.
- Danh sách nhà thầu phụ Tất cả các nhà thầu phụ được liệt kê minh bạch.
- Hỗ trợ kỹ thuật Đường dây trực tiếp đến nhóm hỗ trợ, có tạo phiếu yêu cầu.
- Giới hạn tốc độ và tiêu đề Giá trị tối thiểu được tài liệu hóa cho mỗi token, tiêu đề giới hạn tốc độ trong mỗi phản hồi.
- Giá cả và Credits Giá Credits minh bạch cho mỗi lần gọi.
Trạm tiếp theo
Cách thức thực hiện tiếp theo
Bước tiếp theo được khuyến nghị trong phễu nhà phát triển và hai nhánh rẽ phù hợp.