Mga Developer — API · MCP · CLI

Gumawa ng WIA Code sa isang linya. Walang kailangang key sa loob ng libreng limitasyon.

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.

Palaging kasama ang booster QR. Walang opsyon para i-off ito — pareho rin ito sa API, MCP, at CLI. Ang "kapag umabot na sa 100 milyong beses ang kabuuang paggamit, maghihiwalay ang booster at ang sarili mong logo ang papalit dito" ay isang pangako ng produkto, kaya wala kaming ginawang eksepsiyon para sa kahit anong daan. Naka-fix din sa server ang mga encoding parameter (grid, bpc, bridge).

CLI — isang linya, walang install

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

Direktang tumatakbo sa Node 18 o mas bago, nang walang install. Walang dependencies, kaya ilang segundo lang ang pag-fetch nito.

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

Mga Uri — Wi-Fi, contact card, event

Tatlong handa nang gamitin. Hindi mo na kailangang buuin mismo ang mga string — ibigay mo lang ang mga field at bubuuin ng server ang karaniwang Wi-Fi / vCard / iCalendar content, kapareho nang eksakto, byte-for-byte, sa nililikha ng generator sa site na ito.

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

Mga Field

typekailanganopsyonal
wifissid, passwordsecurity (WPA·WEP·nopass), hidden
cardnameorg, tel, email
eventtitle, startend, location, desc

Ang oras ay nasa "2026-09-01 19:00" na format. Para sa bukas na Wi-Fi network, ilagay ang security=nopass at wag nang isama ang password. Ang nawawala o maling format na field ay magbabalik ng HTTP 400 na may mensaheng nagsasabi kung anong field ang problema — walang larawang ma-render, kaya ang maling request ay hindi kailanman kumukuha ng render slot.

Maramihan Nang Sabay

Isang linya bawat code. Kapag naabot ang rate limit, naghihintay ito at nagpapatuloy sa halip na huminto sa gitna, at iniuulat ang mga nabigong linya kasama ang tunay nilang line number.

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

Ang response ay image/png. Idagdag ang ?format=json para makuha ang base64 at metadata bilang JSON.

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

Pagtawag mula sa browser

Maaari mo itong tawagin nang direkta mula sa isang web app sa kahit anong origin. Isa itong pampublikong API na hindi gumagamit ng cookies, kaya bukas ang 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

Mga Parameter

pangalankailanganpaglalarawan
textAng teksto o URL na i-e-encode. Mas mainam na paikliin muna ang mahahabang URL.
typewifi · card · event. Ibinibigay sa halip na text — bubuuin ng server ang standard na string mula sa mga field. Tingnan ang seksyong Types sa itaas.
shapeSilhouette (default heart). Tingnan ang talahanayan sa ibaba.
cellPxPixels bawat cell (3–20, default 8). Mas malaki ang halaga, mas malaki ang imahe.
labelIsang label na iniingatan sa metadata. Hindi ito iginuhit sa imahe.

Mga Silhouette at Kapasidad

Iba-iba ang kaya ng bawat silhouette (UTF-8 bytes). Gamitin ang square para sa mahabang content; kahit anong hugis ay gagana para sa maiikling link.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — hayaang ang AI ang gumawa nito

Ikonekta ito sa AI client tulad ng Claude at gagawa ito ng mga code nang direkta sa usapan. Ang endpoint ay https://mcp.wiacode.com/mcp at walang kailangang key.

Pag-set up ng Claude Desktop

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

Kung direktang sinusuportahan ng client mo ang Streamable HTTP, ibigay lang ang URL.

Mga Tool

kasangkapangawain
get_wia_code_infoIpinapaliwanag kung ano ang WIA Code, paano ito naiiba sa QR code, at ang kapasidad ng bawat silhouette. Ang pagtawag dito muna ay nagpapababa ng mga pagkabigo.
generate_wia_codeGinagawang code image ang teksto. Kapag lumampas sa kapasidad, sinasabi nito kung aling mga silhouette ang kasya.
generate_wia_code_wifiWi-Fi credentials — kapag na-scan, sumasali sa network nang hindi na kinakailangang i-type ang password.
generate_wia_code_cardIsang contact bilang standard na vCard — kapag na-scan, iaalok na i-save ito sa contacts ng telepono.
generate_wia_code_eventIsang event bilang standard na iCalendar — kapag na-scan, idinadagdag ito sa kalendaryo.

Mga Libreng Limitasyon

Kung kailangan mo ng higit pa — para sa bulk na pag-isyu, partnership, o komersyal na gamit, padalhan kami ng email. Bibigyan ka namin ng key na magpapataas ng limitasyon. 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.

Higit Pa

Buksan ang generator →

Ang WIA Code ay produkto ng SmileStory Co., Ltd. Ang booster QR ay isang gabay na tumutulong sa mga taong walang dedicated scanner na mabasa rin ito.