---
title: "Pause extracts in bulk"
method: POST
path: "/api/v3/extracts/bulk-pause/"
tags: ["Extracts"]
---

# Pause extracts in bulk

`POST /api/v3/extracts/bulk-pause/`

## Request

- Base URL: `https://embedded.improvado.io`
- URL: `https://embedded.improvado.io/api/v3/extracts/bulk-pause/`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `dts_session_id`
- TypeScript: <https://skmtc.dev/improvado/apis/improvado-embedded-api-v3/docs/api/v3/extracts/bulk-pause/post.ts> (a function with typed inputs; its response is checked against the schema)

Queue the action for 1–1,000 accessible extractions. Requires extract UPDATE permission and an authenticated workspace user; service principals are not supported. Private connections must be owned by or shared with the caller. An identical retry with the same Idempotency-Key returns the existing task ID; reusing the key for a different action or resolved execution arguments returns 409. Keys are scoped to the agency, workspace and user and retained while the task exists. Selection validation and access checks still run on retries. This prevents duplicate submission, not repeated worker execution. Use the bulk status endpoint to poll progress.

## Headers

- `X-IM-WORKSPACE-ID` integer
- `Idempotency-Key` string, required

## Request body

- ExtractionBulkActionRequest
  - `selection_params` union, required: Select 1–1,000 accessible extractions by explicit IDs, or by a data-table filter. Non-empty select_ids takes precedence over filter_params and exclude_ids. In filter mode, exclude_ids are removed before checking count. Explicit IDs that are unavailable reject the entire request.
    - object
      - `select_ids` integer[], required: Internal extraction IDs, not the displayed extraction-order title or ID.
      - `exclude_ids` integer[]: IDs to exclude when using filter_params.
      - `count` integer: Optional expected resolved selection size; a mismatch returns 400.
      - `filter_params` object
        - `data_table_id` union, required: Data table ID.
          - string
          - integer
        - `status` string: UI statuses, comma-separated (syncing, data_synced, error, paused).
        - `query` string: Case-insensitive extraction title search.
    - object
      - `select_ids` integer[]: Internal extraction IDs, not the displayed extraction-order title or ID.
      - `exclude_ids` integer[]: IDs to exclude when using filter_params.
      - `count` integer: Optional expected resolved selection size; a mismatch returns 400.
      - `filter_params` object, required
        - `data_table_id` union, required: Data table ID.
          - string
          - integer
        - `status` string: UI statuses, comma-separated (syncing, data_synced, error, paused).
        - `query` string: Case-insensitive extraction title search.

## Response `200`

Task submitted or an identical previous submission returned. Does not mean downloading has finished.

- BulkTaskSubmission
  - `id` string, uuid, required: Task ID to poll through GET /api/v3/bulk/stream/{task_info_id}/.

## Other responses

- `400`: Invalid request, missing or invalid key, empty selection, count mismatch, or more than 1,000 extractions.
- `401`: Authentication required.
- `403`: Insufficient permissions, inaccessible private connection, or unsupported service principal.
- `404`: One or more explicitly selected extractions are unavailable. The whole request is rejected.
- `409`: Idempotency-Key was already used for a different action or resolved execution arguments.

---

[API](https://skmtc.dev/improvado/apis/improvado-embedded-api-v3.md) - [All operations](https://skmtc.dev/improvado/apis/improvado-embedded-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/improvado/apis/improvado-embedded-api-v3/revisions/a881099bd6c4?raw)
