Robots_PrepareRobotModelImport
const url = 'https://junction-api.qualiastudios.dev/v1/accounts/example/robots/example/model:prepareImport';const options = { method: 'POST', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'application/json'}, body: '{"name":"example","filename":"example","sizeBytes":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://junction-api.qualiastudios.dev/v1/accounts/example/robots/example/model:prepareImport \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <X-API-Key>' \ --data '{ "name": "example", "filename": "example", "sizeBytes": "example" }'Starts a model import: returns a short-lived signed URL to PUT the file to, and the object reference ImportRobotModel then takes. Nothing changes until the import.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The account id.
The robot id.
Request Body required
Section titled “Request Body required ”Request for Robots.PrepareRobotModelImport.
object
Accounts/{account}/robots/{robot}/model
The file name it was picked as, e.g. “openarm_v20.urdf” or “rizon.zip”: the URDF alone, or a .zip of the URDF and its meshes (the package directory).
Its size in bytes; at most 256 MiB (268435456), else INVALID_ARGUMENT. The bucket refuses uploads over 256 MiB, and ImportRobotModel refuses an upload whose stored size differs from this one.
Example generated
{ "name": "example", "filename": "example", "sizeBytes": "example"}Responses
Section titled “ Responses ”OK
Response for Robots.PrepareRobotModelImport.
object
Signed URL to PUT the file to, valid for 2 hours (the lifetime Supabase Storage fixes for signed upload URLs).
The object reference to pass to ImportRobotModel.
When upload_uri stops working.
Example generated
{ "uploadUri": "example", "object": "example", "expireTime": "2026-04-15T12:00:00Z"}default
Section titled “default ”Default error response
A refusal from the API itself.
object
The gRPC code name in upper case, e.g. NOT_FOUND.
Whether the same call may succeed if retried.
Empty, except when a dataset copy or move is refused: then one google.rpc.ErrorInfo with the refusal’s reason code, its domain and, in metadata, the datasets it names.
object
A refusal from the gateway before the call reaches the API, for example 401 bad or missing API key, 403 key lacks the scope or environment closed, 413 body too large.
object
What went wrong.
Example generated
{ "code": "example", "message": "example", "retryable": true, "details": [ {} ]}