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
| Parameter | Type | Description |
|---|---|---|
| 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
| Parameter | Type | Description |
|---|---|---|
| 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
| Parameter | Description |
|---|---|
| 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
| Parameter | Type | Description |
|---|---|---|
| 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
| Parameter | Type | Description |
|---|---|---|
| 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
| Parameter | Type | Description |
|---|---|---|
| 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)