Appearance
Jobs
Every generation endpoint in this API returns a jobId immediately and keeps working in the background. This page covers the one endpoint you'll call repeatedly: checking a job's status and getting its result.
Get a job
GET /jobs/{jobId}bash
curl https://api.sloyd.ai/api/jobs/01JZQY4YJ7KV1GQZ9G6H6H2X25 \
-H "x-client-id: $SLOYD_CLIENT_ID" \
-H "x-client-secret: $SLOYD_CLIENT_SECRET"Response
json
{
"id": "01JZQY4YJ7KV1GQZ9G6H6H2X25",
"status": "success",
"title": "a medieval knight helmet",
"prompt": "a medieval knight helmet",
"createdAt": "2026-08-11T10:15:00.000Z",
"genParams": { "targetFaceCount": 20000, "textureResolution": "auto", "topology": "auto" },
"fragments": [{ "name": "i23d_queue", "displayName": "Waiting in Queue" }],
"isSuccess": true,
"libraryEligible": true
}| Field | Type | Notes |
|---|---|---|
id | string | Same as the jobId you requested. |
status | "pending" | "running" | "success" | "error" | Poll until this is success or error. Older jobs may show legacy values (created, completed, failed) with the same meaning. |
title | string | |
prompt | string | The prompt used, where applicable. |
genParams | object | The generation parameters that were applied, including defaults you didn't explicitly set. |
fragments | array | Named processing stages with progress metadata — useful for a progress indicator, not required for correctness. |
errorMessage | string | Present when status is error. |
isSuccess | boolean | Mirrors status === "success". |
createdAt | date-time |
Fields not relevant to API integration (author display info, library/moderation metadata) are included in the response but can be ignored.
Downloading the result
Once status is success, the finished asset is available from a public, unauthenticated URL derived from the job id — there's no separate "download" endpoint to call:
https://storage.googleapis.com/ai-services-quality/jobs/{jobId}.glbbash
curl -o model.glb https://storage.googleapis.com/ai-services-quality/jobs/01JZQY4YJ7KV1GQZ9G6H6H2X25.glbThis applies to every 3D generation endpoint — each publishes its finished GLB at this same jobs/{jobId}.glb path, keyed on the jobId that endpoint returned.
TIP
Because the URL is public and predictable, you can start fetching it optimistically once you expect status to flip to success, or treat a 404/incomplete file as "not ready yet" instead of polling the JSON endpoint. Polling GET /jobs/{jobId} is still the reliable way to detect error.
No list endpoint (yet)
There is currently no supported endpoint to list every job created by your API key — track the jobIds you receive from each create call on your own side, and poll each one individually.