Publishable Keys
ブラウザで安全なAPI呼び出し。 独自のバックエンド不要。
フロントエンドに配置できる Publishable Key (po_pk_) は、スコープ制限、オリジン依存、予算上限付きです。
Claude Artifacts、ChatGPT Canvas、Grok、および独自のWebアプリ向け。
- 独自のEUインフラストラクチャ データはヨーロッパ内に留まります。
- ISO 27001 有効 セキュリティ認証取得。
- SOC 2 Type II認証取得済み 国際監査基準。
- 24年以上の経験 実績あり。安定。将来に備えて。
ブラウザから直接
AIキャンバスからAPI呼び出しへ
Claude、ChatGPT、またはGrokでPDFからテキストへの変換アプリを構築しています。バックエンドがない場合、APIへの呼び出しはこれまで行われていませんでした:CORSがブロックされ、シークレットキーがソースコードに公開され、オープンキーがアカウントに負荷をかけていました。このギャップをPublishable Keysが埋めます。
Claude、ChatGPT、またはGrokに貼り付け
バックエンドなしで、あらゆるAIキャンバスを実際のAPI対応デモに変えるプロンプト。
このAPIドキュメントをお読みください:
https://api.paperoffice.ai/latest/docs/llms-full.txt 単一ファイルのReactアプリ(Claudeアーティファクト / ChatGPTキャンバス / Grok)を構築してください:
ユーザーがPDFをアップロードすると、アプリはブラウザから直接
/job/add/paperoffice_aiocr___generate を呼び出し
抽出されたテキストを表示します。認証: Bearer po_pk_MY_PUBLISHABLE_KEY(キーの入力をユーザーに促す)。
同期結果には processing_lane=instant を使用してください。Originヘッダーはブラウザによって設定されます。 プリセットを選択し、キーを作成して貼り付けます。
ダッシュボードはスコープと予算のプリセットを提供します。オリジンは空のままにし、ブラウザのデベロッパーツールから取得した Origin ヘッダーを入力し、その後キーをプロンプトにコピーしてください。
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" 最初の呼び出し
ブラウザからのfetch、Originはブラウザが設定
リクエストは POST /latest/job/add/{pipeline} 宛てに行われます。これはシークレットキーを使用する場合と同じエンドポイントです。変更点として新たに導入されたのは、キーのタイプとブラウザが自動的に送信する Origin ヘッダーのみです。
- Origin はブラウザから送信される
fetch は Origin ヘッダーを自動的に設定します。ブラウザ外のスクリプト(cURL、Node など)は明示的にヘッダーを送信する必要があります。そうでない場合、API は 403 ORIGIN_HEADER_REQUIRED で応答します。
- 結果のインライン返却
processing_lane=instant および client_wait=true を指定すると、API は接続を保持し、レスポンス内で結果を直接返します。
- 明確なエラーコード
402 BUDGET_EXHAUSTED、403 DOMAIN_NOT_ALLOWED、403 SCOPE_NOT_GRANTED、429 RATE_LIMIT_EXCEEDED — 各制限は固有のエラーコードで通知されます。
セキュリティマトリックス
6つの制御、すべてサーバー側で強制
スコープ制限、オリジン依存、予算上限付き、いつでも取り消し可能。すべての制御はサーバー側で強制されるため、キーはフロントエンドコードに含めることができます。
-
スコープ限定
キーは明示的に解放されたエンドポイントグループにのみアクセスできます:
ocr:read、llm:generate、translate:textなど。スコープ外の呼び出しには HTTP 403 が返されます。 -
オリジン依存
各リクエストには、キーの許可リスト(正確なホストまたはサブドメインワイルドカード)と一致する Origin ヘッダーが必要です。一致しない場合、API HTTP 403 が返されます。
-
追加の分制限なし
po_pk_ に固有の分間制限はありません。アカウントの通常のトークンレート制限が適用され、消費はライフタイム予算によって上限が設定されます。
-
予算制限あり
各キーにはライフタイム予算が設定されています。予算が枯渇すると、APIはHTTP 402 BUDGET_EXHAUSTEDを返します — 請求時までではなく、消費時点で終了します。
-
いつでも取り消し可能
キーはアカウント内でいつでも取り消すことができます。取り消されたキーはAPIによって受け付けられなくなります。
-
固定ロック
HTTP DELETE およびアカウントログイン、キー管理、OAuth、パートナー管理、支払い変更操作、パスワードクラックは、すべての po_pk_ に対して恒久的にブロックされます。文書化された製品 API(POST による削除、Webhook、請求書読み取り、CRM を含む)は許可されています。
キー階層
3つのキータイプ、明確な責任分担
サーバー用Secret Key、ブラウザ用Publishable Key — さらにユーザー関連のレート制限付きアクセス用のUser Token。
| プレフィックス | タイプ | ユースケース | ブラウザ対応 | デフォルトスコープ |
|---|---|---|---|---|
po_sk_ | シークレットキー | サーバー間通信、完全なAPIアクセス権限 | いいえ | すべてのエンドポイント |
po_ut_ | User Token | ユーザースコープ、ティア制限 | いいえ | ティアベース |
po_pk_ | Publishable Key | ブラウザ / AI-キャンバス (Claude, ChatGPT, Grok) | はい | スコープリスト |
3つのプリセット
ワンクリック。キー一つ。明確な目的。
各プリセットは特定のユースケースに合わせて設定されています — 安全なデフォルト値、厳選されたスコープ、現実的な予算。すべてダッシュボードでいつでも調整可能です。
-
DEFAULT安全な読み取り専用簡単なデモや内部ツール用の安全なデフォルト権限:OCR、LLM、翻訳、ドキュメント、検索。
権限スコープ
このプリセットで開始 -
AIDEMOAIプレイグラウンド 推奨Claude Artifacts、ChatGPT Canvas、Grokデモ用。AIデモをライブで実行するために必要なすべて。
権限スコープ
このプリセットで開始 -
WIDGET公開ウェブサイト自社の企業ウェブサイト上のコンタクトフォーム、チャットウィジェット、予約ボタン用。
権限スコープ
このプリセットで開始
最初のAPIコール
ブラウザからの最初の呼び出しの準備はできましたか?
キーを作成し、llms-full.txtを開き、プロンプトを貼り付け — あなたのアプリはAPIをClaude、ChatGPT、またはGrokから直接呼び出します。
Publishable Keysの実演
PaperOfficeのPublishable Keysが実際にどのように機能するかをご覧ください。
よくある質問
重要な情報すべてをワンストップで
po_pk_とpo_sk_の違いは何ですか?
po_sk_(シークレットキー)はサーバー間統合用であり、APIへのフルアクセス権限を持ち、ブラウザには決して組み込まないでください。po_pk_(公開可能キー)はブラウザコード向けに設計されており、スコープ制限、オリジンバインド、予算上限が設定されています。同じAPIを使用しますが、セキュリティプロファイルが異なります。
なぜ自前のバックエンドからリバースプロキシを使わないのですか?
これは古典的な方法ですが、引き続きバックエンドが必要です。AIアーティファクト(Claude、ChatGPT、Grok)は、独自のバックエンドなしでの運用を目的としています。Publishable Keysを使用することで、Secret Keyを公開することなくこれを実現できます:境界はサーバー側で強制されます。
CORSサンドボックスがあるClaudeアーティファクトでも機能しますか?
はい。呼び出しはブラウザから直接行われ、Origin ヘッダーはブラウザ自体が設定します。PaperOffice はベンダー許可リストを提供しません;キー作成時にデベロッパーツールから取得した Origin を入力してください。
po_pk_が公開されて見えるようになった場合どうなりますか?
被害は限定されます:オリジンロックにより他ドメインでの使用がブロックされ、予算制限により消費が終了し、レート制限により自動アクセスが抑制されます。アカウントでキーを無効化してください。その後、APIはそのキーを受け付けなくなります。
独自のドメインを許可されたオリジンとして追加できますか?
はい。キー作成時に、正確なホストまたはサブドメインのワイルドカードとして、各オリジンを許可リストに追加します。WIDGETプリセットはまさにそのために設計されています:独自のドメインを登録し、バックエンドなしでチャット、予約、またはコンタクトウィジェットを組み込みます。
キーごとに予算を設定する方法は?
作成時にライフタイム制限を選択します。プリセットにはそれぞれ既定値が含まれています。制限に達すると、APIはHTTP 402 BUDGET_EXHAUSTEDを返します。この値はアカウント内でいつでも調整可能です。
po_pk_には独自のプランが必要ですか?
いいえ。Publishable Key は既存のアカウントを取り巻く追加の保護層です:スコープ、オリジン、予算を制限します。どのプランがあなたのセットアップに適しているかは、価格表をご覧ください。
po_pk_に対してどのエンドポイントがブロックされていますか?
HTTP DELETE およびアカウントログイン、ユーザー管理、キー管理、OAuth、パートナー管理、Stripe チェックアウト、パスワードクラックは恒久的にブロックされています。文書化された製品 API は許可されており、POST による削除、Webhook、請求書読み取り、インポート、CRM が含まれます。Workspace の削除、ゴミ箱の空欄化、法的事由保持の解除は UI のみ(403 UI_ONLY_ENDPOINT)です。
運用と信頼性
エンタープライズチームが最初の通話前に確認すること
契約、セキュリティ、サポート、制限事項など、すべてを一元リンクで提供。
次のステップ
今後の進め方
開発者向けファネルにおける推奨される次のステップと、関連する2つの分岐先。