UploadModelFile
API Playground
Upload a 3D model file to a project. The model will be processed and made available for ordering.
Your authentication token will be sent as: Authorization: Bearer <token>
UUID of the project to upload the model to
UUID of the folder to place the model in (optional)
The 3D model file to upload (supported formats: obj, wrl, vrml, zip, fbx, max 1GB)
Endpoint
POST https://devapi.marketiger3d.com/v2/Model3D/UploadModelFile
Authentication
This endpoint requires a Bearer token. Include the token in the Authorization header:
Authorization: Bearer <your_access_token>
Request Format
This endpoint uses multipart/form-data for file uploads.
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| projectId | string | form | Yes | UUID of the project to upload the model to |
| folder | string | form | No | UUID of the folder to place the model in (optional) |
| model3D | file | form | Yes | The 3D model file to upload |
Parameter Details
projectId
- Type: string (GUID)
- Required: Yes
- Description: The project ID where the model will be uploaded
folder
- Type: string (GUID)
- Required: No
- Description: The folder ID where the model should be placed. If not provided, the model will be placed in the root of the project.
model3D
- Type: file
- Required: Yes
- Description: The 3D model file to upload
- Supported formats:
obj,wrl,vrml,zip,fbx - Max size: 1GB
Example Request
Basic Upload
curl -X POST "https://devapi.marketiger3d.com/v2/Model3D/UploadModelFile" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "projectId=123e4567-e89b-12d3-a456-426614174000" \
-F "model3D=@/path/to/model.stl"
Upload with Folder
curl -X POST "https://devapi.marketiger3d.com/v2/Model3D/UploadModelFile" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "projectId=123e4567-e89b-12d3-a456-426614174000" \
-F "folder=123e4567-e89b-12d3-a456-426614174001" \
-F "model3D=@/path/to/model.stl"
JavaScript Example
const formData = new FormData();
formData.append('projectId', '123e4567-e89b-12d3-a456-426614174000');
formData.append('model3D', fileInput.files[0]);
fetch('https://devapi.marketiger3d.com/v2/Model3D/UploadModelFile', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
},
body: formData
})
.then(response => response.json())
.then(data => {
if (data.success) {
const modelId = data.data.modelId;
console.log('Model uploaded:', modelId);
}
})
.catch(error => console.error('Error:', error));
C# Example
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "YOUR_ACCESS_TOKEN");
using (var formData = new MultipartFormDataContent())
{
formData.Add(new StringContent("123e4567-e89b-12d3-a456-426614174000"), "projectId");
var fileContent = new ByteArrayContent(File.ReadAllBytes("path/to/model.stl"));
fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
formData.Add(fileContent, "model3D", "model.stl");
var response = await client.PostAsync("https://devapi.marketiger3d.com/v2/Model3D/UploadModelFile", formData);
var responseContent = await response.Content.ReadAsStringAsync();
var result = JsonSerializer.Deserialize<APIResponse>(responseContent);
}
}
Response
Success Response (200 OK)
{
"success": true,
"data": {
"modelId": "123e4567-e89b-12d3-a456-426614174000",
"message": "Model Uploaded"
}
}
Response Schema
| Field | Type | Description |
|---|---|---|
| success | boolean | Indicates if the request succeeded |
| data | object | Response data |
| data.modelId | string | Unique identifier (GUID) of the uploaded model |
| data.message | string | Success message |
Error Response (400 Bad Request)
{
"success": false,
"error": {
"type": "AUTHENTICATION",
"message": "User not found"
}
}
{
"success": false,
"error": {
"type": "NOT_FOUND",
"message": "Project not found are you using the right id?"
}
}
{
"success": false,
"error": {
"type": "INCORRECT_PARAMETERS",
"message": "No model to upload"
}
}
{
"success": false,
"error": {
"type": "INCORRECT_PARAMETERS",
"message": "Filetype not supported supported types: .obj,.wrl,.vrml,.zip,.fbx"
}
}
Note: Supported file types are obj, wrl, vrml, zip, and fbx.
Error Codes
| Error Type | Status | Description |
|---|---|---|
| AUTHENTICATION | 400 | User not found or no project access |
| NOT_FOUND | 400 | Project not found |
| INCORRECT_PARAMETERS | 400 | Missing file, invalid file type, or missing required fields |
| OPERATION_FAILED | 400 | File upload or processing failed |
Notes
- File size limit: Maximum file size is 1GB
- Supported formats:
obj,wrl,vrml,zip,fbx - Processing time: Models are processed asynchronously. Use
GetModelDatato check processing status - Model status: Newly uploaded models start with status "Failed" and are processed automatically
Best Practices
- Validate file format: Check file type before uploading
- Handle large files: Implement progress indicators for large file uploads
- Check model status: Poll
GetModelDataendpoint to check when processing is complete - Error handling: Handle file type and size errors gracefully
- Project permissions: Verify project settings allow API uploads before attempting