Lav en WIA Code med én linje. Ingen nøgle nødvendig inden for de gratis grænser.
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 altid inkluderet. Der er ingen mulighed for at slå den fra — det samme gælder API, MCP og CLI. "Når den samlede brug når 100 millioner gange, adskilles boosteren, og dit eget logo tager dens plads" er et produktløfte, så vi lavede ingen undtagelse for nogen vej. Kodningsparametre (grid, bpc, bridge) er også fastlåst på serveren.
npx wiacode "https://wiacode.com" --shape heart
Kører med det samme på Node 18 eller nyere, uden installation. Den har ingen afhængigheder, så det tager kun et par sekunder at 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
Tre færdige typer. Du behøver ikke selv sammensætte strengene — send felterne, så bygger serveren standard Wi-Fi- / vCard- / iCalendar-indhold, byte for byte identisk med det, generatoren på dette site producerer.
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"
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 | påkrævet | valgfri |
|---|---|---|
| wifi | ssid, password | security (WPA·WEP·nopass), hidden |
| card | name | org, tel, email |
| event | title, start | end, location, desc |
Tidspunkter angives som "2026-09-01 19:00". Til et åbent Wi-Fi-netværk skal du sende security=nopass og udelade password. Manglende eller forkert udfyldte felter returneres som HTTP 400 med en besked, der nævner feltet — der genereres intet billede, så en fejlbehæftet forespørgsel aldrig optager en render-plads.
Én linje pr. kode. Ved en hastighedsbegrænsning venter den og fortsætter i stedet for at stoppe halvvejs, og rapporterer fejlede linjer med deres reelle linjenumre.
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"}
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. Tilføj ?format=json for at 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"}'
Du kan kalde det direkte fra en webapp med en vilkårlig origin. Det er et offentligt API, der ikke bruger cookies, så CORS er åbent.
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,...
curl https://wiacode.com/api/v1/shapes
| navn | påkrævet | beskrivelse |
|---|---|---|
| text | ✓ | Teksten eller URL'en, der skal kodes. Lange URL'er bør først forkortes. |
| type | — | wifi · card · event. Angives i stedet for text — serveren bygger standardstrengen ud fra felterne. Se afsnittet Typer ovenfor. |
| shape | — | Silhuet (standard heart). Se tabellen nedenfor. |
| cellPx | — | Pixels pr. celle (3–20, standard 8). Større betyder et større billede. |
| label | — | En etiket, der gemmes i metadata. Den tegnes ikke på billedet. |
Hver silhuet kan indeholde forskellige mængder (UTF-8-bytes). Brug square til langt indhold; enhver form fungerer til korte links.
| shape | bytes | shape | bytes |
|---|---|---|---|
| square | 1450 | rose | 586 |
| round | 1093 | clover | 521 |
| hex | 861 | star | 386 |
| heart | 854 | boomerang | 386 |
Forbind den til en AI-klient som Claude, så laver den koder direkte i samtalen. Endepunktet er https://mcp.wiacode.com/mcp, og der kræves ingen nøgle.
{
"mcpServers": {
"wiacode": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.wiacode.com/mcp"]
}
}
}
Hvis din klient understøtter Streamable HTTP direkte, skal du bare give den URL'en.
| værktøj | hvad det gør |
|---|---|
| get_wia_code_info | Forklarer, hvad en WIA Code er, hvordan den adskiller sig fra en QR-kode, og kapaciteten for hver silhuet. Hvis du kalder denne først, reducerer det fejl. |
| generate_wia_code | Omdanner tekst til et kodebillede. Hvis det overstiger kapaciteten, fortæller den, hvilke silhuetter der ville passe. |
| generate_wia_code_wifi | Wi-Fi-loginoplysninger — scanning tilslutter netværket uden at skulle indtaste adgangskoden. |
| generate_wia_code_card | En kontakt som standard vCard — scanning tilbyder at gemme den i telefonens kontakter. |
| generate_wia_code_event | En begivenhed som standard iCalendar — scanning føjer den til kalenderen. |
503. Prøv bare igen om lidt.429 sammen med, hvor mange sekunder du skal vente.Hvis du har brug for mere — til bulkudstedelse, partnerskaber eller kommerciel brug, så send os en e-mail. Vi giver dig en nøgle, der hæver grænsen. wiasoom@smilestory.ai
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 er et produkt fra SmileStory Co., Ltd. Booster-QR'en er en guide, der også hjælper folk uden den dedikerede scanner med at læse den.