Assets

Download & export

POST/v1/assets/{id}/download

Export a finished asset to GLB, FBX, or OBJ and get a short-lived signed download URL.

Sync returns a URL directlyFormats glb · fbx · obj

Unlike generation, this call is synchronous — it runs the export and returns the download URL in the same response, so there's nothing to poll. Packing a large or highly detailed asset can take a while; set a generous client timeout.

Parameters

ParameterDescription
formatREQUIRED
string
Export format — one of glb, fbx, obj.
texturePresetOPTIONALdefault standard
string
standard or unity. unity emits channel-split maps for Unity URP / Built-in and adds a .meta sidecar.
nameOPTIONALdefault model
string
Base filename for the export, up to 100 characters.

Request

request
curl -X POST https://api.picoberry.ai/v1/assets/019…/download \
  -H "Authorization: Bearer pb_live_xxx" -H "Content-Type: application/json" \
  -d '{"format":"fbx","texturePreset":"unity"}'
requests.post(f"{BASE}/v1/assets/{id}/download", headers=headers,
    json={"format": "fbx", "texturePreset": "unity"})
await fetch(`${BASE}/v1/assets/${id}/download`, { method: "POST",
  headers: { ...headers, "Content-Type": "application/json" },
  body: JSON.stringify({ format: "fbx", texturePreset: "unity" }) });

Response

response · 200
{ "success": true, "data": {
  "url": "https://…signed",
  "format": "glb",
  "archive": false,
  "contentType": "model/gltf-binary",
  "filename": "model.glb"
} }
glb is one file · fbx / obj are bundles A glb export comes back as a single file (archive: false). fbx and obj come back as a .zip (archive: true) packing the model + textures — plus a .meta when texturePreset is unity.
The URL is short-lived The signed url expires shortly after it's issued — fetch it promptly, and re-request the export if it lapses.