Sign in to run requests with your own sandbox key. Sign in

Resume an interrupted batch

POST /api/v1/batches/{id}/resume
executions:write Async

Re-queues remaining children and restarts processing; poll getBatch. Re-checks workflow_inactive and live_mode_forbidden at resume time. Requires executions:write.

Asynchronous: the response is 202 Accepted. Poll GET /batches/{id} until status is terminal.

Path parameters

NameTypeDescription
idrequired integer

Batch id. Scoped to the calling api_client; a foreign id returns 404.

Responses

  • 202 Resumed application/json
    • data Batch

      Schema: Batch

      • id integer
      • object string
      • workflow_id integer
      • status string `completed` means every row reached a terminal status, even when some rows failed (see `failed_count`). `failed` means the batch itself stopped on an unexpected error; it is not accepted by `filter[status]` on `listBatches`. One of pending running interrupted completed cancelled failed
      • execution_mode string One of test live
      • external_reference string, nullable
      • total_count integer
      • completed_count integer
      • failed_count integer
      • started_at string (date-time), nullable
      • completed_at string (date-time), nullable
      • created_at string (date-time)
      • updated_at string (date-time)
    • meta Meta

      Schema: Meta

      • request_id string required Correlation id for this request. Also sent as the `X-Request-Id` response header; quote it when contacting support.
    202 example
    {
      "data": {
        "id": 77,
        "object": "batch",
        "workflow_id": 1,
        "status": "pending",
        "execution_mode": "test",
        "external_reference": "rentvine-batch-001",
        "total_count": 1,
        "completed_count": 1,
        "failed_count": 1,
        "started_at": "2026-05-08T18:41:05Z",
        "completed_at": "2026-05-08T18:41:05Z",
        "created_at": "2026-05-08T18:41:05Z",
        "updated_at": "2026-05-08T18:41:05Z"
      },
      "meta": {
        "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f"
      }
    }
  • 401 Missing, malformed, expired or revoked bearer token. The WWW-Authenticate header carries the RFC 6750 challenge. application/json

    Schema: ErrorEnvelope

    401 example
    {
      "error": {
        "code": "unauthorized",
        "message": "A valid bearer token is required.",
        "details": [],
        "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f",
        "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/unauthorized"
      }
    }
  • 403 insufficient_scope or live_mode_forbidden application/json

    Schema: ErrorEnvelope

    403 example
    {
      "error": {
        "code": "validation_failed",
        "message": "The request could not be processed.",
        "details": [
          {
            "field": "execution_mode",
            "message": "must be test or live"
          }
        ],
        "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f",
        "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/validation_failed"
      }
    }
  • 404 Resource does not exist or belongs to another tenant / api_client application/json

    Schema: ErrorEnvelope

    404 example
    {
      "error": {
        "code": "not_found",
        "message": "The requested resource was not found.",
        "details": [],
        "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f",
        "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/not_found"
      }
    }
  • 409 batch_not_resumable or workflow_inactive application/json

    Schema: ErrorEnvelope

    409 example
    {
      "error": {
        "code": "batch_not_resumable",
        "message": "Batch is in status running and cannot be resumed.",
        "details": [],
        "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f",
        "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/batch_not_resumable"
      }
    }
  • 429 Rate limit exceeded (60 req/min per IP on /api/v1, 600 req/hour per token prefix, or 300 req/5 min per IP globally). The body is the standard error envelope and Retry-After gives the seconds until the window resets. application/json

    Schema: ErrorEnvelope

    429 example
    {
      "error": {
        "code": "rate_limited",
        "message": "Rate limit exceeded. Retry later.",
        "details": [],
        "request_id": "7d4c2f48-9a1b-4c3d-8e2f-1a2b3c4d5e6f",
        "doc_url": "https://cascades.crscreditapi.com/docs/api/errors/rate_limited"
      }
    }
Was this page helpful?