curl "https://dev-backend-ai.truefans.in/api/external/v1/bulk-jobs/{bulk_job_id}/status/" \
-H "Authorization: Bearer $TRUEFAN_API_KEY"
{
"bulk_job_id": "8c1f2e3a-...",
"status": "processing",
"batch_name": "August campaign",
"created": "2026-08-21T10:00:00Z",
"modified": "2026-08-21T10:03:00Z",
"summary": { "total": 2, "success": 1, "failed": 0, "pending": 1 },
"csv_ready": false
}
{
"bulk_job_id": "8c1f2e3a-...",
"status": "done",
"batch_name": "August campaign",
"created": "2026-08-21T10:00:00Z",
"modified": "2026-08-21T10:05:00Z",
"summary": { "total": 2, "success": 2, "failed": 0, "pending": 0 },
"csv_ready": true
}
{ "error": "API key required" }
{ "error": "Bulk job not found" }
Video Generation
Get bulk job status
Check the overall status of a batch
GET
/
api
/
external
/
v1
/
bulk-jobs
/
{bulk_job_id}
/
status
/
curl "https://dev-backend-ai.truefans.in/api/external/v1/bulk-jobs/{bulk_job_id}/status/" \
-H "Authorization: Bearer $TRUEFAN_API_KEY"
{
"bulk_job_id": "8c1f2e3a-...",
"status": "processing",
"batch_name": "August campaign",
"created": "2026-08-21T10:00:00Z",
"modified": "2026-08-21T10:03:00Z",
"summary": { "total": 2, "success": 1, "failed": 0, "pending": 1 },
"csv_ready": false
}
{
"bulk_job_id": "8c1f2e3a-...",
"status": "done",
"batch_name": "August campaign",
"created": "2026-08-21T10:00:00Z",
"modified": "2026-08-21T10:05:00Z",
"summary": { "total": 2, "success": 2, "failed": 0, "pending": 0 },
"csv_ready": true
}
{ "error": "API key required" }
{ "error": "Bulk job not found" }
string
required
Returned from Generate videos.
string
required
Bearer {api_key}curl "https://dev-backend-ai.truefans.in/api/external/v1/bulk-jobs/{bulk_job_id}/status/" \
-H "Authorization: Bearer $TRUEFAN_API_KEY"
{
"bulk_job_id": "8c1f2e3a-...",
"status": "processing",
"batch_name": "August campaign",
"created": "2026-08-21T10:00:00Z",
"modified": "2026-08-21T10:03:00Z",
"summary": { "total": 2, "success": 1, "failed": 0, "pending": 1 },
"csv_ready": false
}
{
"bulk_job_id": "8c1f2e3a-...",
"status": "done",
"batch_name": "August campaign",
"created": "2026-08-21T10:00:00Z",
"modified": "2026-08-21T10:05:00Z",
"summary": { "total": 2, "success": 2, "failed": 0, "pending": 0 },
"csv_ready": true
}
{ "error": "API key required" }
{ "error": "Bulk job not found" }
Response fields
string
The job as a whole:
pending → processing → dispatched → done or failed. done means every row reached a terminal state — check summary for how many succeeded vs. failed.object
Headline counts — most integrations poll on
summary.pending == 0 to know the whole batch is done, rather than checking every row.boolean
true once status is done — the point at which Download CSV export becomes available for this batch. false (and the export 404s) at every earlier state, since some rows wouldn’t have a result yet.This endpoint only returns aggregate counts — no per-row detail, and no per-row identifiers, while a batch is still processing. Wait for
csv_ready (or the bulk_job.completed webhook) and download every row’s result at once via Download CSV export.