Documentation
https://vinket.eu/api/v1All requests require a kos_live_* API key in the Authorization header. Keys are managed in your developer dashboard.
Authorization: Bearer kos_live_YOUR_KEYAll requests require a kos_live_* API key in the Authorization header. Keys are managed in your developer dashboard.
Authorization: Bearer kos_live_YOUR_KEYStart free — 10 DPP/carbon API calls/month
Self-serve trial key — no sales call. Business email required.
1. Create a Digital Product Passport
curl -X POST https://vinket.eu/api/v1/dpp \
-H "Authorization: Bearer kos_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"item_id": "item_uuid",
"batch": "SS-2026-001",
"materials": [{"name": "cotton", "pct": 80}, {"name": "polyester", "pct": 20}],
"origin": "IT",
"carbon_g": 1840
}'No SDK package yet — use fetch directly.
// No SDK package yet — use fetch directly
const KADMILOS_KEY = process.env.KADMILOS_API_KEY
async function createDPP(itemId: string, data: object) {
const res = await fetch('https://vinket.eu/api/v1/dpp', {
method: 'POST',
headers: {
'Authorization': `Bearer ${KADMILOS_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ item_id: itemId, ...data }),
})
return res.json()
}Retrieve a passport by ID, then list all passports for your account.
GET /api/v1/dpp/:id · GET /api/v1/dpp
Soft quota: responses may include X-Quota-Warning at ≥80% usage before hard 429.
curl https://vinket.eu/api/v1/dpp/DPP_ID \
-H "Authorization: Bearer kos_live_YOUR_KEY"
curl https://vinket.eu/api/v1/dpp \
-H "Authorization: Bearer kos_live_YOUR_KEY"Thin seat invite (no Stripe seats). Session-authed owners call the invite API — same opaque-token + email pattern as supplier invite_token. Teammate lands on the trial form above and provisions their own key.
POST /api/kadmilos/team/invite · body: { email }
curl -X POST https://www.vinket.eu/api/kadmilos/team/invite \
-H "Cookie: <session>" \
-H "Content-Type: application/json" \
-d '{ "email": "teammate@brand.com" }'