Sipcode API

Programmatic QR code creation and management

Authentication

All API requests require an API key passed via the X-API-Key header.

curl -H "X-API-Key: YOUR_API_KEY" https://betabox.esoup.net/api/qr

Don't have a key? Get a free API key (14-day trial, renewable).

Endpoints

POST /api/qr Create a new QR code
Request Body
ParameterTypeDescription
url required string The destination URL for the QR code
description optional string A description for your reference
Example Request
curl -X POST https://betabox.esoup.net/api/qr \ -H "X-API-Key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com", "description": "My QR"}'
Response
{ "success": true, "qr": { "id": "abc123", "secretId": "uuid-for-editing", "url": "https://example.com", "qrUrl": "https://betabox.esoup.net/qr/abc123", "editUrl": "https://betabox.esoup.net/edit/uuid", "imageUrl": "https://betabox.esoup.net/api/qr/abc123/image" } }
GET /api/qr List your QR codes
Query Parameters
ParameterTypeDescription
limit optional number Max results (default 100)
offset optional number Skip first N results
Response
{ "success": true, "count": 5, "qrCodes": [ { "id": "abc123", "url": "...", "scans": 42, ... } ] }
GET /api/qr/:id Get QR code details
Path Parameters
ParameterDescription
id The QR code ID (short or UUID)
Response
{ "success": true, "qr": { "id": "abc123", "url": "https://example.com", "scans": 42, "createdAt": "2026-01-18T..." } }
PUT /api/qr/:id Update QR destination
Request Body
ParameterTypeDescription
url required string New destination URL
Example
curl -X PUT https://betabox.esoup.net/api/qr/abc123 \ -H "X-API-Key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"url": "https://new-destination.com"}'
DELETE /api/qr/:id Delete a QR code

Permanently deletes the QR code. The short URL will return 404 after deletion.

Example
curl -X DELETE https://betabox.esoup.net/api/qr/abc123 \ -H "X-API-Key: YOUR_KEY"
GET /api/qr/:id/stats Get scan statistics
Response
{ "success": true, "stats": { "totalScans": 42, "lastScan": "2026-01-18T...", "createdAt": "2026-01-15T..." } }
GET /api/qr/:id/image Get QR code image (PNG)
Query Parameters
ParameterTypeDescription
size optional number Image size in pixels (50-1000, default 200)
fg optional string Foreground color (hex, e.g., "000000")
bg optional string Background color (hex, e.g., "ffffff")
Example
https://betabox.esoup.net/api/qr/abc123/image?size=400&fg=4f46e5&bg=ffffff

Returns a PNG image. No API key required for public QR codes.

Registration

POST /api/register Request an API key

Sends a verification email with a link to activate your API key.

Request Body
ParameterTypeDescription
email required string Your email address
Example
curl -X POST https://betabox.esoup.net/api/register \ -H "Content-Type: application/json" \ -d '{"email": "you@example.com"}'

Error Responses

{ "error": "Description of what went wrong" }

Common HTTP status codes: 400 (bad request), 401 (unauthorized), 404 (not found), 429 (rate limited)