Skip to content

Requests

Async submissions (images with ?async=true, all videos) return a request id (req_…). These endpoints are how you track them programmatically — the console’s Requests page shows the same records.

Terminal window
curl https://<your-deployment>.inference.meshive.ai/v1/requests/req_9f8e7d6c5b4a3210 \
-H "Authorization: Bearer $MESHIVE_API_KEY"
{
"id": "req_9f8e7d6c5b4a3210",
"object": "inference.request",
"modality": "image",
"status": "succeeded",
"output_object_key": "serverless/requests/req_9f8e7d6c5b4a3210/result_0.png",
"output_bucket": "meshive-r2",
"storage_provider": null,
"output_urls": ["https://...presigned..."],
"error_code": null,
"error_message": null,
"queued_at": 1780000000,
"started_at": 1780000004,
"completed_at": 1780000031
}
FieldNotes
statusqueued → running → succeeded | failed | canceled — every request terminates
output_urlsPresigned GET links for each produced file. Only on succeeded, valid ~1 hour — re-fetch for fresh links
error_code / error_messageSet on failed — codes like vram_exceeded, model_timeout (table)
queued_at / started_at / completed_atUnix seconds
GET /v1/requests?status=failed&limit=50
Query paramDefaultNotes
statusqueued / running / succeeded / failed / canceled
limit50Max 200; newest first

Returns {"object": "list", "data": [...]} of the same objects (without output_urls — fetch a request’s detail for links).

Cancels a request while it’s still queued and returns the updated record (status: "canceled"). Cancellation fires the request.canceled webhook event.

StatusWhen
200Canceled
409 request_not_cancellableThe request is running or already terminal — running work can’t be canceled
404 / 403Unknown id / belongs to another workspace