Programmatic access to WUP/BTLx parsing, TCN conversion, and BOM generation.
All API requests require a Bearer token. Contact us to obtain an API key.
Authorization: Bearer YOUR_API_KEY
If no API keys are configured (development mode), the API is open access.
Returns API status and list of available endpoints.
{
"status": "ok",
"version": "1.0.0",
"endpoints": ["GET /api/v1?action=status", ...]
}
Returns available CNC machine profiles with depth limits and capabilities.
{
"machines": {
"WBS120": {"depth_limit": 120, "type": "weinmann", ...},
"TPA6": {"depth_limit": 200, "type": "tpa", ...},
...
}
}
Parse a Dietrich's WUP file and return structured wall data.
| Field | Type | Description |
|---|---|---|
| file | string required | Base64-encoded WUP file content |
curl -X POST "https://your-domain/api/v1?action=parse_wup" \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"file": "VFhUICAgIERp..."}'
{
"wall_data": {
"width": 3000.0,
"height": 2000.0,
"thickness": 105.0,
"studs": [{"x": 0.0, "dim1": 45.0, "dim2": 105.0}, ...],
"panels": 1,
"operations": 42
}
}
Parse a BTLx XML file and return part information.
| Field | Type | Description |
|---|---|---|
| file | string required | Base64-encoded BTLx file content |
{
"parts_count": 16,
"parts": [
{
"id": "1",
"name": "Stud_1",
"length": 2650.0,
"width": 45.0,
"height": 105.0,
"processings": 2
}, ...
]
}
Convert a WUP file to TCN format for TPA Compact 6/8 CNC controllers.
| Field | Type | Description |
|---|---|---|
| file | string required | Base64-encoded WUP file content |
| sub_path | string | Sub-program path (default: .\assets\sub) |
| machine | string | Machine profile ID (default: generic) |
{
"tcn_files": {
"PLA1 - WallName.tcn": "...",
"PLA2 - WallName.tcn": "..."
},
"stats": {
"wall_dims": "3000x2000x105 mm",
"studs": [...],
"stud_depth": 105
}
}
Generate a Bill of Materials from a WUP file.
| Field | Type | Description |
|---|---|---|
| file | string required | Base64-encoded WUP file content |
All errors return JSON with an error field:
{
"error": "Description of the error"
}
| Status | Meaning |
|---|---|
| 400 | Bad request (missing parameters, unknown action) |
| 401 | Unauthorized (invalid or missing API key) |
| 413 | File too large (max 4MB) |
| 500 | Internal server error (parse/conversion failure) |
Default: 60 requests per minute per API key. Contact us for higher limits.