Get bulk update job status
Check whether a bulk update job is queued, running or finished, with row counts once it completes.
- Method
- GET
- Path
https://api.returning.ai / v1/ users/ bulk-update/ {id}/ status - Permission
- getBulkUpdate
- Retries
- Read-only; poll with backoff
When to use this
- Poll after a CSV upload until the job finishes.
- Show how many rows of a nightly feed succeeded and failed.
- Decide when to read row results, which are only ready once the job is
Completed.
Authentication#
- Header
Authorization: Bearer <API_KEY>- Permission
- getBulkUpdateShown in the dashboard as “Get Bulk Update History”
This endpoint needs getBulkUpdate, shown in the dashboard as Get Bulk Update History. Use a Community API key and keep it on your server. The key decides the community, so you can only read jobs from that community.
Behaviour#
A job starts In Queue, moves to In Progress, and ends Completed or Failed. Jobs for one community run one at a time, oldest first, so a job can wait In Queue behind earlier uploads.
Completedmeans the job has finished, but some rows may have failed.successfulUsersandfailedUserscount the rows; read the failed ones with Get bulk update job details.Failedusually means the whole file was rejected before any change, for example because of an unknown column. This endpoint does not return the reason; check the file against the rules in Bulk update users from CSV.
Only Completed includes the counts and duration. The other states return status and receivedTime only.
Request#
Path parameters#
_id from List bulk update jobs.Rule24 hex characters
Eg"66f000000000000000000701"
Headers#
getBulkUpdate.RuleBearer <API_KEY>
curl --request GET \
--url https://api.returning.ai/v1/users/bulk-update/66f000000000000000000701/status \
--header 'Authorization: Bearer <API_KEY>'
Response#
This endpoint uses title-case labels. List bulk update jobs shows the same states in lower case: queued, processing, completed and failed. The counts here are named successfulUsers and failedUsers; details names them successUsers and failedUsers.
Rulesuccess
Completed can still include failed rows; Failed usually means the whole file was rejected.RuleIn Queue, In Progress, Completed or Failed
Completed.Completed.In Queue.Completed.Eg"4.213 seconds"
{
"status": "success",
"message": "Bulk update status fetched successfully",
"data": {
"status": "Completed",
"successfulUsers": 1,
"failedUsers": 1,
"receivedTime": "2026-09-26T02:00:05.000Z",
"duration": "4.213 seconds"
}
}
Errors#
The 401, 403 and 404 errors, and 500 AUTHENTICATION_FAILED, come from the API key check and carry the code in meta.code. Other errors from this endpoint have no code, so branch on the HTTP status and, for a 500, on detail.
Fix the request03
Bulk update ID is required and must be a valid ObjectId). Send the job's 24-character _id from List bulk update jobs.AUTHENTICATION_REQUIREDFix the requestAuthorization: Bearer <API_KEY> with a current Community API key.API_KEY_PERMISSION_DENIEDFix the requestgetBulkUpdate, or it is a personal key. Use a Community API key and add the permission in Settings > Integration > API Keys.Fix the data02
detail Bulk update not found, the ID matches no job in your community: find the right _id with List bulk update jobs, and don't retry this one. Any other detail means the job could not be read; retry with backoff.COMMUNITY_NOT_FOUNDFix the dataRetry with backoff01
AUTHENTICATION_FAILEDRetry with backoff{
"status": "fail",
"message": "Bulk update ID is required and must be a valid ObjectId"
}