API概要
エンジンは小さなHTTP APIとして公開されています。認証方法は2つあります。
2つのチャネル
1. RapidAPI Marketplace(既存のお客様)
RapidAPIのプロキシシークレットを使って https://api.qr-branding.com を呼び出します。AIエンドポイントでは、ご自身のLLMキーを使うか、キー不要のマネージドエンドポイントを使います。元のSignet QR APIの動作から変わりはありません。
2. コンシューマー向けクレジットパック(新規)
/pricing でパックを購入します。AIエンドポイントはサーバー側のLLMキー(Groq / Gemini / OpenAI)を使い、生成に成功するたびにクレジットが差し引かれます。フロントエンドのエディタは、このチャネルを透過的に利用しています。
エンドポイント
| メソッド | パス | 用途 |
|---|---|---|
POST | /api/qr/generate | 明示的な QrConfig からQRをレンダリングします。 |
POST | /api/qr/ai/generate | マーケットプレイスのAI — LLMキーは各自で用意。 |
POST | /api/qr/ai/generate-managed | マーケットプレイスのマネージドAI — LLMキーは不要。 |
POST | /api/qr/ai/generate/server | コンシューマー向けAI — サーバー側のLLMキー、クレジットで計算。 |
GET | /api/qr/templates | 118個の既製テンプレートを一覧表示します(任意で ?category=…)。 |
POST | /api/qr/templates/{templateId} | テンプレートIDと任意の上書き設定でQRをレンダリングします。 |
POST | /api/qr/content/wifi | ヘルパー: WiFi QRのペイロード文字列を組み立てます。 |
POST | /api/qr/content/vcard | ヘルパー: vCardのペイロード文字列を組み立てます。 |
POST | /api/qr/content/geo | ヘルパー: 位置情報のペイロード文字列を組み立てます。 |
GET | /api/qr/ai/providers | 対応しているLLMプロバイダーとモデルを一覧表示します。 |
GET | /api/ping | ヘルスチェック(匿名)。 |
認証ヘッダー
RapidAPI
X-RapidAPI-Proxy-Secret: <secret>
内部BFF(コンシューマー向けサイト)
X-Internal-Service-Secret: <secret>
X-Internal-Customer-Id: <customer id>
X-Internal-Ts: <unix seconds>
X-Internal-Signature: <HMAC-SHA256(signing-key, "{customerId}.{ts}")>
リプレイ対策のTTL: 60秒。Next.jsのフロントエンドが内部で使うもので、手動で設定することはありません。
エラーエンベロープ
2xx以外のレスポンスは、常に同じ形式です。
{
"success": false,
"error": "Content length (5000) exceeds maximum allowed (4296 characters).",
"code": "CONTENT_TOO_LONG",
"field": "content"
}
失敗の原因が特定の入力にある場合は、field が設定されます。
レート制限
| 区分 | 1分あたり | 備考 |
|---|---|---|
| RapidAPI 一般 | 60 | ドキュメント、ping、ヘルパー |
| RapidAPI 生成 | 30 | /api/qr/generate |
| RapidAPI AI | 15 | 外部LLMの呼び出し |
| コンシューマー 一般 | 120 | 顧客IDごと |
| コンシューマー 生成 | 60 | 顧客IDごと |
| コンシューマー AI | 30 | 顧客IDごと |
Azureの無料枠を守るため、1分あたりのグローバルな上限もあります。上限に達すると、Retry-After ヘッダー付きの 429 が返ります。
出力形式
png(デフォルト、base64)、jpg、svg、pdf、webp。JSONでbase64を受け取る代わりにファイルを直接ダウンロードするには、"responseType": "binary" を指定します。