{
  "x402Version": 2,
  "id": 32273,
  "slug": "32273",
  "resource": "https://workbot1.oddsys.org/qr",
  "description": "Generate a QR code from text as PNG (base64) or SVG. Custom module size, quiet-zone margin, and hex colours. Deterministic, capacity-capped at 2953 bytes. Set delivery to \"url\" to receive a short-lived download link instead of inline data.",
  "type": "http",
  "serviceName": "Busker QR Generator",
  "resourceType": "Utilities",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0x15459498e1191d8787c83177809bd54022fA18c4",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "5000",
      "amountUsd": 0.005,
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "body": {
      "dataBase64": "string (png, inline delivery) | absent",
      "downloadsRemaining": "number (url delivery)",
      "expiresAt": "string (url delivery)",
      "format": "string",
      "meta": {
        "inputBytes": "number",
        "margin": "number",
        "modules": "number",
        "pixels": "number",
        "scale": "number"
      },
      "svg": "string (svg, inline delivery) | absent",
      "url": "string (url delivery) — expiring download link"
    },
    "bodyType": "json",
    "example": {
      "dataBase64": "iVBORw0KGgoAAAANSUhEUgAA…",
      "format": "png",
      "meta": {
        "dark": "#000000",
        "errorCorrection": "M",
        "inputBytes": 23,
        "light": "#ffffff",
        "margin": 2,
        "modules": 25,
        "outputBytes": 412,
        "pixels": 116,
        "scale": 4
      }
    }
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "dark": "#000000",
            "format": "png",
            "light": "#ffffff",
            "margin": 2,
            "scale": 4,
            "text": "https://example.com"
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "body": {
            "dataBase64": "string (png, inline delivery) | absent",
            "downloadsRemaining": "number (url delivery)",
            "expiresAt": "string (url delivery)",
            "format": "string",
            "meta": {
              "inputBytes": "number",
              "margin": "number",
              "modules": "number",
              "pixels": "number",
              "scale": "number"
            },
            "svg": "string (svg, inline delivery) | absent",
            "url": "string (url delivery) — expiring download link"
          },
          "bodyType": "json",
          "example": {
            "dataBase64": "iVBORw0KGgoAAAANSUhEUgAA…",
            "format": "png",
            "meta": {
              "dark": "#000000",
              "errorCorrection": "M",
              "inputBytes": 23,
              "light": "#ffffff",
              "margin": 2,
              "modules": 25,
              "outputBytes": 412,
              "pixels": 116,
              "scale": 4
            }
          }
        }
      },
      "routeTemplate": "/qr",
      "schema": {
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "additionalProperties": false,
                "properties": {
                  "dark": {
                    "description": "Hex colour of the data modules (default #000000).",
                    "type": "string"
                  },
                  "delivery": {
                    "description": "inline (default) = data in the response body; url = a short-lived download link (expires after ~15 min or a small download budget) — hand it to a user or client script instead of carrying the bytes.",
                    "enum": [
                      "inline",
                      "url"
                    ],
                    "type": "string"
                  },
                  "downloads": {
                    "description": "url delivery only: download budget before the link dies (1-3, default 2).",
                    "type": "number"
                  },
                  "format": {
                    "description": "Output format (default png).",
                    "enum": [
                      "png",
                      "svg"
                    ],
                    "type": "string"
                  },
                  "light": {
                    "description": "Hex colour of the background (default #ffffff).",
                    "type": "string"
                  },
                  "margin": {
                    "description": "Quiet-zone width in modules (0-16, default 2).",
                    "type": "number"
                  },
                  "scale": {
                    "description": "Pixels per QR module, PNG only (1-20, default 4).",
                    "type": "number"
                  },
                  "text": {
                    "description": "Content to encode (max 2953 bytes utf8 — QR capacity).",
                    "type": "string"
                  }
                },
                "required": [
                  "text"
                ],
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "type": "object"
          }
        }
      }
    }
  },
  "tags": [
    "qr",
    "qrcode",
    "image",
    "png",
    "svg",
    "bazaar"
  ],
  "sourceHost": "workbot1.oddsys.org",
  "lastUpdated": "2026-10-08T21:31:29.169Z",
  "quality": {
    "calls30d": 4,
    "uniquePayers30d": 3,
    "lastCalledAt": "2026-10-08T21:31:27.977Z"
  },
  "metadata": {
    "serviceName": "Busker QR Generator",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "dark": "#000000",
              "format": "png",
              "light": "#ffffff",
              "margin": 2,
              "scale": 4,
              "text": "https://example.com"
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "body": {
              "dataBase64": "string (png, inline delivery) | absent",
              "downloadsRemaining": "number (url delivery)",
              "expiresAt": "string (url delivery)",
              "format": "string",
              "meta": {
                "inputBytes": "number",
                "margin": "number",
                "modules": "number",
                "pixels": "number",
                "scale": "number"
              },
              "svg": "string (svg, inline delivery) | absent",
              "url": "string (url delivery) — expiring download link"
            },
            "bodyType": "json",
            "example": {
              "dataBase64": "iVBORw0KGgoAAAANSUhEUgAA…",
              "format": "png",
              "meta": {
                "dark": "#000000",
                "errorCorrection": "M",
                "inputBytes": 23,
                "light": "#ffffff",
                "margin": 2,
                "modules": 25,
                "outputBytes": 412,
                "pixels": 116,
                "scale": 4
              }
            }
          }
        },
        "routeTemplate": "/qr",
        "schema": {
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "additionalProperties": false,
                  "properties": {
                    "dark": {
                      "description": "Hex colour of the data modules (default #000000).",
                      "type": "string"
                    },
                    "delivery": {
                      "description": "inline (default) = data in the response body; url = a short-lived download link (expires after ~15 min or a small download budget) — hand it to a user or client script instead of carrying the bytes.",
                      "enum": [
                        "inline",
                        "url"
                      ],
                      "type": "string"
                    },
                    "downloads": {
                      "description": "url delivery only: download budget before the link dies (1-3, default 2).",
                      "type": "number"
                    },
                    "format": {
                      "description": "Output format (default png).",
                      "enum": [
                        "png",
                        "svg"
                      ],
                      "type": "string"
                    },
                    "light": {
                      "description": "Hex colour of the background (default #ffffff).",
                      "type": "string"
                    },
                    "margin": {
                      "description": "Quiet-zone width in modules (0-16, default 2).",
                      "type": "number"
                    },
                    "scale": {
                      "description": "Pixels per QR module, PNG only (1-20, default 4).",
                      "type": "number"
                    },
                    "text": {
                      "description": "Content to encode (max 2953 bytes utf8 — QR capacity).",
                      "type": "string"
                    }
                  },
                  "required": [
                    "text"
                  ],
                  "type": "object"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "type": "object"
            }
          }
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "workbot1.oddsys.org",
    "manifest_name": "workbot1.oddsys.org",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "dataBase64": "iVBORw0KGgoAAAANSUhEUgAA…",
    "format": "png",
    "meta": {
      "dark": "#000000",
      "errorCorrection": "M",
      "inputBytes": 23,
      "light": "#ffffff",
      "margin": 2,
      "modules": 25,
      "outputBytes": 412,
      "pixels": 116,
      "scale": 4
    }
  }
}