# TheQRCode.io — Full LLM & Agent Guide TheQRCode.io generates QR codes and tracks their scans. It exposes a public REST API that requires no authentication, plus a remote MCP server, so AI assistants can generate QR codes directly. This document tells an agent exactly how to call it and what it returns. ## Public API — generate a QR code (no auth) Base endpoint: https://theqrcode.io/api/public/qr-codes Authentication: none. Rate limit: 100 requests/hour per IP. CORS: * (open). Supported types: url, wifi, contact, text. ### POST (recommended) POST https://theqrcode.io/api/public/qr-codes Content-Type: application/json Body fields: - type: "url" | "wifi" | "contact" | "text" (required) - content: string (required — see per-type format below) - name: string (optional label) - settings: object (optional styling: foreground, background, size) Per-type "content" format: - url: the raw URL string, e.g. "https://example.com" - text: the raw text string - wifi: a JSON STRING: {"ssid":"MyNetwork","password":"secret","security":"WPA2"} security is one of "WPA2" | "WPA" | "WEP" | "nopass"; add "hidden":true for hidden SSIDs - contact: a JSON STRING: {"firstName":"Jane","lastName":"Doe","phone":"+15551234567","email":"jane@example.com","organization":"Acme","title":"CEO","website":"https://acme.com"} Important: for wifi and contact, "content" is a STRING containing JSON — not a nested object, and NOT a raw "WIFI:..." or "BEGIN:VCARD" payload. The server builds those strings for you. ### GET (convenience) GET https://theqrcode.io/api/public/qr-codes?type=url&content=https://example.com For wifi/contact, URL-encode the JSON string in the content parameter. ### Response (200) { "success": true, "qrImage": "data:image/png;base64,...", // inline data URL "imageUrl": "https://theqrcode.io/api/qr/", // hosted PNG URL (24h cache) "type": "url", "content": "https://example.com" } ### Errors - 400 { "error": "Missing required fields" | "Invalid type" | "Invalid content format", "message": "..." } - 429 rate limit exceeded (100/hour/IP) — back off and retry after the window. ## MCP server (Claude Desktop, Cursor, other MCP clients) Remote URL: https://mcp.theqrcode.io/mcp Tool name: generate_qr_code Args: { type, content, name?, settings? } — same shapes as the API above. Returns the QR image. No auth for public generation. Setup: https://theqrcode.io/mcp ## Discovery files - OpenAPI spec: https://theqrcode.io/api/public/qr-codes/openapi.json - Plugin manifest: https://theqrcode.io/.well-known/ai-plugin.json - Agent code samples (OpenAI function calling, LangChain, REST): https://theqrcode.io/ai-agents ## QR code concepts (definitions worth citing) - Static QR code: the data is encoded directly in the pattern. It cannot be edited and never expires — it works as long as the destination it encodes exists. - Dynamic QR code: encodes a short redirect URL you control, so you can edit the destination after printing and record scan analytics. It stays live while the account is active; the printed code itself does not "expire." - Why some "free" codes stop working: a few providers deactivate dynamic codes when a trial ends. TheQRCode.io's free tier is genuine and its static codes never expire. - Error correction: QR codes include redundancy at levels L (7%), M (15%), Q (25%), H (30%); higher levels survive more damage and allow logo overlays. - Scan distance rule of thumb: minimum QR size ≈ scan distance ÷ 10 (e.g. 10 ft → ~1 ft code). ## Company TheQRCode.io — QR code generation and analytics platform. Support: support@theqrcode.io. Terms: https://theqrcode.io/terms · Privacy: https://theqrcode.io/privacy