List bulk update jobs
List your community's bulk user update jobs, newest first, so you can find a job's ID by its log_name.
- Method
- GET
- Path
https://api.returning.ai / v1/ users/ bulk-update - Permission
- getBulkUpdate
- Retries
- Read-only; exact retries are safe
When to use this
- Find the
_idof a job you just uploaded, by matchingnameto thelog_nameyou sent. - After a timeout on an upload, check whether the job was created before you upload again.
- Show recent bulk updates and their outcomes in your own tools.
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 only see that community's jobs.
Behaviour#
Bulk update users from CSV returns no job ID, so this list is how you find one. Jobs come back newest upload first. There is no filter or search: read from page 1 and match name to the log_name you sent. Names don't have to be unique, so give every upload its own log_name; if two jobs share one, the first match is the newer job.
The list holds jobs from Bulk update users from CSV only, whichever key in your community uploaded them. Premium currency uploads and legacy bulk imports are not listed.
Request#
Query parameters#
Headers#
getBulkUpdate.RuleBearer <API_KEY>
curl --request GET \
--url 'https://api.returning.ai/v1/users/bulk-update?page=1&limit=20' \
--header 'Authorization: Bearer <API_KEY>'
Response#
A 200 returns the jobs in data.data and the totals in data.pagination. receivedAt changes as the job moves on, so don't use it as the upload time. For row counts, use Get bulk update job status.
If data.pagination is an empty object and data.data is empty, the list could not be read; retry with backoff.
Rulesuccess
limit. 0 when there are no jobs.true when a later page has jobs.true when page is above 1.log_name sent with the upload, or Bulk Update Users if none was sent.Rulequeued, processing, completed or failed
queued."4.213". Left out until the job finishes.{
"status": "success",
"message": "All bulk updates fetched successfully",
"data": {
"pagination": {
"total": 2,
"totalPages": 1,
"currentPage": 1,
"hasNextPage": false,
"hasPrevPage": false
},
"data": [
{
"_id": "66f000000000000000000701",
"receivedAt": "2026-09-26T02:00:05.000Z",
"duration": "4.213",
"status": "completed",
"name": "Coins top-up 2026-09-26"
},
{
"_id": "66f000000000000000000702",
"receivedAt": "2026-09-25T02:00:03.000Z",
"duration": "0.512",
"status": "failed",
"name": "Coins top-up 2026-09-25"
}
]
}
}
Errors#
The 401, 403 and 404 errors, and 500 AUTHENTICATION_FAILED, come from the API key check and carry the code in meta.code. A 400 has no code; detail names the query field.
Fix the request03
limit is over 100, or page or limit is not a number. There is no code; detail names the field. Send page of 1 or more and limit up to 100.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 data01
COMMUNITY_NOT_FOUNDFix the dataRetry with backoff01
AUTHENTICATION_FAILEDRetry with backoff{
"meta": {
"status": "error",
"statusCode": 400
},
"message": "Get all bulk update endpoint validation error.",
"detail": {
"limit": "Limit must be less than 100"
},
"solution": "Check your query in request and try again"
}