Skip to main content
POST
/
bulk_requests
/
{id}
/
cancel
Cancel a bulk request
curl --request POST \
  --url https://api.endclose.com/v1/bulk_requests/{id}/cancel \
  --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

Response

Cancellation requested

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