Skip to main content
POST
/
bulk_requests
/
{id}
/
retry
Retry a bulk request
curl --request POST \
  --url https://api.endclose.com/v1/bulk_requests/{id}/retry \
  --header 'X-API-KEY: <api-key>'
{
  "id": 123,
  "source": "<string>",
  "total_items": 123,
  "processed_items": 123,
  "successful_items": 123,
  "failed_items": 123,
  "skipped_items": 123,
  "progress": 123,
  "filename": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "started_at": "2023-11-07T05:31:56Z",
  "completed_at": "2023-11-07T05:31:56Z",
  "last_progress_at": "2023-11-07T05:31:56Z",
  "cancellation_requested_at": "2023-11-07T05:31:56Z",
  "parsing": true,
  "stuck": true,
  "error_message": "<string>",
  "error_details": {},
  "parent_bulk_request_id": 123,
  "data_stream_id": 123
}

Documentation Index

Fetch the complete documentation index at: https://endclose.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-API-KEY
string
header
required

Path Parameters

id
string
required

The ID of the failed or cancelled bulk request to retry

Response

Retry created and enqueued. Returns the new bulk request, not the parent.

Full bulk request payload, returned by show, list, cancel, and retry endpoints.

id
integer
status
enum<string>

pending = queued, processing = records being inserted, completed = all rows processed, failed = job errored, cancelled = cancellation honored on a heartbeat

Available options:
pending,
processing,
completed,
failed,
cancelled
source
string | null

Origin of the request (e.g. bulk_api, csv, nacha)

total_items
integer
processed_items
integer
successful_items
integer
failed_items
integer
skipped_items
integer

Records skipped due to on_conflict: skip matching an existing external_id

progress
integer

processed_items / total_items as a percentage (0-100)

filename
string | null

Original filename for CSV/NACHA uploads. Null for API-submitted requests.

created_at
string<date-time>
started_at
string<date-time> | null
completed_at
string<date-time> | null
last_progress_at
string<date-time> | null

Heartbeat timestamp from the worker; used to detect stuck jobs

cancellation_requested_at
string<date-time> | null

Set by POST /bulk_requests/{id}/cancel; the worker exits at its next heartbeat

parsing
boolean

True while a CSV/NACHA upload is still being parsed (before rows are enqueued)

stuck
boolean

True if the request has been processing for more than 5 minutes without a heartbeat

error_message
string | null
error_details
object

Free-form structured error context (e.g. row indices, validation errors)

parent_bulk_request_id
integer | null

If this request is a retry, the ID of the original (parent) bulk request

on_conflict
enum<string>

Conflict policy applied when an external_id already exists in the stream

Available options:
skip,
error
data_stream_id
integer | null

Data stream the request targets, when applicable