{
  "opencollection": "1.0.0",
  "info": {
    "name": "Integration API - Consumer to Extole Audiences Batch Jobs API",
    "version": "1.0"
  },
  "request": {
    "auth": {
      "type": "apikey",
      "key": "Authorization",
      "value": "{{Authorization}}",
      "placement": "header"
    }
  },
  "items": [
    {
      "info": {
        "name": "Batch Jobs",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List batch jobs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://{brand}.extole.io/v6/batches",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "query"
              },
              {
                "name": "event_name",
                "value": "",
                "type": "query"
              },
              {
                "name": "user_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "tags",
                "value": "",
                "type": "query"
              },
              {
                "name": "status",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Returns a paginated list of batch jobs for the authenticated client. Filter by `name`, `event_name`, `tags`, `status`, or `user_id`. Results are ordered by creation date descending. Default page size is 100."
        },
        {
          "info": {
            "name": "Create a batch job",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://{brand}.extole.io/v6/batches",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a new asynchronous batch job that reads its data source row-by-row and dispatches a consumer event for each row. The data source can be a previously run report, an audience list, or an uploaded file asset (CSV, PSV, or JSON). The job begins processing immediately after creation; poll `GET /v6/batches/{batchId}` to monitor `status`. For small inline batches of events, use `POST /v6/async-events` in the event-api instead."
        },
        {
          "info": {
            "name": "Get a batch job",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://{brand}.extole.io/v6/batches/:batchId",
            "params": [
              {
                "name": "batchId",
                "value": "",
                "type": "path",
                "description": "Batch job ID."
              }
            ]
          },
          "docs": "Returns the full record for a single batch job, including current `status`, `success_rows`, `failed_rows`, and data source configuration. Poll this endpoint to monitor job progress until `status` reaches a terminal state: `DONE`, `FAILED`, `CANCELED`, or `EXPIRED`."
        },
        {
          "info": {
            "name": "Update a batch job",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "https://{brand}.extole.io/v6/batches/:batchId",
            "params": [
              {
                "name": "batchId",
                "value": "",
                "type": "path",
                "description": "Batch job ID."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the mutable fields of an existing batch job: `name`, `tags`, and `scopes`. The job must not be in a terminal state (`DONE`, `FAILED`, `CANCELED`, or `EXPIRED`). Data source, event name, and column mappings are immutable after creation."
        },
        {
          "info": {
            "name": "Delete a batch job",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "https://{brand}.extole.io/v6/batches/:batchId",
            "params": [
              {
                "name": "batchId",
                "value": "",
                "type": "path",
                "description": "Batch job ID."
              }
            ]
          },
          "docs": "Permanently deletes a batch job record. The job must be in a terminal state (`DONE`, `FAILED`, `CANCELED`, or `EXPIRED`). This action is irreversible; the job record cannot be recovered after deletion."
        },
        {
          "info": {
            "name": "Cancel a batch job",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://{brand}.extole.io/v6/batches/:batchId/cancel",
            "params": [
              {
                "name": "batchId",
                "value": "",
                "type": "path",
                "description": "Batch job ID."
              }
            ]
          },
          "docs": "Requests cancellation of a batch job. The job transitions to `CANCELED` status. Only jobs in a non-terminal state (`PENDING`, `QUEUED`, `IN_PROGRESS`, or `DISPATCHING`) can be canceled."
        },
        {
          "info": {
            "name": "Expire a batch job",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "https://{brand}.extole.io/v6/batches/:batchId/expire",
            "params": [
              {
                "name": "batchId",
                "value": "",
                "type": "path",
                "description": "Batch job ID."
              }
            ]
          },
          "docs": "Marks a completed batch job as expired, releasing associated resources. Only jobs in terminal state (`DONE`, `FAILED`, or `CANCELED`) can be expired. Once expired, the job record remains queryable but its data source reference is released."
        },
        {
          "info": {
            "name": "List job execution history",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://{brand}.extole.io/v6/jobs/history",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "job_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "status",
                "value": "",
                "type": "query"
              },
              {
                "name": "start_date",
                "value": "",
                "type": "query"
              },
              {
                "name": "end_date",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Returns file validation monitor execution history aggregated across all pods."
        },
        {
          "info": {
            "name": "Get a job execution history entry",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "https://{brand}.extole.io/v6/jobs/history/:historyId",
            "params": [
              {
                "name": "historyId",
                "value": "",
                "type": "path",
                "description": "Execution chain id for the history entry."
              }
            ]
          },
          "docs": "Returns a single file validation monitor execution history entry by execution chain id."
        }
      ]
    }
  ],
  "bundled": true
}