この API でできること
1 回のリクエストでコードを作成
リンク先と自社の参照 ID を送信します。レスポンスにはコードに埋め込む短縮リンクが含まれ、include=svg を付けると完成した画像も返ります。
curl -X POST "https://qrmaker.ai/api/v1/qrcodes?include=svg" \
-H "Authorization: Bearer $QR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://shop.example.com/product/AB12CD",
"external_id": "AB12CD",
"name": "Product AB12CD",
"folder": "spring-campaign",
"style": { "dot_style": "fluid", "finder_shape": "smooth" }
}'
{
"success": true,
"data": {
"id": "hzu23X",
"external_id": "AB12CD",
"target_url": "https://shop.example.com/product/AB12CD",
"short_link": "https://qrmk.cc/hzu23X",
"status": "active",
"scan_count": 0,
"image_version": "a1b2c3d4e5f60718",
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 1000\" …>"
}
}
コードに埋め込むのは自社の URL ではなく short_link です。これによって、後からの編集と計測が可能になります。同じ external_id をもう一度送ると同じコードが返るため、再試行で重複が生まれることはありません。
エンドポイント
POST /v1/qrcodes- コードを作成(
?include=svgで画像も取得) POST /v1/qrcodes/batch- 1 リクエストで最大 100 件のコードを作成
GET /v1/qrcodes- コードの一覧。
updated_sinceで差分同期が可能 PATCH /v1/qrcodes/{id}- リンク先、名前、フォルダー、ステータス、スタイルを変更
GET /v1/qrcodes/{id}/svg- コードを SVG で取得(ETag によるキャッシュ対応)
GET /v1/qrcodes/{id}/analytics- 1 つのコードの、期間を指定したスキャン数
GET /v1/analytics/summary- 複数のコードを 1 回で集計(コード別・フォルダー別・日別)
GET /v1/scans- 前回処理した以降の新しいスキャンイベント
GET /v1/scans/export- スキャンイベントを CSV ファイルで取得
GET /v1/usage- 今月の利用状況とクォータ
そのまま実行できるサンプル
どのファイルも完結したプログラムです。トークンを設定して実行してください。
- Shell:
quickstart.sh— コードの作成、SVG の保存、リンク先の変更、スキャン数の取得 - Node.js:
node-quickstart.mjs— 同じ流れに再試行と競合処理を加えたもの。パッケージ不要 - Python:
python-bulk-from-csv.py— リンクの CSV を 1 リクエスト 100 件ずつコード化し、行ごとに SVG を保存 - Google スプレッドシート:
google-sheets.gs— シートの行からコードを作成し、短縮リンクを書き戻す - 対話型 API ドキュメント
- OpenAPI 3 仕様
- Postman コレクション
- AI コーディングアシスタント向けルールファイル
制限と料金
- プラン
- Business:月額 $29 または年額 $279
- 無料トライアル
- 新規のお客様は月額プランを 14 日間試せます。カードの登録が必要です。
- 月間クォータ
- 成功したリクエスト 50,000 回。失敗したリクエストはカウントされません。
- レート制限
- アカウントごとに毎分 120 リクエスト
- 実行場所
- サーバー間通信のみ。ブラウザからの呼び出しは CORS でブロックされます。
- 画像形式
- SVG のみ。PNG が必要な場合は自社システムで変換してください。
後で困らないための仕様
- 作成は安全に再試行できます。
external_idはアカウント内で一意です。同じ ID と同じリンク先を送ると、既存のコードが 200 で返ります。 - POST が印刷済みのコードを動かすことはありません。 同じ ID で別のリンク先を送ると 409 が返ります。リンク先の変更は必ず明示的な PATCH で行い、ウェブサイトと同じ安全チェックを通ります。
- 安定したエラーコード。 すべてのエラーに機械可読な
codeが付きます。英語のメッセージは人が読むためのもので、変更されることがあります。 - 画像はバージョンでキャッシュ。
image_versionは画像が変わったときだけ変化し、SVG エンドポイントの ETag も兼ねています。リンク先を変更しても変わりません。 - 読み取り専用トークン。 レポート用のシステムには GET しかできないトークンを渡せます。漏えいしても、作成・変更・削除には使えません。
よくある質問
API に無料枠はありますか?
ありません。API は Business プランに含まれます。新規のお客様は月額プランを 14 日間無料で試せます。カードの登録が必要で、解約しない場合は月額 $29 で更新されます。
PNG 画像は取得できますか?
API が返すのは SVG です。どのサイズで印刷しても鮮明で、img タグでもそのまま使えます。PNG が必要な場合は自社システムで変換してください。連携ガイドに Node、Python、ブラウザでの方法を載せています。
ウェブページから API を呼び出せますか?
できません。クロスオリジンのブラウザリクエストはブロックされるため、トークンはサーバー側にとどまります。バックエンドから API を呼び出し、結果をページに渡してください。
Webhook はありますか?
ありません。代わりに GET /v1/scans が新しいスキャンイベントを順番に返します。30〜60 秒ごとに取得し、返されたカーソルを保存してください。空のレスポンスはクォータに含まれません。
解約するとコードはどうなりますか?
コードは引き続きリダイレクトされます。プラン終了時に、API は他の Business 機能とともに使えなくなります。