CreateQR 開発者マニュアル

面倒な作業なしでQRコード作成を自動化

3つのエンドポイントで、QRコードの作成・一覧取得・削除を、スタイルを細かく制御しながら行えます。当日中に統合でき、JSONはシンプル、作成したQRはダッシュボードにそのまま残ります。

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

当社のAPIで生成されたQRコードの例

同じエンドポイントでも、表現はさまざま。シンプルにも、ブランド感たっぷりにも、オフラインキャンペーン向けにフレーム付きにもできます。

QRコードを作成

静的または動的なQRコードを作成し、アカウントに保存します。

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

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

クイックスタート(cURL)

これは最速のハローワールド手順です。

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":"static"}'

認証と互換性

  • 推奨: 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 必須 エンコードする内容。動的QRの場合は、有効なURLである必要があります。
qrtype String static QRモード: static または dynamic。
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 外側のファインダーマーカーの色。
marker_in_color String #000000 内側のファインダーマーカーの色。
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 外側マーカーのスタイルプリセット。
default flurry sdoz drop_in drop dropeye dropeyeleft dropeyeleaf dropeyeright squarecircle circle rounded flower flower_in leaf
marker_in String default 内側マーカーのスタイルプリセット。
default flurry sdoz drop_in drop dropeye circle rounded sun star diamond danger cross plus x heart
optionlogo String none none、推奨されるローカルSVGウォーターマークパス、従来のローカルPNGパス、または base64 画像データ。
none data:image/*;base64,... /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
no_logo_bg String/Bool off ロゴの背景プレートを無効にします。

フレームパラメーター

パラメータ 種類 デフォルト 説明
outer_frame String none フレームのスタイルプリセット。
none bottom top balloon-bottom balloon-top ribbon-bottom ribbon-top phone cine
framelabel String SCAN ME フレームのテキストラベル(80文字までに切り詰められます)。
label_font String Arial, Helvetica, sans-serif フレームラベル用のフォントスタック。
custom_frame_color String/Bool off カスタムフレーム色を有効にします。
framecolor String #000000 #RRGGBB 形式のフレーム色。

作成リクエストの例

例: プレーンQR

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

例: カラー + ロゴ

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

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

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

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

{
    "success": true,
    "data": {
        "qrid": "1284",
        "svg": "<svg ...>...</svg>",
        "type": "static",
        "title": "Pricing Poster 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": "Storefront 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": "Dynamic QR requires a valid URL in data."
    },
    "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、color、folderid などのフィールドが無効 ペイロードの形式を修正して再送信してください。
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で作成したQRはダッシュボードに表示されますか?

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

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

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

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

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

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

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