Create upload
upload_createCreate a direct upload handle for an asset file. Returns an expiring authorized PUT URL. Allowed: .blend .glb .gltf .obj .stl .png .jpg .jpeg .ttf .otf .woff .woff2. Use purpose=font for a typeface, then asset_import it — the font becomes a datablock this project's text.create/text.set_font can name, which is the only way to get branded lettering onto a dial or a label (the built-in Bfont is otherwise the only option).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"filename": "<filename>",
"contentType": "<contentType>",
"byteSize": "<byteSize>"
},
"name": "upload_create"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sha256 | No | Optional SHA-256 checksum of the file bytes. | |
| purpose | No | How the validated asset will be used: import, texture, or font. | asset_import |
| byteSize | Yes | Exact file size in bytes before upload. | |
| filename | Yes | Original filename, including a supported extension. | |
| projectId | No | Stable project ID returned by project_create or projects_list. | |
| contentType | Yes | MIME type to send with the raw upload bytes. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| method | Yes | ||
| headers | Yes | ||
| uploadId | Yes | ||
| expiresAt | Yes |