# QR Code API
> Generate QR codes on demand as a base64 PNG, an SVG, or a raw embeddable image. Customise size, quiet-zone margin, error-correction level and foreground/background colors. Encode URLs, text, Wi-Fi, vCards and more.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/qr-api/..."
```

## Pricing
- **Free** (Free) — 2,000 calls/Mo, 2 req/s
- **Basic** ($6/Mo) — 75,000 calls/Mo, 10 req/s
- **Pro** ($18/Mo) — 400,000 calls/Mo, 35 req/s
- **Mega** ($44/Mo) — 2,500,000 calls/Mo, 120 req/s

## Endpoints

### QR

#### `GET /v1/generate` — QR as base64 PNG / SVG (JSON)

**Parameters:**
- `data` (query, required, string) — Text/URL to encode (max 2000 chars) Example: `https://oanor.com`
- `size` (query, optional, integer) — PNG width in px (50-1000) Example: `400`
- `margin` (query, optional, integer) — Quiet-zone modules (0-20) Example: `4`
- `ec` (query, optional, string) — Error correction L|M|Q|H Example: `M`
- `color` (query, optional, string) — Foreground hex Example: `000000`
- `bgcolor` (query, optional, string) — Background hex Example: `ffffff`
- `format` (query, optional, string) — png or svg Example: `png`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qr-api/v1/generate?data=https%3A%2F%2Foanor.com&size=400&margin=4&ec=M&color=000000&bgcolor=ffffff&format=png"
```

**Response:**
```json
{
    "data": {
        "data": "https://oanor.com",
        "size": 400,
        "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAAAAklEQVR4AewaftIAAAhzSURBVO3BQXIlVm4EwAKC979yWUtvNIoH9/eQYmZO/xIAeLQBgIMNABxsAOBgAwAHGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHGwA42ADAwQYADjYAcPCVf4GZCX9W23zSzOST2ubFzOTT2ubFzORF23zSzIQ/q21+sg0AHGwA4GADAAcbADjYAMDBBgAONgBwsAGAgw0AHGwA4GADAAdf+YXa5reZmXwnbfNiZvLTzUw+aWbyom0+qW1+m5nJb7IBgIMNABxsAOBgAwAHGwA42ADAwQYADjYAcLABgIMNABxsAODgK/yjmcl30zbfyczkRdu8aJufrm1ezEx+k5nJd9M2/L0NABxsAOBgAwAHGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHX4H/gpnJJ7XNi7b5tJnJi7aB72wDAAcbADjYAMDBBgAONgBwsAGAgw0AHGwA4GADAAcbADjYAMDBV+AHaJtPmpm8apsXbfNJM5MXbQP/FxsAONgAwMEGAA42AHCwAYCDDQAcbADgYAMABxsAONgAwMEGAA42AHDwFf5R28D/t5nJb9I2/CwbADjYAMDBBgAONgBwsAGAgw0AHGwA4GADAAcbADjYAMDBBgAOvvILzUz472qbFzOTF23z3cxMXrTNi5nJdzIz4d9tAwAHGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHGwA42ADAwVf+BdqGf7e2eTEzedE2/GdtA//bBgAONgBwsAGAgw0AHGwA4GADAAcbADjYAMDBBgAONgBwsAGAg6/8C8xMXrTNi5nJb9M2L9qG/6xtPqltPmlm8tu0DX9vAwAHGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHGwA42ADAwfQv+eFmJt9J23zazORF27yYmbxomxczE/6ztnkxM3nRNp80M3nRNt/NzORF2/wmGwA42ADAwQYADjYAcLABgIMNABxsAOBgAwAHGwA42ADAwQYADqZ/yS8zM3nRNi9mJi/a5tNmJi/a5sXM5JPa5sXM5EXbvJqZ/GRt82Jm8tO1zYuZySe1zU+2AYCDDQAcbADgYAMABxsAONgAwMEGAA42AHCwAYCDDQAcbADg4Cv8cW3zYmbyaW3D35uZfFrbfCczk5+ubT6pbV7MTH6TDQAcbADgYAMABx
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/image` — QR as a raw PNG image

**Parameters:**
- `data` (query, required, string) — Text/URL to encode (max 2000 chars) Example: `https://oanor.com`
- `size` (query, optional, integer) — PNG width in px (50-1000) Example: `400`
- `margin` (query, optional, integer) — Quiet-zone modules (0-20) Example: `4`
- `ec` (query, optional, string) — Error correction L|M|Q|H Example: `M`
- `color` (query, optional, string) — Foreground hex Example: `000000`
- `bgcolor` (query, optional, string) — Background hex Example: `ffffff`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qr-api/v1/image?data=https%3A%2F%2Foanor.com&size=400&margin=4&ec=M&color=000000&bgcolor=ffffff"
```


---
Marketplace page: https://www.oanor.com/api/qr-api
OpenAPI spec: https://www.oanor.com/api/qr-api/openapi.json
