Skip to main content

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:readGET /api/v1/projects
supporters:readGET /api/v1/supporters
payments:readGET /api/v1/payments
recurrings:readGET /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キー>