API Reference / Endpoints / Platform
Read request status
/v1/requests/:requestIdRead the latest state for a previously created async request.
GET
/v1/requests/:requestIdAuth: API keyBilling: FreeBehavior: SyncScopes: analytics:read
GETSyncNo bodyanalytics:read
When to use it
Use this when a write route returned a request_id and you want a polling fallback instead of, or in addition to, webhook delivery.
Behavior on success
Returns a completed payload on the normal success path.
Integration shape
Authorization model
analytics:read
Request format
No request body
Polling pattern
No polling required on the normal success path.
Request
| Field | Type | Required | Description |
|---|---|---|---|
requestId | string | Yes | Request identifier returned by an async generation or processing route. |
Example request
GET /v1/requests/:requestId
const response = await fetch('https://prod-backup-backend.wubble.ai/v1/requests/590b41ed-bf0f-42cf-bad9-32568c09475a', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.WUBBLE_API_KEY}`,
},
});
const payload = await response.json();
console.log(payload);Example response
Response shapejson
{
"success": true,
"data": {
"request_id": "590b41ed-bf0f-42cf-bad9-32568c09475a",
"status": "completed",
"service_category": "music",
"service_operation": "instrumentals",
"credits_used": 1,
"credits_estimated": 1,
"result_url": "https://cdn.wubble.ai/audio/instrumental.mp3",
"error_message": null,
"estimated_seconds": 75,
"created_at": "2026-05-12T12:00:00.000Z",
"updated_at": "2026-05-12T12:01:15.000Z",
"completed_at": "2026-05-12T12:01:15.000Z"
}
}Implementation notes
Request ownership is enforced. A valid key from another workspace will still receive 404.
This route preserves legacy credit fields while the platform transitions to API call terminology.
Production guidance
Pair this route with idempotency on POST requests and either request polling or webhooks whenever the response is asynchronous.
Was this page helpful?