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(必須)、name、folder。無料プランには動的コード 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 —— クエリパラメータは format(png/svg)と size。
curl -H "Authorization: Bearer $HONESTQR_KEY" \
"https://qr.zalize.com/api/v1/qrcodes/<id>/image?format=svg" -o menu.svgQRコードの一覧
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 メッセージを確認しパラメータを修正。 |
401 | API キーの欠落または無効 | Authorization: Bearer hqr_… を付与。失効した場合はダッシュボードで再生成。 |
402 | プラン上限に到達(無料プラン:動的コード 3 個) | 未使用のコードを削除するか Pro にアップグレード。 |
404 | QRコードが見つからない(または他アカウントの所有) | GET /api/v1/qrcodes で id を確認。 |
429 | レート制限(キーごとに毎分 60 リクエスト) | 1 分待って再試行。可能なら読み取りをまとめる。 |
ノーコードの埋め込みをお好みなら
フルの生成ツールを無料の埋め込みウィジェットとして自分のサイトに設置することもできます——スニペット 1 つ、API キー不要。
AI エージェントをお使いですか?
HonestQR は無料の MCP サーバー も提供しており、Claude、Cursor などの MCP クライアントから直接QRコードの生成・デコードができます——API キー不要。