Sandbox Environment
Test the EUlabel API with pre-populated sample data in the sandbox.
The sandbox environment lets you experiment with the API without affecting production data.
Sandbox data is reset periodically. Do not rely on it for persistent storage or integration tests that require stable identifiers.
At a glance
- Base URL:
https://sandbox.api.eulabel.eu/v1 - Keys:
sk_test_... - Best for: building the integration flow before you touch production.
Sandbox endpoint
https://sandbox.api.eulabel.eu/v1Use sandbox API keys (prefixed with sk_test_) to authenticate.
Pre-populated test data
The sandbox includes sample products ready to use:
Mateus Rosé
GTIN 5601012011050 (wine) — great for quick end-to-end tests
Sandeman Porto Tawny
GTIN 5601012012200 (wine) — good for passport retrieval and QR testing
Gazela Vinho Verde
GTIN 5601012013900 (wine) — useful for validation + link resolution
Sandbox vs Production
| Feature | Sandbox | Production |
|---|---|---|
| API key prefix | sk_test_ | sk_live_ |
| Data persistence | Reset periodically | Permanent |
| Rate limits | Relaxed | Standard |
| QR codes | Not scannable | Live resolution |
| Webhooks | Test deliveries | Real deliveries |
Getting a sandbox API key
Log in to the EUlabel Dashboard.
Navigate to Settings > API Keys.
Click Create Key and select the Sandbox environment.
Copy the key -- it is only shown once.
Testing with the sandbox
export EULABEL_API_KEY="sk_test_..."
# List pre-populated products
curl https://sandbox.api.eulabel.eu/v1/products \
-H "Authorization: Bearer $EULABEL_API_KEY"
# Create a test product
curl -X POST https://sandbox.api.eulabel.eu/v1/products \
-H "Authorization: Bearer $EULABEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Test Wine","category":"wine","brand":"TestBrand","gtin":"4006381333931"}'const EULABEL_API_KEY = process.env.EULABEL_API_KEY;
const BASE = 'https://sandbox.api.eulabel.eu/v1';
// List pre-populated products
const products = await fetch(`${BASE}/products`, {
headers: { 'Authorization': `Bearer ${EULABEL_API_KEY}` },
}).then(r => r.json());
// Create a test product
const newProduct = await fetch(`${BASE}/products`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${EULABEL_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Test Wine',
category: 'wine',
brand: 'TestBrand',
gtin: '4006381333931',
}),
}).then(r => r.json());