นักพัฒนา — API · MCP · CLI

สร้าง WIA Code ได้ในบรรทัดเดียว ไม่ต้องใช้คีย์ภายในขีดจำกัดฟรี

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 "เมื่อการใช้งานสะสมถึง 100 ล้านครั้ง บูสเตอร์จะแยกออกและโลโก้ของคุณเองจะเข้ามาแทนที่" เป็นคำมั่นสัญญาของผลิตภัณฑ์ เราจึงไม่ยกเว้นให้เส้นทางใดเส้นทางหนึ่ง พารามิเตอร์การเข้ารหัส (grid, bpc, bridge) ก็ถูกกำหนดตายตัวไว้ที่เซิร์ฟเวอร์เช่นกัน

CLI — บรรทัดเดียว ไม่ต้องติดตั้ง

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

ทำงานได้ทันทีบน Node 18 ขึ้นไป โดยไม่ต้องติดตั้ง ไม่มี dependency จึงใช้เวลาดึงมาเพียงไม่กี่วินาที

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, นามบัตร, กำหนดการ

สามประเภทที่พร้อมใช้ทันที คุณไม่ต้องประกอบสตริงเอง เพียงส่งฟิลด์มา แล้วเซิร์ฟเวอร์จะสร้างเนื้อหา 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 พร้อมระบุชื่อฟิลด์ — ไม่มีการสร้างภาพ คำขอที่ผิดจึงไม่กินคิวการสร้างภาพ

สร้างทีละหลายรายการ

หนึ่งบรรทัดต่อหนึ่งโค้ด เมื่อชนขีดจำกัดต่อนาที ระบบจะรอแล้วทำต่อแทนที่จะหยุดกลางคัน และรายงานบรรทัดที่ล้มเหลวพร้อมหมายเลขบรรทัดจริงในไฟล์

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 และ metadata เป็น JSON

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

การเรียกใช้จากเบราว์เซอร์

คุณสามารถเรียกใช้ได้โดยตรงจากเว็บแอปในต้นทาง (origin) ใดก็ได้ เนื่องจากเป็น 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 · event ส่งแทน text — เซิร์ฟเวอร์จะประกอบสตริงมาตรฐานจากฟิลด์เหล่านี้ ดูหัวข้อประเภทด้านบน
shapeรูปทรง (ค่าเริ่มต้น heart) ดูตารางด้านล่าง
cellPxพิกเซลต่อเซลล์ (3–20 ค่าเริ่มต้น 8) ยิ่งค่ามากภาพก็ยิ่งใหญ่
labelป้ายกำกับที่เก็บไว้ใน metadata ไม่ถูกวาดลงบนภาพ

รูปทรงและความจุ

แต่ละรูปทรงเก็บข้อมูลได้ต่างกัน (ไบต์ UTF-8) ใช้ square สำหรับเนื้อหายาว รูปทรงใดก็ได้ใช้ได้กับลิงก์สั้น

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — ให้ AI สร้างให้

เชื่อมต่อกับไคลเอนต์ AI เช่น Claude แล้วมันจะสร้างโค้ดได้ทันทีในบทสนทนา endpoint คือ 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_infoอธิบายว่า WIA Code คืออะไร แตกต่างจาก QR code อย่างไร และความจุของแต่ละรูปทรง การเรียกใช้ตัวนี้ก่อนช่วยลดความล้มเหลว
generate_wia_codeแปลงข้อความเป็นภาพโค้ด หากเกินความจุ จะบอกว่ารูปทรงใดที่จะรองรับได้
generate_wia_code_wifiข้อมูล Wi-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 เป็นตัวช่วยที่ทำให้ผู้ที่ไม่มีสแกนเนอร์เฉพาะสามารถอ่านได้เช่นกัน