Laden...
Laden...
Generate legally-structured workplace safety assessments (GBU nach §5 ArbSchG) from any document or photo. Integrate directly into your software, no UI required.
curl -X POST https://api.velth.io/api/v1/analyze \ -H "X-Api-Key: vlth_live_your_key_here" \ -F "file=@workplace.pdf" \ -F "vertical=safebau"
{
"vertical": "safebau",
"total_hazards": 8,
"max_risk_level": 5,
"processing_time_ms": 1840,
"hazards": [
{
"id": "absturz_dach",
"name": "Absturz vom Dach",
"risk_level": 5,
"confidence": 0.94,
"legal_ref": "TRBS 2121, ASR A2.1",
"specialist": "Befähigte Person nach TRBS 1203",
"source_quote": "Dachabdichtungsarbeiten in 8m Höhe",
"controls": [
{ "type": "substitution", "name": "Hubarbeitsbühne statt Leiterarbeiten" },
{ "type": "technical", "name": "Absturzsicherung: Geländer 1,00m + Seitenschutz" },
{ "type": "organizational", "name": "PSAgA: Gurtsystem mit Falldämpfer" }
]
}
]
}Embed velth directly into your platform. Your users never leave. Pass a document or catalog, get structured JSON back, render it in your UI.
All requests require an API key in the X-Api-Key header.
X-Api-Key: vlth_live_your_key_here
Keys are SHA-256 hashed before storage. The full key is shown only once on creation. Store it in your environment variables immediately.
Never expose your API key in client-side JavaScript or public repositories. Rotate immediately at velth.io/api-keys if compromised.
/api/v1/analyzeUpload any workplace document or photo and receive a structured GBU with hazards, STOP measures, legal references, and specialist requirements.
file*verticallanguage# Python example
import requests
response = requests.post(
"https://api.velth.io/api/v1/analyze",
headers={"X-Api-Key": "vlth_live_your_key"},
files={"file": open("workplace.pdf", "rb")},
data={"vertical": "safebau", "language": "de"}
)
hazards = response.json()["hazards"]
for h in hazards:
print(f"{h['risk_level']}/5 - {h['name']}: {h['legal_ref']}")// JavaScript / Node.js
const form = new FormData()
form.append('file', fs.createReadStream('workplace.pdf'))
form.append('vertical', 'safebau')
const res = await fetch('https://api.velth.io/api/v1/analyze', {
method: 'POST',
headers: { 'X-Api-Key': 'vlth_live_your_key' },
body: form
})
const { hazards } = await res.json()verticalhazardstotal_hazardsmax_risk_levelprocessing_time_msidnamerisk_levelconfidencelegal_refspecialistsource_quotecontrolssubstitutiontechnicalorganizationalppe/api/v1/keysCreate a new API key. Full key returned once only.
/api/v1/keysList all your API keys (no full key shown).
/api/v1/keys/{id}Revoke a key immediately. All requests using it return 401.
curl -X POST https://api.velth.io/api/v1/keys \
-H "Authorization: Bearer <user_token>" \
-H "Content-Type: application/json" \
-d '{"name": "Production"}'All errors return JSON with a detail field.
{ "detail": "Invalid or revoked API key." }401Invalid or revoked API key.413File too large. Maximum 25MB.422Could not extract readable text.429Rate limit exceeded.500Analysis failed.Each vertical applies domain-specific legal knowledge. Omit vertical for auto-detection.
safebausafeeventsafetheatersafetheater-dtsafetvsafekliniksafehaccpsafeflottesafefitnesssafepruefungsafelogistik