Entwickler — API · MCP · CLI

Erstellen Sie einen WIA Code mit einer Zeile. Innerhalb der kostenlosen Limits ist kein Schlüssel nötig.

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.

Der Booster-QR ist immer enthalten. Es gibt keine Option, ihn abzuschalten — dasselbe gilt für API, MCP und CLI. „Wenn die kumulierte Nutzung 100 Millionen Mal erreicht, trennt sich der Booster ab, und Ihr eigenes Logo tritt an seine Stelle“ ist ein Produktversprechen, daher haben wir für keinen Weg eine Ausnahme gemacht. Die Kodierungsparameter (grid, bpc, bridge) sind ebenfalls serverseitig fest eingestellt.

CLI — eine Zeile, keine Installation

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

Läuft sofort unter Node 18 oder neuer, ganz ohne Installation. Sie hat keine Abhängigkeiten, daher dauert das Abrufen nur wenige Sekunden.

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

Typen — WLAN, Kontaktkarte, Termin

Drei gebrauchsfertige Typen. Sie müssen die Zeichenketten nicht selbst zusammensetzen — übergeben Sie die Felder, und der Server erzeugt standardkonforme WLAN-/vCard-/iCalendar-Inhalte, Byte für Byte identisch mit dem Generator auf dieser Seite.

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

Felder

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

Zeiten haben das Format „2026-09-01 19:00“. Für ein offenes WLAN security=nopass übergeben und das Passwort weglassen. Fehlende oder fehlerhafte Felder kommen als HTTP 400 mit Angabe des Feldes zurück — es wird kein Bild erzeugt, eine fehlerhafte Anfrage belegt also nie einen Render-Platz.

Viele auf einmal

Eine Zeile pro Code. Beim Minutenlimit wird gewartet und fortgesetzt statt auf halber Strecke abzubrechen; fehlgeschlagene Zeilen werden mit ihrer tatsächlichen Zeilennummer gemeldet.

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

Die Antwort ist image/png. Fügen Sie ?format=json hinzu, um base64 und Metadaten als JSON zu erhalten.

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

Aufruf aus dem Browser

Sie können es direkt von einer Web-App mit beliebigem Origin aus aufrufen. Es handelt sich um eine öffentliche API, die keine Cookies verwendet, daher ist CORS offen.

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

Parameter

NameerforderlichBeschreibung
textDer zu kodierende Text oder die URL. Lange URLs sollten vorher gekürzt werden.
typewifi · card · event. Statt text übergeben — der Server baut die Standardzeichenkette aus den Feldern. Siehe Abschnitt „Typen“ oben.
shapeSilhouette (Standard heart). Siehe Tabelle unten.
cellPxPixel pro Zelle (3–20, Standard 8). Größer bedeutet ein größeres Bild.
labelEin Label, das in den Metadaten gespeichert wird. Es wird nicht auf das Bild gezeichnet.

Silhouetten und Kapazität

Jede Silhouette fasst eine andere Menge (UTF-8-Bytes). Verwenden Sie square für lange Inhalte; für kurze Links funktioniert jede Form.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — die KI erstellen lassen

Verbinden Sie ihn mit einem KI-Client wie Claude, und er erstellt Codes direkt im Gespräch. Der Endpunkt ist https://mcp.wiacode.com/mcp, und es ist kein Schlüssel erforderlich.

Claude-Desktop-Einrichtung

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

Wenn Ihr Client Streamable HTTP direkt unterstützt, geben Sie ihm einfach die URL.

Tools

ToolFunktion
get_wia_code_infoErklärt, was ein WIA Code ist, wie er sich von einem QR-Code unterscheidet, und die Kapazität jeder Silhouette. Diesen zuerst aufzurufen reduziert Fehler.
generate_wia_codeWandelt Text in ein Code-Bild um. Wenn die Kapazität überschritten wird, sagt es Ihnen, welche Silhouetten passen würden.
generate_wia_code_wifiWLAN-Zugangsdaten — beim Scannen verbindet sich das Gerät ohne Passworteingabe.
generate_wia_code_cardEin Kontakt als Standard-vCard — beim Scannen bietet das Telefon das Speichern an.
generate_wia_code_eventEin Termin als Standard-iCalendar — beim Scannen wird er in den Kalender übernommen.

Kostenlose Limits

Wenn Sie mehr benötigen — für Massenausstellung, Partnerschaften oder kommerzielle Nutzung, senden Sie uns eine E-Mail. Wir geben Ihnen einen Schlüssel, der das Limit erhöht. 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.

Mehr

Generator öffnen →

WIA Code ist ein Produkt von SmileStory Co., Ltd. Der Booster-QR ist eine Hilfe, die auch Menschen ohne den dedizierten Scanner beim Lesen unterstützt.