CreateQR 開発者マニュアル

CreateQR APIで動的QRコード作成を自動化

JSONエンドポイントを使って、自社システムからQRコードを作成・一覧取得・削除できます。キャンペーンと管理対象のリンク先には動的QRコードを、対応している場合はWiFiと暗号資産ウォレット向けの静的QRコードを生成できます。

ベースパス: /api/v1 認証: Authorization: Bearer <key>(推奨)

QRコードを作成

URLと管理対象のリンク先にはdynamic QRコード、WiFiと暗号資産ウォレットのペイロードにはstatic QRコードを作成します。

POST https://createqr.app/api/v1/create

JSONのみを送信してください。キー認証では、ヘッダーの使用がベストプラクティスです。ボディ内のキー項目は、既存の連携との互換性のために用意されています。

クイックスタート(cURL)

このdynamic URLの例が最速のハローワールド手順です。

curl -sS -X POST 'https://createqr.app/api/v1/create' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer ck_live_XXXXXXXXXXXXXXXXXXXXXXXX' \
  -d '{"data":"https://createqr.app","qrtype":"dynamic"}'

認証と互換性

  • 推奨: Authorization: Bearer <key>
  • こちらも使用可能: X-API-Key
  • JSONの代替: apikey または api_key
  • Content-Type は application/json である必要があります
  • POST 以外のメソッドは 405 method_not_allowed を返します

主要パラメーター

パラメータ 種類 デフォルト 説明
apikey String 必須 シークレットAPIキー。Authorizationヘッダー(Bearer)での指定を推奨します。JSONボディの apikey/api_key も使用できます。
data String 必須 エンコードする内容。dynamic QRには有効なURLが必要です。static QRはWiFiペイロード文字列または暗号資産ウォレットアドレスのみ受け付けます。
qrtype String dynamic QRモード: URLと管理対象のリンク先はdynamic、WiFiと暗号資産ウォレットのペイロードはstaticのみ。
title String 任意 ダッシュボードに表示されるQRタイトル(120文字までに切り詰められます)。
folderid Number 任意 あなたのアカウントに属する正の整数のフォルダーID。

色と形状のパラメーター

パラメータ 種類 デフォルト 説明
transparent String/Bool off on/off、true/false、1/0、yes/no を使用できます。
backcolor String #FFFFFF #RRGGBB 形式の背景色。
frontcolor String #000000 #RRGGBB 形式のメインドット色。
gradient String/Bool off 2色のドットグラデーションを有効にします。
radial String/Bool off 放射状グラデーションを有効にします(gradient が on の場合に機能します)。
gradient_color String #15A97C #RRGGBB 形式の2つ目のグラデーション色。
marker_out_color String #000000 角ドット周囲のフレーム色 in #RRGGBB format.
marker_in_color String #000000 角ドットの色 in #RRGGBB format.
pattern String default 本体ドットのスタイルプリセット。
default circle star diamond sparkle danger cross plus x heart shake blob special-circle-orizz special-circle-vert special-circle special-diamond ribbon oriental ellipse
marker String default 角ドット周囲のフレームスタイル.
corner_1 corner_2 corner_3 corner_4 corner_5 corner_6 corner_7 corner_8
marker_in String default 角ドットの種類.
corner_in_1 corner_in_2 corner_in_3 corner_in_4 corner_in_5 corner_in_6 corner_in_7 corner_in_8
optionlogo String none none、推奨されるローカルSVGウォーターマークパス、従来のローカルPNGパス、または base64 画像データ。
none /images/watermarks/v2/01-link.svg /images/watermarks/v2/02-location.svg /images/watermarks/v2/03-email.svg /images/watermarks/v2/04-whatsapp.svg /images/watermarks/v2/05-wifi.svg /images/watermarks/v2/06-vcard.svg /images/watermarks/v2/07-menu.svg /images/watermarks/v2/08-app.svg /images/watermarks/v2/09-video.svg /images/watermarks/v2/10-feedback.svg /images/watermarks/v2/11-event.svg /images/watermarks/v2/12-coupon.svg /images/watermarks/v2/13-music.svg /images/watermarks/v2/14-social.svg /images/watermarks/v2/15-paypal.svg /images/watermarks/v2/16-bitcoin.svg /images/watermarks/v2/17-scan.svg data:image/*;base64,...
no_logo_bg String/Bool on ロゴの背景プレートを削除します。

フレームパラメーター

パラメータ 種類 デフォルト 説明
outer_frame String none フレームのスタイルプリセット。
none svg_frame_01 svg_frame_02 svg_frame_03 svg_frame_04 svg_frame_05 svg_frame_06 svg_frame_07 svg_frame_08 svg_frame_09 svg_frame_10 svg_frame_11 svg_frame_12 svg_frame_13 svg_frame_14 svg_frame_15 svg_frame_16 svg_frame_19 svg_frame_22 svg_frame_23 svg_frame_26 svg_frame_27 svg_frame_28 svg_frame_29 svg_frame_30 svg_frame_31 svg_frame_33 svg_frame_34 svg_frame_35 svg_frame_36 svg_frame_38 svg_frame_42
framelabel String SCAN ME フレームのテキストラベル(80文字までに切り詰められます)。
label_font String Arial, Helvetica, sans-serif フレームラベル用のフォントスタック。
custom_frame_color String/Bool off カスタムフレーム色を有効にします。
framecolor String #000000 #RRGGBB 形式のフレーム色。

作成リクエストの例

例: プレーンQR

No-frills, fast scan

Request Method:
POST
Request URL:
https://createqr.app/api/v1/create
Request Parameters:

All parameters need to be sent as a JSON object in the request body.

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "data": "https://createqr.app",
    "qrtype": "dynamic",
    "title": "Launch Landing QR",
    "transparent": "off",
    "backcolor": "#FFFFFF",
    "frontcolor": "#000000",
    "marker_out_color": "#000000",
    "marker_in_color": "#000000",
    "pattern": "default",
    "marker": "corner_1",
    "marker_in": "corner_in_1",
    "optionlogo": "none"
}
Request Outcome
出力例のプレビュー

例: static WiFi QR

Built for distance

Request Method:
POST
Request URL:
https://createqr.app/api/v1/create
Request Parameters:

All parameters need to be sent as a JSON object in the request body.

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "data": "WIFI:T:WPA;S:CreateQR Guest;P:guest-2026;H:false;;",
    "qrtype": "static",
    "title": "Guest Wi-Fi QR",
    "transparent": "off",
    "backcolor": "#0B1220",
    "frontcolor": "#FFFFFF",
    "marker_out_color": "#F4C84A",
    "marker_in_color": "#F4C84A",
    "pattern": "circle",
    "marker": "corner_3",
    "marker_in": "corner_in_3",
    "optionlogo": "none"
}
Request Outcome
出力例のプレビュー

Brand Color

Theme-aligned campaign

Request Method:
POST
Request URL:
https://createqr.app/api/v1/create
Request Parameters:

All parameters need to be sent as a JSON object in the request body.

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "data": "https://createqr.app/pricing",
    "qrtype": "dynamic",
    "title": "Pricing QR",
    "transparent": "off",
    "backcolor": "#EAF4FF",
    "frontcolor": "#033895",
    "marker_out_color": "#15A97C",
    "marker_in_color": "#15A97C",
    "pattern": "special-circle-orizz",
    "marker": "corner_4",
    "marker_in": "corner_in_4",
    "optionlogo": "none"
}
Request Outcome
出力例のプレビュー

例: カラー + ロゴ

Preset watermark icon

Request Method:
POST
Request URL:
https://createqr.app/api/v1/create
Request Parameters:

All parameters need to be sent as a JSON object in the request body.

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "data": "https://createqr.app/features",
    "qrtype": "dynamic",
    "title": "Feature Tour QR",
    "transparent": "off",
    "backcolor": "#033895",
    "frontcolor": "#FFFFFF",
    "marker_out_color": "#669DF4",
    "marker_in_color": "#669DF4",
    "pattern": "ribbon",
    "marker": "corner_5",
    "marker_in": "corner_in_5",
    "optionlogo": "/images/watermarks/v2/01-link.svg"
}
Request Outcome

例: フレーム付きキャンペーンQR

Poster-ready "SCAN ME"

Request Method:
POST
Request URL:
https://createqr.app/api/v1/create
Request Parameters:

All parameters need to be sent as a JSON object in the request body.

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "data": "https://createqr.app/pricing",
    "qrtype": "dynamic",
    "title": "Pricing Poster QR",
    "transparent": "off",
    "frontcolor": "#2B0011",
    "marker_out_color": "#3B0001",
    "marker_in_color": "#3B0001",
    "pattern": "ellipse",
    "marker": "corner_8",
    "marker_in": "corner_in_7",
    "optionlogo": "none",
    "outer_frame": "balloon-top",
    "framelabel": "SCAN ME",
    "label_font": "Arial, Helvetica, sans-serif",
    "custom_frame_color": "on",
    "framecolor": "#3B0001"
}
Request Outcome
出力例のプレビュー

Gradient Mood

Extra style for socials

Request Method:
POST
Request URL:
https://createqr.app/api/v1/create
Request Parameters:

All parameters need to be sent as a JSON object in the request body.

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "data": "https://createqr.app/why-us",
    "qrtype": "dynamic",
    "title": "Brand Story QR",
    "transparent": "off",
    "backcolor": "#FFFFFF",
    "frontcolor": "#4B1EFF",
    "gradient": "on",
    "radial": "off",
    "gradient_color": "#FF7A00",
    "marker_out_color": "#101828",
    "marker_in_color": "#101828",
    "pattern": "special-diamond",
    "marker": "corner_6",
    "marker_in": "corner_in_8",
    "optionlogo": "none"
}
Request Outcome
出力例のプレビュー

例: 暗号資産ウォレット向けstatic QR

Static crypto address

Request Method:
POST
Request URL:
https://createqr.app/api/v1/create
Request Parameters:

All parameters need to be sent as a JSON object in the request body.

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "data": "bitcoin:bc1qexampleaddress",
    "qrtype": "static",
    "title": "Bitcoin Wallet QR",
    "transparent": "off",
    "backcolor": "#FFF7ED",
    "frontcolor": "#1F2937",
    "marker_out_color": "#F7931A",
    "marker_in_color": "#F7931A",
    "pattern": "circle",
    "marker": "corner_2",
    "marker_in": "corner_in_2",
    "optionlogo": "/images/watermarks/v2/16-bitcoin.svg"
}
Request Outcome
出力例のプレビュー

成功レスポンスのエンベロープ

{
    "success": true,
    "data": {
        "qrid": "1284",
        "svg": "<svg ...>...</svg>",
        "type": "dynamic",
        "title": "Launch Landing QR",
        "dashboard_url": "https://createqr.app/app/qrs/1284",
        "download_url": "https://createqr.app/app/qrs/1284/download/svg"
    },
    "request_id": "0f8fad5b-d9cb-469f-a165-70867728950e"
}

QRコードを削除

IDでQRを削除します(所有者のみ)。

POST https://createqr.app/api/v1/delete

リクエスト本文

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "qrid": "1284"
}

レスポンス

{
    "success": true,
    "data": {
        "deleted": true,
        "qrid": "1284"
    },
    "request_id": "0f8fad5b-d9cb-469f-a165-70867728950e"
}

QRコード一覧

QRを100件単位のページで、新しい順に一覧表示します。

POST https://createqr.app/api/v1/list

ページネーションは1から開始してください。結果は1ページあたり最大100件返されます。

リクエスト本文

{
    "apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
    "pagination": "1"
}

レスポンス

{
    "success": true,
    "data": {
        "pagination": "1",
        "page_size": 100,
        "total": 2,
        "items": [
            {
                "qrid": "1284",
                "title": "Campaign QR",
                "type": "dynamic",
                "created_at": "2026-02-17 09:12:30",
                "short_url": "https://createqr.app/r/a1b2c3",
                "dashboard_url": "https://createqr.app/app/qrs/1284"
            },
            {
                "qrid": "1269",
                "title": "Guest Wi-Fi QR",
                "type": "static",
                "created_at": "2026-02-17 08:02:08",
                "dashboard_url": "https://createqr.app/app/qrs/1269"
            }
        ]
    },
    "request_id": "0f8fad5b-d9cb-469f-a165-70867728950e"
}

エラーレスポンス、制限、再試行

すべてのレスポンスには request_id が含まれます。サポートに問い合わせる際は、迅速にデバッグできるよう保持してください。

一般的なエラーエンベロープ

{
    "success": false,
    "error": {
        "code": "validation_error",
        "message": "Static QR is only available for WiFi payloads or crypto wallet addresses."
    },
    "request_id": "5f5fbd38-f82f-49ad-bf11-f7f04ca9747a"
}

再試行戦略

  • 429 rate_limited: ジッターを加えた指数バックオフで再試行してください。
  • Retry-After がある場合はそれに従ってください。
  • 429 monthly_quota_exceeded: クォータがリセットされるまで待つか、残りクォータのあるキーを使用してください。
  • 5xx: 試行回数に上限を設けて再試行し、その後チームに通知してください。
エラーコード HTTP 発生条件 対処方法
invalid_api_key 401 API キーがない、または無効 Bearer、X-API-Key、または JSON ボディのフィールドで有効なキーを指定してください。
invalid_content_type 415 ボディが application/json ではない Content-Type: application/json を送信してください。
request_too_large 413 ペイロードが設定された上限を超えている 特に base64 ロゴを中心に、ボディサイズを小さくしてください。
plan_upgrade_required 403 現在のプランでは API を利用できない Billing から Business にアップグレードしてください。
validation_error 422 URL、staticペイロード、color、folderid などのフィールドが無効 URLと管理対象のリンク先にはdynamicを使用し、WiFiまたは暗号資産ウォレットのペイロードにのみstaticを使用してください。
rate_limited 429 1 分あたりの上限に達した 指数バックオフで再試行し、Retry-After に従ってください。
monthly_quota_exceeded 429 月間クォータを使い切った リセットを待つか、クォータとキーの設定を調整してください。
qr_not_found 404 削除対象が存在しない、または自分のものではない qrid の所有権を確認して、もう一度お試しください。
internal_error 500 サーバー側で予期しない問題が発生した バックオフを使って再試行し、サポート用に request_id を保持してください。

よくある質問

連携でよく寄せられる質問への短い回答です。

APIリクエストは何件まで実行できますか?

APIはBusiness限定です。月間クォータは、ご利用中のプランとキーの上書き設定によって決まります。デフォルトのBusinessシードは高めに設定されており、管理者はキーごとに細かく調整できます。

APIキーをJSONボディで送信できますか?

はい。ヘッダーベースの認証を推奨していますが、互換性のためにボディフィールドのapik​​eyまたはapi_keyも受け付けています。

APIでstatic QRコードを作成できますか?

はい。ただしstaticモードはWiFiペイロード文字列と暗号資産ウォレットアドレスに限定されます。URL、PDF、メニュー、アプリ、SNSページ、その他の管理対象リンク先にはdynamicモードを使用してください。

APIで作成したQRはダッシュボードに表示されますか?

はい。作成に成功したQRはすべてアカウントに保存され、他のQRと同様に管理できます。

制限に達するとどうなりますか?

JSONエラーが返されます。429レスポンスの場合は、Retry-Afterを尊重し、ジッター付きの指数バックオフを使用してください。

別のアカウントのQRを削除できますか?

いいえ。削除と一覧取得は、認証されたAPIキーの所有者のスコープ内に限定されます。

セキュリティのベストプラクティス

  • 生のAPIキーをブラウザのJavaScript、モバイルバンドル、または公開リポジトリに絶対に公開しないでください。
  • APIキーのIP許可リストを使用して、信頼できるサーバーのみに利用を制限してください。
  • インシデントの切り分けを迅速に行うため、request_idを独自のトレースIDとあわせて記録してください。
  • キーは定期的にローテーションし、認証情報の漏えい後は直ちに更新してください。
APIキーマネージャーを開く