Endpoint
Request Format
This endpoint expects amultipart/form-data POST request with:
| Field | Type | Required | Description |
|---|---|---|---|
image | File | Yes | JPG, PNG, or single-page PDF floor plan |
additionalData | text | No | Optional JSON string echoed back |
Headers
Example Request
Successful Response
If the floor plan is valid and processed successfully, the API returns:Field Definitions
| Field | Description |
|---|---|
uniqueId | Internal processing identifier for the uploaded plan |
galleryUrl | URL to the auto-generated MagicFurnish viewer/gallery |
furnishedImageUrl | Direct link to the furnished layout image |
Validation Rules
The Upload endpoint performs automatic validation before processing. Floor plans must:- Be JPG, PNG, or single-page PDF
- Be under 10 MB
- Contain at least one visible dimension
- Use consistent scale (if multiple scales appear, request is rejected)
- Not contain visible furniture (to avoid misinterpretation)
Possible Error Responses
| Status | Code | Meaning |
|---|---|---|
| 400 | invalid_file | File is not a supported image/PDF, or cannot be parsed |
| 400 | multiple_pages | PDF contains more than one page |
| 400 | furniture_detected | Floor plan contains visible furniture (remove and re-upload) |
| 400 | dimensions_missing | At least one dimension must be readable |
| 400 | size_unsupported | Dimensions/scale not supported |
| 400 | file_unreadable | Low resolution or corrupted upload |
| 401 | unauthorized | Missing/invalid API key/secret |
| 403 | forbidden | Key not allowed for this endpoint |
| 408 | timeout | Processing exceeded time limit |
| 413 | payload_too_large | File exceeds 10 MB |
| 415 | unsupported_media_type | Unsupported file type |
| 429 | rate_limited | Too many requests |
| 500 | internal_error | Unexpected internal error |
| 503 | service_unavailable | Service temporarily unavailable |
Processing Time
Typical processing times (approximate):- Upload: ~10 seconds
- Auto-Furnish: ~30–60 seconds
- Gallery Ready: instantly upon completion
Next Steps
The returnedgalleryUrl can be:
- Embedded in your app
- Opened in a webview
- Linked as part of a workflow (internal dashboards, listing platforms, etc.)