توسعه‌دهندگان — 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 هم صادق است. «وقتی استفادهٔ تجمعی به ۱۰۰ میلیون بار برسد، تقویت‌کننده جدا می‌شود و لوگوی خودتان جای آن قرار می‌گیرد» یک وعدهٔ محصول است، پس برای هیچ مسیری استثنا قائل نشدیم. پارامترهای کدگذاری (grid، bpc، bridge) نیز روی سرور ثابت شده‌اند.

CLI — یک خط، بدون نصب

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 / 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 بدهید و password را حذف کنید. فیلدهای گم‌شده یا نادرست با پاسخ 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 است. برای دریافت base64 و فراداده به‌صورت JSON، ?format=json را اضافه کنید.

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

فراخوانی از مرورگر

می‌توانید آن را مستقیماً از یک وب‌اپ در هر خاستگاهی فراخوانی کنید. این یک 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پیکسل در هر سلول (۳ تا ۲۰، پیش‌فرض ۸). هرچه بزرگ‌تر باشد، تصویر بزرگ‌تر خواهد بود.
labelبرچسبی که در فراداده نگه‌داشته می‌شود. روی تصویر رسم نمی‌شود.

شکل‌ها و ظرفیت

هر شکل مقدار متفاوتی را در خود جای می‌دهد (بایت UTF-8). برای محتوای طولانی از square استفاده کنید؛ برای لینک‌های کوتاه هر شکلی کار می‌کند.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — بگذارید هوش مصنوعی آن را بسازد

آن را به یک کلاینت هوش مصنوعی مانند Claude متصل کنید تا کدها را درست در همان گفتگو بسازد. نشانی سرویس https://mcp.wiacode.com/mcp است و نیازی به کلید نیست.

راه‌اندازی Claude Desktop

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

اگر کلاینت شما مستقیماً از Streamable HTTP پشتیبانی می‌کند، فقط آدرس را به آن بدهید.

ابزارها

ابزارعملکرد
get_wia_code_infoتوضیح می‌دهد WIA Code چیست، چه تفاوتی با کد QR دارد و ظرفیت هر شکل چقدر است. فراخوانی این ابزار در ابتدا خطاها را کاهش می‌دهد.
generate_wia_codeمتن را به تصویر کد تبدیل می‌کند. اگر از ظرفیت فراتر رود، می‌گوید کدام شکل‌ها جا می‌شوند.
generate_wia_code_wifiاطلاعات ورود Wi-Fi — با اسکن کردن، بدون تایپ password به شبکه متصل می‌شوید.
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 تقویت‌کننده راهنمایی است که به افرادی که اسکنر اختصاصی ندارند نیز کمک می‌کند آن را بخوانند.