HonestQR API v1

QRコードの作成とスキャン統計の取得をプログラムから行えます。まずダッシュボード(API キーセクション)で API キーを取得し、Bearer トークンとして渡してください。

ベース URL: https://qr.zalize.com

認証: Authorization: Bearer hqr_…

レート制限: API キーごとに毎分 60 リクエスト(超過時は HTTP 429)。

静的QRコードをレンダリング

GET /api/v1/static —— 画像を直接返します。何も保存されず、静的コードに有効期限はありません。クエリパラメータ:data(必須、最大 2048 文字)、format(デフォルト png または svg)、size(px、128–4096、デフォルト 1024)。

curl -H "Authorization: Bearer $HONESTQR_KEY" \
  "https://qr.zalize.com/api/v1/static?data=https%3A%2F%2Fexample.com&format=png&size=1024" \
  -o qr.png

curl -H "Authorization: Bearer $HONESTQR_KEY" \
  "https://qr.zalize.com/api/v1/static?data=https%3A%2F%2Fexample.com&format=svg" \
  -o qr.svg

動的QRコードを作成

POST /api/v1/qrcodes —— 編集可能な短縮リンク(https://qr.zalize.com/r/<slug>)を作成し、画像 URL を返します。ボディ項目:target_url(必須)、namefolder。無料プランには動的コード 3 個が含まれます。

curl -X POST https://qr.zalize.com/api/v1/qrcodes \
  -H "Authorization: Bearer $HONESTQR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target_url": "https://example.com/menu", "name": "Menu"}'
{
  "qrcode": { "id": "…", "slug": "abc1234", "short_url": "https://qr.zalize.com/r/abc1234", … },
  "image_png": "https://qr.zalize.com/api/v1/qrcodes/<id>/image?format=png",
  "image_svg": "https://qr.zalize.com/api/v1/qrcodes/<id>/image?format=svg"
}

JavaScript の例

Node.js 18+ および fetch を備えた任意のランタイム(Workers、Deno、Bun)で動作します。ブラウザではバックエンドプロキシ経由で——キーをクライアントに渡さないでください。

const BASE = 'https://qr.zalize.com';
const headers = {
  Authorization: `Bearer ${process.env.HONESTQR_KEY}`,
  'Content-Type': 'application/json',
};

// Create a dynamic code
const res = await fetch(`${BASE}/api/v1/qrcodes`, {
  method: 'POST',
  headers,
  body: JSON.stringify({ target_url: 'https://example.com/menu', name: 'Menu' }),
});
if (!res.ok) throw new Error(`HonestQR ${res.status}: ${(await res.json()).error}`);
const { qrcode } = await res.json();

// Fetch its stats later
const stats = await (await fetch(`${BASE}/api/v1/qrcodes/${qrcode.id}/stats`, { headers })).json();
console.log(qrcode.short_url, stats.total);

Python の例

import os, requests

BASE = "https://qr.zalize.com"
HEADERS = {"Authorization": f"Bearer {os.environ['HONESTQR_KEY']}"}

# Render a static QR code (never stored, never expires)
png = requests.get(
    f"{BASE}/api/v1/static",
    params={"data": "https://example.com", "format": "png", "size": 1024},
    headers=HEADERS,
)
png.raise_for_status()
open("qr.png", "wb").write(png.content)

# Create a dynamic code
r = requests.post(
    f"{BASE}/api/v1/qrcodes",
    json={"target_url": "https://example.com/menu", "name": "Menu"},
    headers=HEADERS,
)
r.raise_for_status()
print(r.json()["qrcode"]["short_url"])

動的コードの画像をダウンロード

GET /api/v1/qrcodes/:id/image —— クエリパラメータは formatpng/svg)と size

curl -H "Authorization: Bearer $HONESTQR_KEY" \
  "https://qr.zalize.com/api/v1/qrcodes/<id>/image?format=svg" -o menu.svg

QRコードの一覧

GET /api/v1/qrcodes

curl -H "Authorization: Bearer $HONESTQR_KEY" https://qr.zalize.com/api/v1/qrcodes

スキャン統計

GET /api/v1/qrcodes/:id/stats —— 合計に加え、日別(直近 30 日)・国別・デバイス別の内訳。

curl -H "Authorization: Bearer $HONESTQR_KEY" https://qr.zalize.com/api/v1/qrcodes/<id>/stats

エラー

すべてのエラーは JSON です:{"error": "…"}

ステータス意味対処
400不正なリクエスト(パラメータの欠落/不正)error メッセージを確認しパラメータを修正。
401API キーの欠落または無効Authorization: Bearer hqr_… を付与。失効した場合はダッシュボードで再生成。
402プラン上限に到達(無料プラン:動的コード 3 個)未使用のコードを削除するか Pro にアップグレード。
404QRコードが見つからない(または他アカウントの所有)GET /api/v1/qrcodesid を確認。
429レート制限(キーごとに毎分 60 リクエスト)1 分待って再試行。可能なら読み取りをまとめる。

ノーコードの埋め込みをお好みなら

フルの生成ツールを無料の埋め込みウィジェットとして自分のサイトに設置することもできます——スニペット 1 つ、API キー不要。

AI エージェントをお使いですか?

HonestQR は無料の MCP サーバー も提供しており、Claude、Cursor などの MCP クライアントから直接QRコードの生成・デコードができます——API キー不要。