QR Code Crafter .netlify API

The .netlify API from QR Code Crafter — 3 operation(s) for .netlify.

Operations 4

GET /.netlify/functions/generate-qr Download a QR code asset via Netlify Function #
POST /.netlify/functions/generate-qr Generate a QR code asset via Netlify Function #
POST /.netlify/functions/generate-verified-qr Generate and verify a QR code asset #
POST /.netlify/functions/generate-qr-bulk Generate a ZIP archive of static QR code files #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/qr-code-crafter-netlify-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

qr-code-crafter-netlify-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: QRCodeCrafter .netlify API
  version: 1.0.0
  description: Generate branded static QR codes in SVG, PNG, JPG, WebP, PDF, or EPS via the QR Code Crafter service.
  termsOfService: https://qrcodecrafter.com/terms
  contact:
    name: QR Code Crafter Agent Support
    email: support@qrcodecrafter.com
servers:
- url: https://qrcodecrafter.com
  description: Production
tags:
- name: .netlify
paths:
  /.netlify/functions/generate-qr:
    get:
      summary: Download a QR code asset via Netlify Function
      operationId: downloadQr
      security:
      - AgentApiKey: []
      - {}
      parameters:
      - name: value
        in: query
        required: true
        description: Text, URL, or payload encoded in the QR code
        schema:
          type: string
      - name: format
        in: query
        description: Output format for the QR code asset
        schema:
          type: string
          enum:
          - svg
          - png
          - jpg
          - webp
          - pdf
          - eps
          default: png
      - name: size
        in: query
        description: Width and height of the generated asset in pixels
        schema:
          type: integer
          minimum: 256
          maximum: 4096
      - name: margin
        in: query
        description: Quiet-zone margin around the QR code modules
        schema:
          type: integer
          minimum: 0
          maximum: 16
      - name: bgColor
        in: query
        description: 'Background color in hex format, for example #FFFFFF'
        schema:
          type: string
      - name: fgColor
        in: query
        description: 'Foreground color in hex format, for example #000000'
        schema:
          type: string
      - name: errorCorrectionLevel
        in: query
        description: Error correction level for QR encoding
        schema:
          type: string
          enum:
          - L
          - M
          - Q
          - H
      - name: logo
        in: query
        description: Optional base64 PNG, JPG, or WebP data URL for an embedded logo
        schema:
          type:
          - string
          - 'null'
          maxLength: 1500000
          pattern: ^data:image\/(png|jpe?g|webp);base64,.+
      responses:
        '200':
          description: Generated QR code asset served as binary content
          headers:
            X-QR-Width:
              description: Rendered asset width
              schema:
                type: number
            X-QR-Height:
              description: Rendered asset height
              schema:
                type: number
            X-QR-Unit:
              description: Dimension unit, px for SVG/raster and pt for PDF/EPS
              schema:
                type: string
                enum:
                - px
                - pt
            X-QR-Bytes:
              description: Exact number of decoded asset bytes
              schema:
                type: integer
          content:
            image/svg+xml:
              schema:
                type: string
                format: binary
            image/png:
              schema:
                type: string
                format: binary
            image/jpeg:
              schema:
                type: string
                format: binary
            image/webp:
              schema:
                type: string
                format: binary
            application/pdf:
              schema:
                type: string
                format: binary
            application/postscript:
              schema:
                type: string
                format: binary
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key when key enforcement is enabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests. QR generation uses a cost-weighted per-client budget; honor the retry and rate-limit headers before resubmitting work.
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying the request
              schema:
                type: string
            X-RateLimit-Limit:
              description: Cost budget units available in the current window for this client class
              schema:
                type: string
            X-RateLimit-Remaining:
              description: Cost budget units remaining in the current window
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - .netlify
    post:
      summary: Generate a QR code asset via Netlify Function
      operationId: generateQr
      security:
      - AgentApiKey: []
      - {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateQrRequest'
            examples:
              urlSvg:
                summary: URL QR code as SVG
                value:
                  value: https://example.com/menu?utm_source=qr&utm_medium=table_tent
                  format: svg
                  size: 1024
                  margin: 4
                  fgColor: '#111111'
                  bgColor: '#ffffff'
                  errorCorrectionLevel: H
              textWebp:
                summary: Plain text QR code as WebP
                value:
                  value: 'Order #A-12345 | Table 7 | Save 15% with code QR15.'
                  format: webp
                  size: 1024
                  margin: 4
              wifiPng:
                summary: Wi-Fi QR code as PNG
                value:
                  value: WIFI:T:WPA;S:Guest Network;P:Welcome123;H:false;;
                  format: png
                  size: 1024
                  margin: 4
                  errorCorrectionLevel: H
              emailJpg:
                summary: Email action QR code as JPG
                value:
                  value: mailto:support@example.com?subject=QR%20support&body=Please%20contact%20me
                  format: jpg
                  size: 1024
                  margin: 4
              smsSvg:
                summary: SMS QR code as SVG
                value:
                  value: SMSTO:+15551234567:QR smoke test
                  format: svg
                  size: 1024
                  margin: 4
              phoneSvg:
                summary: Phone call QR code as SVG
                value:
                  value: tel:+15551234567
                  format: svg
                  size: 1024
                  margin: 4
              whatsappPng:
                summary: WhatsApp chat QR code as PNG
                value:
                  value: https://wa.me/15551234567?text=QR%20smoke%20test
                  format: png
                  size: 1024
                  margin: 4
              vcardPdf:
                summary: vCard QR code as PDF
                value:
                  value: 'BEGIN:VCARD

                    VERSION:3.0

                    FN:Jordan Smith

                    TEL:+15558675309

                    EMAIL:hello@example.com

                    END:VCARD'
                  format: pdf
                  size: 1024
                  margin: 4
              eventSvg:
                summary: Calendar event QR code as SVG
                value:
                  value: 'BEGIN:VCALENDAR

                    VERSION:2.0

                    BEGIN:VEVENT

                    SUMMARY:Product Demo

                    DTSTART:20300601T100000

                    DTEND:20300601T110000

                    LOCATION:Online

                    URL:https://example.com/demo

                    END:VEVENT

                    END:VCALENDAR'
                  format: svg
                  size: 1024
                  margin: 4
              locationPng:
                summary: Location QR code as PNG
                value:
                  value: geo:37.422,-122.084?q=1600%20Amphitheatre%20Parkway
                  format: png
                  size: 1024
                  margin: 4
              cryptoSvg:
                summary: Bitcoin payment QR code as SVG
                value:
                  value: bitcoin:bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kygt080?amount=0.01
                  format: svg
                  size: 1024
                  margin: 4
              pixEps:
                summary: PIX payment QR code as EPS
                value:
                  value: 00020101021126510014BR.GOV.BCB.PIX0117smoke@example.com0208SMOKE12352040000530398654041.235802BR5910SMOKE TEST6009SAO PAULO62120508SMOKE12363047B22
                  format: eps
                  size: 1024
                  margin: 4
              upiPdf:
                summary: UPI payment QR code as PDF
                value:
                  value: upi://pay?pa=merchant@upi&pn=Merchant&am=10.00&cu=INR&tn=Invoice
                  format: pdf
                  size: 1024
                  margin: 4
              swishPdf:
                summary: Swish payment QR code as PDF
                value:
                  value: C1234567890;125,50;Invoice%20123;0
                  format: pdf
                  size: 1024
                  margin: 4
              sepaPdf:
                summary: SEPA credit transfer QR code as PDF
                value:
                  value: 'BCD

                    002

                    1

                    SCT

                    COBADEFFXXX

                    Smoke Test GmbH

                    DE89370400440532013000

                    EUR49.90


                    INV-2026-001'
                  format: pdf
                  size: 1024
                  margin: 4
              paypalSvg:
                summary: PayPal.Me payment QR code as SVG
                value:
                  value: https://paypal.me/qrcodecrafter/25USD
                  format: svg
                  size: 1024
                  margin: 4
              venmoSvg:
                summary: Venmo profile QR code as SVG
                value:
                  value: https://venmo.com/u/qrcodecrafter
                  format: svg
                  size: 1024
                  margin: 4
              cashAppSvg:
                summary: Cash App $Cashtag QR code as SVG
                value:
                  value: https://cash.app/$qrcodecrafter
                  format: svg
                  size: 1024
                  margin: 4
              promptPaySvg:
                summary: PromptPay payment QR code as SVG
                value:
                  value: 00020101021229370016A000000677010111011300668123456785802TH53037645406125.5063047652
                  format: svg
                  size: 1024
                  margin: 4
              vietQrSvg:
                summary: VietQR bank transfer QR code as SVG
                value:
                  value: 00020101021238560010A0000007270126000697041501121133666688880208QRIBFTTA530370454061500005802VN62100806INV123630421F5
                  format: svg
                  size: 1024
                  margin: 4
              appStoreSvg:
                summary: App Store QR code as SVG
                value:
                  value: https://apps.apple.com/app/id1234567890?pt=123456&ct=qr_campaign&mt=8
                  format: svg
                  size: 1024
                  margin: 4
              socialProfilePng:
                summary: Social profile QR code as PNG
                value:
                  value: https://www.instagram.com/qrcodecrafter
                  format: png
                  size: 1024
                  margin: 4
              brandedLogoPng:
                summary: Branded URL QR code with PNG logo
                value:
                  value: https://example.com/landing
                  format: png
                  size: 1024
                  margin: 4
                  fgColor: '#111111'
                  bgColor: '#ffffff'
                  errorCorrectionLevel: H
                  logo: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII=
      responses:
        '200':
          description: Generated QR code asset encoded as base64
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateQrResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key when key enforcement is enabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests. QR generation uses a cost-weighted per-client budget; honor the retry and rate-limit headers before resubmitting work.
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying the request
              schema:
                type: string
            X-RateLimit-Limit:
              description: Cost budget units available in the current window for this client class
              schema:
                type: string
            X-RateLimit-Remaining:
              description: Cost budget units remaining in the current window
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - .netlify
  /.netlify/functions/generate-verified-qr:
    post:
      summary: Generate and verify a QR code asset
      operationId: generateVerifiedQr
      description: Generate one SVG, PNG, JPG, or WebP asset, perform a structural payload review, assess quiet-zone, contrast, and error-correction settings, decode the final generated file with jsQR, compare payload SHA-256 hashes, and return a bounded evidence-linked receipt. Asset bytes are returned only when final-file decoding matches the requested payload. A decode failure returns HTTP 422 with the full receipt and no asset bytes. The receipt does not include the decoded payload. This is not print, device, ISO, accessibility, malware, or security certification.
      security:
      - AgentApiKey: []
      - {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateVerifiedQrRequest'
            examples:
              productionUrl:
                summary: Generate and verify a production PNG
                value:
                  value: https://example.com/campaign
                  format: png
                  size: 1024
                  margin: 4
                  fgColor: '#111111'
                  bgColor: '#ffffff'
                  errorCorrectionLevel: H
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GenerateVerifiedQrRequest'
      responses:
        '200':
          description: Generated asset whose final-file decode matched the requested payload, plus a bounded verification receipt
          headers:
            X-QR-Verification-Status:
              description: Overall verification workflow status
              schema:
                type: string
                enum:
                - verified
                - verified_with_cautions
            X-QR-Asset-SHA256:
              description: SHA-256 hash of the final generated asset bytes
              schema:
                type: string
                pattern: ^[a-f0-9]{64}$
            X-QR-Bytes:
              description: Exact generated asset byte length
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateVerifiedQrResponse'
            text/html:
              schema:
                type: string
                description: Compact cross-document JSON-LD result without asset bytes
        '400':
          description: Invalid request or non-decodable output format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key when key enforcement is enabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Payload blocked before generation, or final asset failed decode or payload comparison
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/GenerateVerifiedQrBlockedResponse'
                - $ref: '#/components/schemas/GenerateVerifiedQrFailureResponse'
        '429':
          description: Cost budget or verification concurrency limit reached
          headers:
            Retry-After:
              description: Seconds before retrying
              schema:
                type: integer
            X-RateLimit-Limit:
              description: Cost-unit budget for the current window
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Remaining cost units
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Generation or verification pipeline error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - .netlify
  /.netlify/functions/generate-qr-bulk:
    post:
      summary: Generate a ZIP archive of static QR code files
      operationId: generateBulkQr
      description: Create a ZIP archive containing up to 50 static QR code assets plus manifest.csv and manifest.json. Use this for spreadsheet, label, classroom, packaging, and agent batch workflows. The endpoint uses the same QR validation, optional API key, security headers, and cost-weighted rate-limit model as the single-code generator.
      security:
      - AgentApiKey: []
      - {}
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateBulkQrRequest'
            examples:
              csvRows:
                summary: CSV rows into an SVG ZIP
                value:
                  rows: 'filename,value

                    homepage,https://example.com

                    support,mailto:support@example.com'
                  format: svg
                  size: 1024
                  margin: 4
                  fgColor: '#111111'
                  bgColor: '#ffffff'
                  errorCorrectionLevel: H
              objectRows:
                summary: Object rows into a PNG ZIP
                value:
                  rows:
                  - filename: table-1
                    value: https://example.com/menu?table=1
                  - filename: table-2
                    value: https://example.com/menu?table=2
                  format: png
                  size: 1024
                  margin: 4
      responses:
        '200':
          description: Generated ZIP archive returned as JSON or binary ZIP when Accept includes application/zip
          headers:
            X-Bulk-QR-Files:
              description: Number of QR files generated in the ZIP
              schema:
                type: string
            X-Bulk-QR-Bytes:
              description: Exact ZIP byte length
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerateBulkQrResponse'
            application/zip:
              schema:
                type: string
                format: binary
        '400':
          description: Invalid batch request or row data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key when key enforcement is enabled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '405':
          description: Method not allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '413':
          description: Batch request or generated ZIP is too large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Batch cost exceeds the current rate-limit budget or generation is rate limited
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying the request
              schema:
                type: string
            X-RateLimit-Limit:
              description: Cost budget units available in the current window for this client class
              schema:
                type: string
            X-RateLimit-Remaining:
              description: Cost budget units remaining in the current window
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: No QR files could be generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - .netlify
components:
  schemas:
    QrVerificationReceipt:
      type: object
      required:
      - version
      - status
      - productionReady
      - verifiedAt
      - payload
      - decode
      - productionChecks
      - cautions
      - evidence
      - limitation
      properties:
        version:
          type: string
          enum:
          - '1.0'
        status:
          type: string
          enum:
          - verified
          - verified_with_cautions
          - not_detected
          - mismatch
        productionReady:
          type: boolean
          description: True only when the final asset decodes to the requested payload and every bounded workflow check passes without caution.
        verifiedAt:
          type: string
          format: date-time
        payload:
          $ref: '#/components/schemas/QrSafePayloadReview'
        decode:
          type: object
          required:
          - decoder
          - status
          - requestedPayloadSha256
          - payloadHashMatch
          properties:
            decoder:
              type: string
              enum:
              - jsQR 1.4.0
            status:
              type: string
              enum:
              - exact_match
              - normalized_match
              - not_detected
              - mismatch
            requestedPayloadSha256:
              type: string
              pattern: ^[a-f0-9]{64}$
            decodedPayloadSha256:
              type:
              - string
              - 'null'
              pattern: ^[a-f0-9]{64}$
            payloadHashMatch:
              type: boolean
        productionChecks:
          $ref: '#/components/schemas/QrProductionChecks'
        cautions:
          type: array
          items:
            type: string
        evidence:
          type: object
          required:
          - readabilityLab
          - methodology
          - release
          properties:
            readabilityLab:
              type: string
              format: uri
            methodology:
              type: string
              format: uri
            release:
              type: string
              format: uri
        limitation:
          type: string
          description: Explicitly states that one software decoder and rendering pipeline do not provide print, device, ISO, accessibility, malware, or security certification.
    BulkQrManifestRow:
      type: object
      properties:
        filename:
          type: string
          example: homepage.svg
        value:
          type: string
          example: https://example.com
        format:
          type: string
          enum:
          - svg
          - png
          - jpg
          - webp
          - pdf
          - eps
        status:
          type: string
          enum:
          - generated
          - failed
        bytes:
          type:
          - integer
          - 'null'
        message:
          type: string
    Error:
      type: object
      properties:
        success:
          type: boolean
          default: false
        error:
          type: string
    GenerateQrRequest:
      type: object
      required:
      - value
      x-agent-supported-content-types:
      - url
      - appstore
      - social
      - text
      - wifi
      - email
      - sms
      - phone
      - whatsapp
      - vcard
      - event
      - location
      - crypto
      - pix
      - upi
      - phonepe
      - swish
      - sepa
      - ideal
      - mobilepayvipps
      - qris
      - paypal
      - venmo
      - cashapp
      - promptpay
      - vietqr
      - swissqr
      x-agent-rate-limit:
        model: cost-weighted per client
        windowSeconds: 60
        defaultBudgetUnits: 180
        authenticatedBudgetUnits: 600
        retryHeaders:
        - Retry-After
        - X-RateLimit-Limit
        - X-RateLimit-Remaining
        costUnits:
          svg: 1
          png: 3
          jpg: 4
          webp: 4
          pdf: 6
          eps: 3
          logo: 4
          sizeOver2048: 2
          sizeOver3072: 4
        guidance: Prefer SVG for high-volume tests, throttle batch jobs, and honor Retry-After before retrying 429 or 503 responses.
      x-agent-payload-patterns:
        url: https://example.com/path?utm_source=qr&utm_medium=print
        appstore: https://apps.apple.com/app/id1234567890
        social: https://www.instagram.com/qrcodecrafter
        text: Short public text only
        wifi: WIFI:T:WPA;S:Network Name;P:Password;H:false;;
        email: mailto:hello@example.com?subject=Subject&body=Message
        sms: SMSTO:+15551234567:Message
        phone: tel:+15551234567
        whatsapp: https://wa.me/15551234567?text=Message
        vcard: BEGIN:VCARD\nVERSION:3.0\nFN:Name\nTEL:+15551234567\nEMAIL:hello@example.com\nEND:VCARD
        event: BEGIN:VCALENDAR\nVERSION:2.0\nBEGIN:VEVENT\nSUMMARY:Event\nDTSTART:20300601T100000\nEND:VEVENT\nEND:VCALENDAR
        location: geo:37.422,-122.084?q=1600%20Amphitheatre%20Parkway
        crypto: bitcoin:bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kygt080?amount=0.01
        pix: 00020101021126510014BR.GOV.BCB.PIX0117smoke@example.com0208SMOKE12352040000530398654041.235802BR5910SMOKE TEST6009SAO PAULO62120508SMOKE12363047B22
        upi: upi://pay?pa=merchant@upi&pn=Merchant&am=10.00&cu=INR
        phonepe: upi://pay?pa=phonepe-merchant@upi&pn=PhonePe%20Merchant&am=10.00&cu=INR&tn=Invoice
        swish: C1234567890;125,50;Invoice%20123;0
        sepa: BCD\n002\n1\nSCT\nCOBADEFFXXX\nSmoke Test GmbH\nDE89370400440532013000\nEUR49.90\n\nINV-2026-001
        ideal: https://pay.example.nl/ideal/invoice-2026-001
        mobilepayvipps: https://pay.example.com/mobilepay-vipps/invoice-2026-001
        qris: https://merchant.example.co.id/qris/invoice-2026-001
        paypal: https://paypal.me/qrcodecrafter/25USD
        venmo: https://venmo.com/u/qrcodecrafter
        cashapp: https://cash.app/$qrcodecrafter
        promptpay: 00020101021229370016A000000677010111011300668123456785802TH53037645406125.5063047652
        vietqr: 00020101021238560010A0000007270126000697041501121133666688880208QRIBFTTA530370454061500005802VN62100806INV123630421F5
        swissqr: SPC\n0200\n1\nCH9300762011623852957\nS\nRobert Schneider AG\nRue du Lac\n1268\n2501\nBiel\nCH\n\n\n\n\n\n\n\n199.95\nCHF\n\n\n\n\n\n\n\nNON\n\nInvoice 2026-001\nEPD\n\n\n
      x-agent-recipes:
        url:
          label: Campaign landing page
          bestFormats:
          - svg
          - pdf
          - png
          request:
            value: https://example.com/path?utm_source=qr&utm_medium=print&utm_campaign=spring
            format: svg
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
            errorCorrectionLevel: H
        appstore:
          label: App download page
          bestFormats:
          - svg
          - png
          - pdf
          request:
            value: https://apps.apple.com/app/id1234567890?pt=123456&ct=qr_campaign&mt=8
            format: svg
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
            errorCorrectionLevel: H
        social:
          label: Social profile
          bestFormats:
          - png
          - svg
          - webp
          request:
            value: https://www.instagram.com/qrcodecrafter
            format: png
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
            errorCorrectionLevel: H
        text:
          label: Public text note
          bestFormats:
          - png
          - svg
          - webp
          request:
            value: 'Order #A-12345 | Table 7 | Save 15% with code QR15.'
            format: png
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
            errorCorrectionLevel: H
        wifi:
          label: Guest Wi-Fi login
          bestFormats:
          - svg
          - png
          - pdf
          request:
            value: WIFI:T:WPA;S:Guest Network;P:Welcome123;H:false;;
            format: svg
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
            errorCorrectionLevel: H
        email:
          label: Prefilled email action
          bestFormats:
          - svg
          - png
          - jpg
          request:
            value: mailto:support@example.com?subject=QR%20support&body=Please%20contact%20me
            format: svg
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
            errorCorrectionLevel: H
        sms:
          label: Prefilled SMS action
          bestFormats:
          - svg
          - png
          - jpg
          request:
            value: SMSTO:+15551234567:QR smoke test
            format: svg
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
            errorCorrectionLevel: H
        phone:
          label: Tap-to-call phone number
          bestFormats:
          - svg
          - png
          - jpg
          request:
            value: tel:+15551234567
            format: svg
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
            errorCorrectionLevel: H
        whatsapp:
          label: WhatsApp chat link
          bestFormats:
          - png
          - svg
          - webp
          request:
            value: https://wa.me/15551234567?text=QR%20smoke%20test
            format: png
            size: 1024
            margin: 4
            fgColor: '#111111'
            bgColor: '#ffffff'
       

# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/qr-code-crafter/refs/heads/main/openapi/qr-code-crafter-netlify-api-openapi.yml