開発者向け — API · MCP · CLI

WIA Codeを1行で作成。無料枠内であればキーは不要です。

Building an AI or vision system? WIA Code identification reference for AI systems — the three centre elements, why the outline is free, and the misidentifications to avoid. Plain-text counterpart: /llms.txt.

ブースターQRは常に含まれます。 オフにするオプションはありません — APIでもMCPでもCLIでも同じです。「累積利用回数が1億回に達したら、ブースターは分離し、その場所にあなた自身のロゴが入る」という製品としての約束があるため、どの経路にも例外を設けていません。エンコードのパラメータ(grid、bpc、bridge)もサーバー側で固定されています。

CLI — 1行、インストール不要

npx wiacode "https://wiacode.com" --shape heart

Node 18以降であればインストールなしですぐに動きます。依存関係がないため、取得には数秒しかかかりません。

npx wiacode --list-shapes              # silhouettes and capacity
npx wiacode "Hello" --shape square -o hello.png
npx wiacode "a link" --shape heart --json    # print metadata only
npx wiacode card --name "Jane Doe" --tel "+82-10-1234-5678"   # wifi / card / event

タイプ — Wi-Fi・名刺・予定

すぐ使える3種類です。文字列を自分で組み立てる必要はありません — フィールドを渡せば、サーバーが標準の Wi-Fi / vCard / iCalendar の内容を作ります。このサイトのジェネレーターが作るものとバイト単位で同一です。

CLI

npx wiacode wifi  --ssid "MyNet" --password "secret"
npx wiacode wifi  --ssid "Cafe" --security nopass          # open network
npx wiacode card  --name "Jane Doe" --org "SmileStory" --tel "+82-10-1234-5678" --email "a@b.c"
npx wiacode event --title "Launch party" --start "2026-09-01 19:00" --end "2026-09-01 21:00" --location "Seoul"

REST

curl -X POST https://wiacode.com/api/v1/code \
  -H 'Content-Type: application/json' \
  -d '{"type":"card","name":"Jane Doe","tel":"+82-10-1234-5678","shape":"square"}' \
  -o card.png

フィールド

type必須任意
wifissid, passwordsecurity (WPA·WEP·nopass), hidden
cardnameorg, tel, email
eventtitle, startend, location, desc

時刻は「2026-09-01 19:00」の形式です。オープンな Wi-Fi なら security=nopass を渡し、パスワードは省きます。フィールドの不足や形式誤りは、どのフィールドかを示す HTTP 400 で返ります — 画像を生成しないので、不正なリクエストがレンダリング枠を占有しません。

まとめて作る

1行が1コードです。レート制限に当たっても途中で止めず、待ってから続けます。失敗した行はファイル内の実際の行番号とともに知らせます。

npx wiacode batch people.jsonl --out-dir codes

# people.jsonl
{"type":"card","name":"Jane Doe","tel":"+82-10-1234-5678","out":"jane.png"}
{"type":"wifi","ssid":"Cafe WIA","security":"nopass"}
{"text":"https://wiacode.com","shape":"star"}

REST API

POST /api/v1/code

curl -X POST https://wiacode.com/api/v1/code \
  -H 'Content-Type: application/json' \
  -d '{"text":"https://wiacode.com","shape":"heart"}' \
  -o wiacode.png

レスポンスはimage/pngです。?format=jsonを付けるとbase64とメタデータをJSONで取得できます。

curl -X POST 'https://wiacode.com/api/v1/code?format=json' \
  -H 'Content-Type: application/json' \
  -d '{"text":"https://wiacode.com","shape":"square"}'

ブラウザから呼び出す

任意のオリジンのWebアプリから直接呼び出せます。クッキーを使用しない公開APIのため、CORSは開放されています。

const r = await fetch('https://wiacode.com/api/v1/code?format=json', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ text: 'https://wiacode.com', shape: 'heart' })
});
const { image, meta } = await r.json();
document.querySelector('img').src = image;   // data:image/png;base64,...

GET /api/v1/shapes

curl https://wiacode.com/api/v1/shapes

パラメータ

名前必須説明
textエンコードするテキストまたはURL。長いURLは先に短縮しておくのがよいです。
typewifi · card · eventtext の代わりに渡します — フィールドから標準の文字列をサーバーが組み立てます。上のタイプの節を参照。
shapeシルエット(デフォルトはheart)。下の表を参照。
cellPxセルあたりのピクセル数(3〜20、デフォルト8)。大きいほど画像も大きくなります。
labelメタデータに保持されるラベル。画像には描画されません。

シルエットと容量

シルエットごとに容量(UTF-8バイト数)が異なります。長いコンテンツにはsquareを使い、短いリンクにはどの形でも構いません。

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — AIに作らせる

Claudeなどの AI クライアントに接続すると、会話の中でそのままコードを作成します。エンドポイントはhttps://mcp.wiacode.com/mcpで、キーは不要です。

Claude Desktopの設定

{
  "mcpServers": {
    "wiacode": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.wiacode.com/mcp"]
    }
  }
}

クライアントがStreamable HTTPを直接サポートしている場合は、そのURLを渡すだけです。

ツール

ツール機能
get_wia_code_infoWIA Codeとは何か、QRコードとどう違うか、各シルエットの容量を説明します。これを最初に呼び出すと失敗が減ります。
generate_wia_codeテキストをコード画像に変換します。容量を超える場合は、どのシルエットなら収まるかを教えてくれます。
generate_wia_code_wifiWi-Fi の接続情報 — スキャンするとパスワードを入力せずに接続できます。
generate_wia_code_card連絡先を標準 vCard で — スキャンすると連絡先への保存を促します。
generate_wia_code_event予定を標準 iCalendar で — スキャンするとカレンダーに追加されます。

無料枠の制限

もっと必要な場合 — 大量発行、パートナーシップ、商用利用については、メールでご連絡ください。制限を引き上げるキーをお渡しします。 wiasoom@smilestory.ai

WIA Stream — when one code isn't enough

A single WIA Code holds up to 1,450 bytes. When the payload is larger — a document, a book chapter, an audio clip — Stream splits it across many frames. A screen plays them in sequence, a camera collects them, and the scanner reassembles the file. No internet, no server. It already ships in the generator.

What matters here is not speed — it is whether the transfer finishes at all. Stream needs every frame. A frame that fails to read must wait for the next pass, and may fail again. So a per-frame reading gap does not average out; it multiplies into the completion time. In our degradation sweep at matched physical size (1064 vs 1088 px, n=17, QR read with ZBar), a high-version QR frame read 52.9% of the time while a WIA frame read 17 of 17. Feeding those rates into a cyclic-broadcast model, a 286-frame QR transfer needs about 8 passes to complete while a 155-frame WIA transfer needs about one.

Read this honestly: n = 17 is a small sample. By the rule of three, "17 of 17" should be read as ≥ 82% with 95% confidence, and the 52.9% figure carries a 29–77% interval. Taking the least favourable end of both, the completion-time gap is still about 2.4×. Screen-to-camera capture on real handsets and printed output have not been measured yet. And QR wins on blur resistance at equal frame size — we only pull ahead once capacity is matched.

その他

ジェネレーターを開く →

WIA CodeはSmileStory Co., Ltd.の製品です。ブースターQRは、専用スキャナーを持たない人でも読み取れるようにするための案内です。