Chargement...
Chargement...
Public OpenAPI 3.1 specification — endpoints, schemas, examples.
Every request must include your API key. Two accepted headers:
# Option 1 — X-API-Key header
curl https://www.tevaxia.lu/api/v1/estimation \
-H "X-API-Key: tvx_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"commune":"Luxembourg","surface":90}'
# Option 2 — Authorization Bearer
curl https://www.tevaxia.lu/api/v1/estimation \
-H "Authorization: Bearer tvx_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"commune":"Luxembourg","surface":90}'Manage your API keys from /profil/api (create, revoke, 30-day usage tracking).
Use the public sandbox key below to test the API without creating an account. Rate-limited to 60 requests per minute, responses identical to production but not billed.
tvx_sandbox_public_demo_key_read_onlySandbox⚠ The sandbox is read-only and may be disabled without notice. For sustained use, create your own key via /profil/api (Free plan: 10,000 requests/month).
Two AI endpoints accessible with your tevaxia API key (standard rate-limit tier):
# POST /api/v1/ai/analyze
curl https://www.tevaxia.lu/api/v1/ai/analyze \
-H "X-API-Key: tvx_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"context": "Commune: Luxembourg\nSurface: 90m²\nEstimation: 950000 EUR",
"prompt": "Comment this estimate vs market."
}'
# → { "text": "...", "model": "llama3.1-8b", "provider": "cerebras", "remaining": -1 }
# POST /api/v1/ai/chat
curl https://www.tevaxia.lu/api/v1/ai/chat \
-H "X-API-Key: tvx_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{ "role": "user", "content": "How is LU 3% VAT computed?" }
]
}'
# → { "text": "...", "model": "...", "provider": "...", "remaining": -1 }The server uses Cerebras by default (Llama 3.1 8B, Groq Llama 3.3 fallback). If you configured a BYOK OpenAI/Anthropic key in your profile, it will be used automatically. Limit: your API key rate-limit tier (Free: 10/min, 200/day).
const response = await fetch(
"https://www.tevaxia.lu/api/v1/estimation/batch",
{
method: "POST",
headers: {
"X-API-Key": process.env.TEVAXIA_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
items: myPortfolio.map((asset) => ({
commune: asset.commune,
surface: asset.surface,
classeEnergie: asset.epc,
etat: asset.condition,
})),
}),
}
);
const { results, succeeded, failed } = await response.json();
console.log(`${succeeded}/${results.length} assets estimated`);