APIキーの種類
外部公開APIには2種類のAPIキーがあります。用途に応じて使い分けてください。
シークレットキー(Secret Key)
サーバーサイドのみで使用するキーです。
- フォーマット: UUID形式(例:
bbdf8d3b-ae12-4e63-93d8-d3a1c4254fc6) - アクセス可能なAPI: 発行時に選択したスコープのAPIのみ(projects / supporters / payments / recurrings)
- CORS対応: なし(ブラウザJSから直接呼び出し不可)
- 上限: 1団体あたり最大5件
注意
シークレットキーはサーバーサイドのコードのみで使用してください。フロントエンドのコードに含めると、寄付者の個人情報や決済情報が第三者に漏洩するリスクがあります。
スコープ
シークレットキー発行時に、アクセスを許可するAPIを選択できます。
| スコープ | アクセス可能なAPI |
|---|---|
projects:read | GET /api/v1/projects |
supporters:read | GET /api/v1/supporters |
payments:read | GET /api/v1/payments |
recurrings:read | GET /api/v1/recurrings |
公開キー(Publishable Key)
ブラウザJSに埋め込んで利用できるキーです。
- フォーマット:
pk_プレフィックス付き(例:pk_bbdf8d3b-ae12-4e63-93d8-d3a1c4254fc6) - アクセス可能なAPI:
GET /api/v1/projectsのみ - CORS対応: あり(
Access-Control-Allow-Originヘッダーを自動付与) - 上限: なし(許可ドメイン + 有効期限の組み合わせが異なれば複数発行可)
許可ドメイン(allowed_origin)
公開キー発行時に、アクセスを許可するドメインを設定できます(任意、最大5件)。
| 設定 | 動作 |
|---|---|
| ドメインを設定した場合 | 設定したドメインからのリクエストのみ許可 |
| 設定しない場合 | すべてのドメインからアクセスを許可 |
info
Postman、curl、GAS(Google Apps Script)などサーバーサイドから呼び出す場合は Origin ヘッダーが付与されないため、許可ドメインの設定に関わらずアクセスできます。
ブラウザJSからの呼び出し例
const response = await fetch('https://global-api.congrant.com/api/v1/projects', {
headers: {
'Authorization': 'Bearer pk_xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
},
});
const data = await response.json();
OPTIONSプリフライトリクエスト
ブラウザは Authorization ヘッダー付きのクロスオリジンリクエストの前に自動的にOPTIONSリクエストを送信します。このAPIサーバーはOPTIONSリクエストに対して認証なしで204を返します。
キーの使い方
どちらのキーも、HTTPリクエストヘッダーに以下のように指定します。
Authorization: Bearer <発行したAPIキー>