← 記事一覧

REST APIで自社アプリからQRコードを作成する:10分ガイド

2026-10-12 · 更新 2026-10-26 api developers automation

自社システムからQRコードを作るには、行き先URLと自社の参照IDを付けて、認証済みのPOSTをQR Maker REST APIに1回送り、返ってきた短縮リンクを表示します。参照IDで再試行を安全にし、同じ呼び出しでSVGを要求し、ページが変わったら後からPATCHで行き先を変更します。APIはBusinessプランで利用でき、ブラウザではなくサーバーから呼び出す前提です。

必要なもの

ベースURLは https://qrmaker.ai/api/v1 で、すべてのリクエストに Authorization: Bearer qrs_... を付けます。

ステップ1:コードを作成する

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?ref=qr",
    "external_id": "AB12CD",
    "name": "Product AB12CD",
    "folder": "spring-campaign"
  }'

必須なのは target_url だけです。レスポンスにはコードの情報が含まれ、https://qrmk.cc/hzu23X のような short_link と、?include=svg を付けたので svg フィールドにSVGのマークアップが入ります。画像にエンコードしたり共有したりするのは、この短縮リンクだけにしてください。後から target_url を変えても画像は変わりません。

ステップ2:external_idで再試行を安全にする

通信は失敗するものですし、ジョブが二重に実行されることもあります。同じ external_id と同じ target_url を再送しても、APIは2つ目のコードを作らず、既存のコードをステータス200と X-Idempotent-Replay: true ヘッダー付きで返します。既存の external_id に別の target_url を送ると409が返るので、再試行によって印刷済みコードの行き先が知らないうちに変わることはありません。

ステップ3:SVGを使う

SVGはそのまま保存・配信してください。どの印刷サイズにも拡大縮小でき、img タグでも使えます。後で取得するには GET /v1/qrcodes/{id}/svg を呼び出し、必要に応じて size と margin パラメーターを指定します。レスポンスには ETag が付くので、キャッシュしておき、スタイルが変わったときだけ再ダウンロードできます。APIはPNGファイルを生成しません。PNGが必要なら、自社システムでSVGを変換してください。

ステップ4:刷り直さずに行き先を変更する

curl -X PATCH "https://qrmaker.ai/api/v1/qrcodes/by-external-id/AB12CD" \
  -H "Authorization: Bearer $QR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "target_url": "https://shop.example.com/product/AB12CD-v2" }'

自社の参照値でコードを検索できるので、QR MakerのIDを保存しておく必要はまったくありません。新しいURLは、Webサイトで入力した場合と同じ安全チェックを通ります。

ステップ5:結果を読み取る

GET /v1/qrcodes/{id}/analytics は、指定した期間とタイムゾーンで、スキャン数、1日あたりのユニーク訪問者数、国・端末・OS・ブラウザ・参照元・言語・設置場所タグ別の内訳を返します。GET /v1/analytics/summary は多数のコードを1回の呼び出しで集計するので、コードごとにリクエストを送らずに済みます。イベントの流れで受け取りたい場合は、GET /v1/scans が新しいスキャンを順番に返すので、最後に見た next_since_id を保存しておきます。

レート制限と利用枠

各アカウントは1分あたり120回までAPIリクエストを送れ、この枠はアカウント内のすべてのトークンで共有されます。各レスポンスには残りの枠を示すヘッダーが付きます。Businessプランには月50,000回の成功リクエストが含まれ、4xxや5xxで失敗したリクエストはカウントされません。一括処理には POST /v1/qrcodes/batch を使えば1回のリクエストで最大100個のコードを作成でき、それぞれが個別に冪等です。

Nodeの簡単な例

const res = await fetch('https://qrmaker.ai/api/v1/qrcodes?include=svg', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.QR_TOKEN}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ target_url: url, external_id: orderId }),
})
if (!res.ok) throw new Error(`QR API ${res.status}: ${(await res.json()).code}`)
const { data } = await res.json()
// data.short_link が印刷するコードにエンコードされる内容、data.svg が画像

エラー処理では、人が読むためのメッセージではなく、エラーレスポンスの安定した code フィールドを使ってください。

次に読むもの

APIリファレンスにすべてのエンドポイントとエラーコードが載っており、概要ページからOpenAPIファイル、Postmanコレクション、完全なサンプルプログラムにアクセスできます。サーバーを書かずにコードを作りたい場合は、GoogleスプレッドシートやMake・n8n・Zapierのガイドをご覧ください。

よくある質問

ブラウザからAPIを呼び出せますか?

できません。ブラウザから直接APIを呼び出すと、トークンがすべての訪問者に見えてしまいます。サーバーから呼び出し、SVGや短縮リンクをページに渡してください。

トークンが漏れたらどうなりますか?

「設定」で無効化し、新しいトークンを作成してください。トークンで呼び出せるのはQRコードAPIだけで、パスワード、請求、ドメインは変更できません。読み取り専用トークンでは作成、変更、削除は一切できません。

コードに自分のドメインを使えますか?

使えます。Businessプランでは独自の短縮リンク用ドメインを1つ接続できます。コード作成時に short_domain として渡せば、短縮リンクは共有ドメインではなくあなたのドメインになります。

動的QRコードを無料で作成。印刷後もリンク先を変更でき、すべてのスキャンを計測できます。

QRコードを作る →