List the accounts of a background run
Every account of a batch’s background revert (or undo), in the order they were sent, with its outcome so far. Use it to follow a large run account by account, to see why accounts failed, and to check which accounts a cancelled run left untouched.
status | Meaning |
|---|---|
pending | Not processed yet, or waiting to retry after a temporary error (attempts > 0, nextAttemptAt set) |
running | Being processed now |
succeeded | Reverted (or restored, for an undo) |
failed | Could not be processed after its retries. errorCode and errorMessage say why (codes as in the single-account revert, or the undo endpoint) |
cancelled | Left untouched because the run was cancelled |
Only batches that ran in the background have this list. A batch that ran within its request answers 404 NO_JOB; its accounts are in GET /revert-batches/{batchId}.
Example — the failed accounts:
curl "https://api.hyperprop.com/platform/v1/organization/revert-batches/a1b2c3d4-e5f6-7890-abcd-ef1234567890/items?status=failed" \
-H "X-API-Key: hp_live_your_key_here"
curl --request GET \
--url https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"batchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"kind": "revert",
"total": 1,
"limit": 100,
"offset": 0,
"items": [
{
"accountId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"accountNumber": "ACC-7845KXPQ",
"status": "failed",
"attempts": 5,
"errorCode": "BALANCE_AT_INSTANT_ERROR",
"errorMessage": "Failed to compute balance at revertTo",
"nextAttemptAt": null,
"finishedAt": "2026-10-15T15:44:02.000Z"
}
]
}
}{
"success": false,
"statusCode": 401,
"error": "Unauthorized",
"message": "Authentication required",
"code": "UNAUTHORIZED"
}{
"success": false,
"statusCode": 403,
"error": "Forbidden",
"message": "Access denied",
"code": "FORBIDDEN"
}{
"success": false,
"code": "NO_JOB",
"message": "This batch has no background run"
}{
"success": false,
"statusCode": 500,
"error": "Internal Server Error",
"message": "An unexpected error occurred",
"code": "INTERNAL_ERROR"
}{
"statusCode": 504,
"error": "Gateway Timeout",
"message": "The request did not complete within 25 seconds. Try again, or narrow it (for example a shorter date range).",
"code": "REQUEST_TIMEOUT"
}Authorizations
Organization API key. Format: "hp_live_{key}". Organization admins manage the key in the dashboard.
Path Parameters
Batch id returned by the revert call
Query Parameters
Only accounts in this state
pending, running, succeeded, failed, cancelled Which background run of the batch: the revert or its undo. Default: the latest one.
revert, undo Accounts per page
1 <= x <= 1000Accounts to skip
x >= 0Response
Accounts of the run
true
Show child attributes
Show child attributes
{
"batchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"kind": "revert",
"total": 1,
"limit": 100,
"offset": 0,
"items": [
{
"accountId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"accountNumber": "ACC-7845KXPQ",
"status": "failed",
"attempts": 5,
"errorCode": "BALANCE_AT_INSTANT_ERROR",
"errorMessage": "Failed to compute balance at revertTo",
"nextAttemptAt": null,
"finishedAt": "2026-10-15T15:44:02.000Z"
}
]
}
curl --request GET \
--url https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperprop.com/platform/v1/organization/revert-batches/{batchId}/items")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"batchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"kind": "revert",
"total": 1,
"limit": 100,
"offset": 0,
"items": [
{
"accountId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"accountNumber": "ACC-7845KXPQ",
"status": "failed",
"attempts": 5,
"errorCode": "BALANCE_AT_INSTANT_ERROR",
"errorMessage": "Failed to compute balance at revertTo",
"nextAttemptAt": null,
"finishedAt": "2026-10-15T15:44:02.000Z"
}
]
}
}{
"success": false,
"statusCode": 401,
"error": "Unauthorized",
"message": "Authentication required",
"code": "UNAUTHORIZED"
}{
"success": false,
"statusCode": 403,
"error": "Forbidden",
"message": "Access denied",
"code": "FORBIDDEN"
}{
"success": false,
"code": "NO_JOB",
"message": "This batch has no background run"
}{
"success": false,
"statusCode": 500,
"error": "Internal Server Error",
"message": "An unexpected error occurred",
"code": "INTERNAL_ERROR"
}{
"statusCode": 504,
"error": "Gateway Timeout",
"message": "The request did not complete within 25 seconds. Try again, or narrow it (for example a shorter date range).",
"code": "REQUEST_TIMEOUT"
}