Προγραμματιστές — 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.

Το booster QR περιλαμβάνεται πάντα. Δεν υπάρχει επιλογή απενεργοποίησής του — το ίδιο ισχύει για το API, το MCP και το CLI. Η υπόσχεση προϊόντος «Όταν η συνολική χρήση φτάσει τα 100 εκατομμύρια φορές, το booster αποχωρίζεται και στη θέση του μπαίνει το δικό σας λογότυπο» ισχύει χωρίς εξαίρεση για καμία διαδρομή. Οι παράμετροι κωδικοποίησης (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, κάρτα επαφής, εκδήλωση

Τρεις έτοιμοι τύποι. Δεν χρειάζεται να συνθέσετε τα strings μόνοι σας — δίνετε τα πεδία και ο διακομιστής δημιουργεί τυπικό περιεχόμενο Wi-Fi / vCard / iCalendar, πανομοιότυπο byte προς byte με αυτό που παράγει η γεννήτρια αυτού του site.

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. Προσθέστε ?format=json για να λάβετε base64 και μεταδεδομένα ως 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 που δεν χρησιμοποιεί cookies, οπότε το 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 — ο διακομιστής συνθέτει το τυπικό string από τα πεδία. Δείτε την ενότητα Τύποι παραπάνω.
shapeΣιλουέτα (προεπιλογή heart). Δείτε τον παρακάτω πίνακα.
cellPxPixel ανά κελί (3–20, προεπιλογή 8). Μεγαλύτερη τιμή σημαίνει μεγαλύτερη εικόνα.
labelΜια ετικέτα που διατηρείται στα μεταδεδομένα. Δεν σχεδιάζεται πάνω στην εικόνα.

Σιλουέτες και χωρητικότητα

Κάθε σιλουέτα χωράει διαφορετική ποσότητα (bytes UTF-8). Χρησιμοποιήστε square για μεγάλο περιεχόμενο· οποιοδήποτε σχήμα λειτουργεί για σύντομους συνδέσμους.

shapebytesshapebytes
square1450rose586
round1093clover521
hex861star386
heart854boomerang386

MCP — αφήστε την AI να τον φτιάξει

Συνδέστε τον με έναν πελάτη AI όπως το Claude και δημιουργεί κωδικούς απευθείας μέσα στη συνομιλία. Το endpoint είναι https://mcp.wiacode.com/mcp και δεν απαιτείται κλειδί.

Ρύθμιση Claude Desktop

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

Αν ο πελάτης σας υποστηρίζει απευθείας Streamable HTTP, απλώς δώστε του το URL.

Εργαλεία

εργαλείοτι κάνει
get_wia_code_infoΕξηγεί τι είναι ένας WIA Code, πώς διαφέρει από έναν κωδικό QR και τη χωρητικότητα κάθε σιλουέτας. Η κλήση αυτού πρώτα μειώνει τα σφάλματα.
generate_wia_codeΜετατρέπει κείμενο σε εικόνα κωδικού. Αν υπερβεί τη χωρητικότητα, λέει ποιες σιλουέτες θα ταίριαζαν.
generate_wia_code_wifiΔιαπιστευτήρια Wi-Fi — η σάρωση συνδέει στο δίκτυο χωρίς να πληκτρολογήσετε τον κωδικό πρόσβασης.
generate_wia_code_cardΜια επαφή ως τυπική vCard — η σάρωση προτείνει αποθήκευσή της στις επαφές του τηλεφώνου.
generate_wia_code_eventΜια εκδήλωση ως τυπικό iCalendar — η σάρωση την προσθέτει στο ημερολόγιο.

Δωρεάν όρια

Αν χρειάζεστε περισσότερα — για μαζική έκδοση, συνεργασίες ή εμπορική χρήση, στείλτε μας email. Θα σας δώσουμε ένα κλειδί που αυξάνει το όριο. 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. Το booster QR είναι ένας οδηγός που βοηθά και όσους δεν έχουν τον ειδικό σαρωτή να το διαβάσουν.