Utviklere — API · MCP · CLI

Lag en WIA Code med én linje. Innenfor den gratis grensen trenger du ingen nøkkel.

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-en er alltid inkludert. Det finnes ingen mulighet til å slå den av — det gjelder like mye for API, MCP og CLI. «Når samlet bruk når 100 millioner ganger, løsner boosteren, og din egen logo tar plassen» er et produktløfte, så vi har ikke gjort unntak for noen av veiene. Kodingsparametrene (grid, bpc, bridge) er også låst på serveren.

CLI — én linje, ingen installasjon

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

Kjører umiddelbart på Node 18 eller nyere, uten installasjon. Den har ingen avhengigheter, så det tar bare noen sekunder å hente den.

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

Typer — Wi-Fi, kontaktkort, hendelse

Tre ferdige typer. Du trenger ikke sette sammen strengene selv — send inn feltene, så bygger serveren standard Wi-Fi-/vCard-/iCalendar-innhold, byte for byte identisk med det generatoren på dette nettstedet lager.

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

Felt

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

Tidspunkt skrives som "2026-09-01 19:00". For et åpent Wi-Fi-nettverk sender du inn security=nopass og utelater passordet. Manglende eller feil formaterte felt kommer tilbake som HTTP 400 med en melding som navngir feltet — det gjengis ikke noe bilde, så en ugyldig forespørsel opptar aldri en gjengivelsesplass.

Mange på én gang

Én linje per kode. Ved en hastighetsgrense venter den og fortsetter i stedet for å stoppe midtveis, og rapporterer mislykkede linjer med deres faktiske linjenummer.

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

Svaret er image/png. Legg til ?format=json for å få base64 og metadata som JSON.

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

Kalle den fra en nettleser

Du kan kalle den direkte fra en nettapp på et hvilket som helst opphav. Det er et offentlig API som ikke bruker informasjonskapsler, så CORS er åpent.

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

Parametere

navnpåkrevdbeskrivelse
textTeksten eller URL-en som skal kodes. Lange URL-er bør helst forkortes først.
typewifi · card · event. Gis i stedet for text — serveren setter sammen standardstrengen fra feltene. Se avsnittet Typer ovenfor.
shapeSilhuett (standard heart). Se tabellen under.
cellPxPiksler per celle (3–20, standard 8). Større verdi gir et større bilde.
labelEn etikett som lagres i metadata. Den tegnes ikke på bildet.

Silhuetter og kapasitet

Hver silhuett rommer en ulik mengde (UTF-8-bytes). Bruk square for langt innhold; hvilken som helst form fungerer for korte lenker.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — la AI-en lage den

Koble den til en AI-klient som Claude, så lages koder rett i samtalen. Endepunktet er https://mcp.wiacode.com/mcp og krever ingen nøkkel.

Oppsett for Claude Desktop

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

Hvis klienten din støtter Streamable HTTP direkte, er det bare å oppgi denne URL-en.

Verktøy

verktøyhva det gjør
get_wia_code_infoForklarer hva en WIA Code er, hvordan den skiller seg fra en QR-kode, og kapasiteten til hver silhuett. Å kalle denne først reduserer feil.
generate_wia_codeGjør tekst om til et kodebilde. Hvis den overskrider kapasiteten, forteller den hvilke silhuetter som ville passet.
generate_wia_code_wifiWi-Fi-påloggingsinformasjon — skanning kobler til nettverket uten å skrive inn passordet.
generate_wia_code_cardEn kontakt som standard vCard — skanning tilbyr å lagre den i telefonens kontakter.
generate_wia_code_eventEn hendelse som standard iCalendar — skanning legger den til i kalenderen.

Gratis grenser

Hvis du trenger mer — for masseutstedelse, partnerskap eller kommersiell bruk, send oss en e-post. Vi gir deg en nøkkel som hever grensen. 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.

Mer

Åpne generatoren →

WIA Code er et produkt fra SmileStory Co., Ltd. Booster-QR-en er en guide som hjelper også folk uten den dedikerte skanneren med å lese den.