gen-plate.com API
License plate generation API. JSON over HTTPS.
Keys are issued in gw_<48hex> format.
Overview
https://gen-plate.com/v1application/json for all POST requestsAuthentication
Every request (except /health) requires an API key.
Two header forms are accepted:
Authorization: Bearer gw_<48hex>
X-API-Key: gw_<48hex>
Each key is bound to a plan and (optionally) an IP allowlist.
The plan determines per-minute, per-day and burst quotas.
Call GET /v1/me to see the exact limits for your key.
Response format
All responses share a single envelope:
{"success": true, "data": { ... }}
{"success": false, "error": "..."}
Errors
| Code | Meaning |
|---|---|
| 400 | Invalid request (e.g. missing required field) |
| 401 | Missing or invalid API key |
| 403 | Key disabled or IP not allowed |
| 404 | Unknown path |
| 413 | Body larger than 100 MB |
| 429 | Plan limit exceeded (rate / daily / burst) |
| 5xx | Upstream error — see error field for details |
Meta
GET /v1/health no auth
Liveness probe.
Response
{"status":"ok"}
GET /v1/me auth
Information about the current key: name, plan, limits, usage.
Response
{
"success": true,
"data": {
"name": "your-account",
"enabled": true,
"limits": { "rate": 60, "daily": 1000, "burst": 10 },
"usage": { "today": 0, "total": 0 }
}
}
For numeric limit fields, 0 means no cap.
GET /v1/usage auth
Daily usage breakdown for the current key.
Plates
License plate generation. Supported countries:
at, be, bg, ch, de, dk, fin, fr, it, pl, tr, uk.
GET /v1/plates/countries auth
Response
{
"success": true,
"data": {
"countries": ["at","be","bg","ch","de","dk","fin","fr","it","pl","tr","uk"]
}
}
POST /v1/plates/{country}/generate auth
Generate a license plate. The request body is forwarded to the plate engine as-is.
Path parameters
| Name | Type | Description |
|---|---|---|
country | string | ISO code, lowercase. See list above. |
Body (minimum)
{
"plate": "B AB 1234",
"size": "520x110"
}
Exact field set depends on the country. Optional fields include background/text color, font, padding, design version, etc.
Response
{
"success": true,
"data": { ... plate engine response ... }
}
Errors
- 400 —
unsupported country: xx
POST /v1/plates/{country}/side2 auth
Generate the second side of a plate (where the country supports it).
Examples — curl
KEY=gw_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
curl https://gen-plate.com/v1/me \
-H "Authorization: Bearer $KEY"
curl https://gen-plate.com/v1/plates/countries \
-H "Authorization: Bearer $KEY"
curl -X POST https://gen-plate.com/v1/plates/at/generate \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"plate":"W 12345 A"}'
curl -X POST https://gen-plate.com/v1/plates/de/side2 \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"plate":"B AB 1234"}'
Examples — Python
import requests
KEY = "gw_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
BASE = "https://gen-plate.com/v1"
H = {"Authorization": f"Bearer {KEY}"}
# 1) who am I
print(requests.get(f"{BASE}/me", headers=H).json())
# 2) supported countries
print(requests.get(f"{BASE}/plates/countries", headers=H).json())
# 3) German plate (front)
r = requests.post(
f"{BASE}/plates/de/generate",
headers=H,
json={"plate": "B AB 1234", "size": "520x110"},
)
print(r.json())
# 4) second side
r = requests.post(
f"{BASE}/plates/de/side2",
headers=H,
json={"plate": "B AB 1234"},
)
print(r.json())
© gen-plate.com