Developers
Personalised laser products, over a REST API
Connect your own store, a marketplace or an internal system to our workshop. Create designs, get exact quotes, place orders and follow them with webhooks.
The API opens after our Shopify launch. Ask for early access and tell us what you’re building.
What you can do
Everything you need to sell personalised products
Read the catalogue
Templates, materials, sizes, fonts and prices in your currency, with every text in five languages.
Create designs
Upload customer photos, send the field values and get back a design with a preview image. We check photo resolution for you.
Get exact quotes
Items, shipping and VAT for any destination, computed by the same code that charges the order.
Place and track orders
One request per order, paid from your prepaid balance. Follow its status and cancel it while that’s still possible.
Webhooks at every step
Created, on hold, in production, shipped, delivered, plus low-balance alerts. Every webhook is signed with HMAC-SHA256.
Check your balance
Your balance and its full history, so your books always match ours.
Example
One request places an order
The order is paid from your balance. The response gives you our order number and its status, and webhooks follow from there.
curl https://api.staging.gravilo.eu/v1/orders \
-H "Authorization: Bearer gvl_live_…" \
-H "Idempotency-Key: 7d0f9a52-order-1042" \
-H "Content-Type: application/json" \
-d '{
"external_id": "1042",
"customer_locale": "de",
"ship_to": {
"name": "Lena Schmidt",
"line1": "Lindenstraße 12",
"postal_code": "10969",
"city": "Berlin",
"country": "DE"
},
"items": [
{ "design_id": "0192a5c4-7b1e-7c3d-9f00-5d1e2a3b4c5d", "quantity": 2 }
]
}'HTTP/1.1 201 Created
{
"id": "0192a5c4-8f02-7a11-b3c0-1e9d4c7a2b60",
"number": "GV-001042",
"external_id": "1042",
"is_test": false,
"status": "received",
"hold_reason": null,
"billing_status": "charged",
"placed_at": "2026-10-08T09:41:00Z"
}Built to integrate
Predictable, testable, documented
Test mode
Test keys validate and price orders without charging or producing anything.
Safe retries
Send an Idempotency-Key with every POST. The same request never creates two orders.
OpenAPI 3.1
A machine-readable spec and reference docs, generated from the schemas the API validates with.
Clear errors
Problem details (RFC 9457) with stable codes and the exact field that needs fixing.
Ready to start?
Start with the Shopify app, or connect your own system through the API.