REST API
Submit files, add an optional part brief and maximum dimension, start a conversion and fetch finished 3D models over HTTP.
Authentication
Every request carries an API key issued in the admin area. Parts created with a key belong to the account the key was issued for.
Authorization: Bearer vlm_ab12cd34_...Submit a part
POST /api/public/v1/parts — multipart/form-data. Up to 5 files and 20 MB in total. brief, maxDimension and grouping are optional, exactly as in the app. With submit=true the conversion starts right away.
curl -X POST https://voluminate.3dspark.de/api/public/v1/parts \
-H "Authorization: Bearer $VOLUMINATE_API_KEY" \
-F "files=@bracket-front.jpg" \
-F "files=@bracket-side.jpg" \
-F "name=Bracket" \
-F "brief=Sheet metal bracket, two M6 threads" \
-F "maxDimension=120" \
-F "maxDimensionUnit=mm" \
-F "submit=true"201 Created
{
"part": { "id": "…", "partNumber": "SET-1234", "name": "Bracket" },
"files": [ { "id": "…", "name": "bracket-front.jpg" } ],
"conversion": { "id": "…", "status": "queued" }
}Start a conversion later
curl -X POST https://voluminate.3dspark.de/api/public/v1/parts/<part-id>/convert \
-H "Authorization: Bearer $VOLUMINATE_API_KEY"Check status and download models
Download links are signed and valid for one hour. Poll every 30–60 seconds; a run is capped at 45 minutes.
curl https://voluminate.3dspark.de/api/public/v1/parts/<part-id> \
-H "Authorization: Bearer $VOLUMINATE_API_KEY"{
"partNumber": "SET-1234",
"conversion": { "id": "…", "status": "completed" },
"models": [
{ "id": "variant-1", "format": "stl", "sizeBytes": 812344, "downloadUrl": "https://…" }
]
}Errors
Errors return { "error": { "code", "message" } }: 401 invalid key, 402 no credits left, 403 blocked, 404 unknown part, 422 invalid request, 429 rate or capacity limit reached.