Geliştiriciler — API · MCP · CLI

Tek satırda bir WIA Code oluşturun. Ücretsiz sınırlar dahilinde anahtar gerekmez.

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.

Booster QR her zaman dahildir. Kapatma seçeneği yoktur — bu API, MCP ve CLI için de geçerlidir. "Toplam kullanım 100 milyon defaya ulaştığında booster ayrılır ve kendi logonuz onun yerini alır" bir ürün vaadidir, bu yüzden hiçbir yol için istisna yapmadık. Kodlama parametreleri (grid, bpc, bridge) sunucuda da sabittir.

CLI — tek satır, kurulum yok

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

Node 18 veya üzerinde, kurulum yapmadan hemen çalışır. Bağımlılığı yoktur, bu yüzden indirilmesi sadece birkaç saniye sürer.

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

Türler — Wi-Fi, kartvizit, etkinlik

Kullanıma hazır üç tür. Metinleri kendiniz birleştirmenize gerek yok — alanları gönderin, sunucu standart Wi-Fi / vCard / iCalendar içeriğini oluştursun. Sonuç, bu sitedeki oluşturucunun ürettiğiyle bayt bayt aynıdır.

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

Alanlar

typezorunluisteğe bağlı
wifissid, passwordsecurity (WPA·WEP·nopass), hidden
cardnameorg, tel, email
eventtitle, startend, location, desc

Saatler "2026-09-01 19:00" biçimindedir. Açık bir Wi-Fi ağı için security=nopass gönderin ve parolayı yazmayın. Eksik veya hatalı alanlar, alan adını belirten HTTP 400 ile döner — görüntü üretilmez, bu yüzden hatalı bir istek hiçbir zaman işleme sırası kaplamaz.

Tek seferde çok sayıda

Her satır bir kod. Dakika sınırına takıldığında yarıda durmak yerine bekleyip devam eder ve başarısız satırları dosyadaki gerçek satır numaralarıyla bildirir.

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

Yanıt image/png'dir. base64 ve metadatayı JSON olarak almak için ?format=json ekleyin.

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

Tarayıcıdan çağırma

Herhangi bir origin'deki bir web uygulamasından doğrudan çağırabilirsiniz. Çerez kullanmayan herkese açık bir API olduğu için CORS açıktır.

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

Parametreler

adzorunluaçıklama
textKodlanacak metin veya URL. Uzun URL'lerin önce kısaltılması daha iyidir.
typewifi · card · event. text yerine gönderilir — sunucu alanlardan standart metni oluşturur. Yukarıdaki Türler bölümüne bakın.
shapeSiluet (varsayılan heart). Aşağıdaki tabloya bakın.
cellPxHücre başına piksel (3–20, varsayılan 8). Daha büyük değer daha büyük görüntü anlamına gelir.
labelMetadatada tutulan bir etiket. Görüntü üzerine çizilmez.

Siluetler ve Kapasite

Her siluet farklı bir miktar tutar (UTF-8 bayt). Uzun içerik için square kullanın; kısa bağlantılar için herhangi bir şekil işe yarar.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — yapay zekaya yaptırın

Claude gibi bir AI istemcisine bağlayın, doğrudan sohbet içinde kod oluşturur. Endpoint https://mcp.wiacode.com/mcp'dir ve anahtar gerekmez.

Claude Desktop kurulumu

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

İstemciniz Streamable HTTP'yi doğrudan destekliyorsa, ona sadece URL'yi verin.

Araçlar

araçne yapar
get_wia_code_infoWIA Code'un ne olduğunu, QR koddan nasıl farklılaştığını ve her siluetin kapasitesini açıklar. Bunu önce çağırmak hataları azaltır.
generate_wia_codeMetni bir kod görüntüsüne dönüştürür. Kapasiteyi aşarsa, hangi siluetlerin sığacağını söyler.
generate_wia_code_wifiWi-Fi bilgileri — taratınca parola yazmadan ağa bağlanır.
generate_wia_code_cardStandart vCard olarak bir kişi — taratınca telefon rehbere kaydetmeyi önerir.
generate_wia_code_eventStandart iCalendar olarak bir etkinlik — taratınca takvime eklenir.

Ücretsiz Sınırlar

Daha fazlasına ihtiyacınız varsa — toplu ihraç, ortaklıklar veya ticari kullanım için bize e-posta gönderin. Size sınırı yükselten bir anahtar vereceğiz. 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.

Daha Fazla

Oluşturucuyu aç →

WIA Code, SmileStory Co., Ltd.'nin bir ürünüdür. Booster QR, özel tarayıcısı olmayan kişilerin de onu okumasına yardımcı olan bir kılavuzdur.