# QR Code with Logo API
> Generate branded QR codes with a centre logo overlay, custom foreground and background colors, chosen size and error-correction level, as PNG or SVG. When a logo is supplied the error-correction level is raised automatically so the code stays scannable, and the logo is placed on a rounded white plate in the centre. Includes one-call helpers that build the correct payload for you: a Wi-Fi-join QR (SSID, password, encryption, hidden), a vCard contact QR (name, phone, email, organisation, title, URL, address) and a batch endpoint that returns up to 100 QR codes in a single request. Supply a logo by public URL, base64 or a raw binary body; receive results as base64 PNG/SVG JSON or, with raw=1, the raw image bytes. Pure server-side rendering (qrcode + sharp), no third-party upstream. Ideal for marketing and packaging, business cards and events, restaurant menus, Wi-Fi sharing and app onboarding.

## 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/qrlogo-api/..."
```

## Pricing
- **Free** (Free) — 11,000 calls/Mo, 2 req/s
- **Basic** ($7/Mo) — 130,000 calls/Mo, 6 req/s
- **Pro** ($20/Mo) — 950,000 calls/Mo, 16 req/s
- **Mega** ($53/Mo) — 4,800,000 calls/Mo, 45 req/s

## Endpoints

### QR

#### `GET /v1/batch` — Up to 100 QR codes at once

**Parameters:**
- `items` (query, required, string) — Array or comma/newline list of strings Example: `a,b,c`
- `size` (query, optional, string) — Size Example: `512`
- `ecc` (query, optional, string) — L|M|Q|H Example: `M`
- `fg` (query, optional, string) — Foreground hex Example: `#000000`
- `bg` (query, optional, string) — Background hex Example: `#ffffff`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qrlogo-api/v1/batch?items=a%2Cb%2Cc&size=512&ecc=M&fg=%23000000&bg=%23ffffff"
```

#### `GET /v1/generate` — Branded QR code (with optional logo)

**Parameters:**
- `data` (query, required, string) — Text or URL to encode Example: `https://oanor.com`
- `size` (query, optional, string) — 64..2000 Example: `512`
- `margin` (query, optional, string) — Quiet-zone modules Example: `2`
- `ecc` (query, optional, string) — L|M|Q|H Example: `H`
- `fg` (query, optional, string) — Foreground hex Example: `#1a3d7c`
- `bg` (query, optional, string) — Background hex Example: `#ffffff`
- `format` (query, optional, string) — png|svg Example: `png`
- `logo_url` (query, optional, string) — Logo image URL
- `logo_base64` (query, optional, string) — Logo base64
- `logo_size` (query, optional, string) — Logo size 5..30 % Example: `22`
- `raw` (query, optional, string) — raw=1 for image bytes

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qrlogo-api/v1/generate?data=https%3A%2F%2Foanor.com&size=512&margin=2&ecc=H&fg=%231a3d7c&bg=%23ffffff&format=png&logo_size=22"
```

#### `GET /v1/vcard` — vCard contact QR code

**Parameters:**
- `name` (query, required, string) — Full name Example: `Jane Doe`
- `phone` (query, optional, string) — Phone Example: `+15550001234`
- `email` (query, optional, string) — Email Example: `jane@example.com`
- `org` (query, optional, string) — Organisation Example: `Acme`
- `title` (query, optional, string) — Job title Example: `CEO`
- `url` (query, optional, string) — Website
- `address` (query, optional, string) — Address
- `raw` (query, optional, string) — raw=1

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qrlogo-api/v1/vcard?name=Jane+Doe&phone=%2B15550001234&email=jane%40example.com&org=Acme&title=CEO"
```

#### `GET /v1/wifi` — Wi-Fi join QR code

**Parameters:**
- `ssid` (query, required, string) — Network name Example: `MyCafe`
- `password` (query, optional, string) — Password Example: `secret123`
- `encryption` (query, optional, string) — WPA|WEP|nopass Example: `WPA`
- `hidden` (query, optional, string) — Hidden network Example: `false`
- `size` (query, optional, string) — Size Example: `512`
- `raw` (query, optional, string) — raw=1

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/qrlogo-api/v1/wifi?ssid=MyCafe&password=secret123&encryption=WPA&hidden=false&size=512"
```


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