> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platform.toloka.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancel a pipeline run

> Stop processing remaining items and return the current run state. Completed items are retained. Poll until the run reports `failed` with `Run canceled`. `pendingHumanQa` defaults to `wait_for_review`; reviews can finish after cancellation. After 14 days on the node, eligible waiting items are accepted and charged. Set `accept_without_review` to accept eligible waiting items immediately. Returns 409 before deployment or once cancellation or finalization has started.



## OpenAPI

````yaml /api-reference/openapi.json post /runs/{runId}/cancel
openapi: 3.1.0
info:
  description: >-
    Manage projects, datasets, labeling pipelines, and model training. **Beta:**
    endpoints, request and response shapes, and error contracts can change
    without notice or a backward-compatibility promise.
  title: Toloka Platform API
  version: 2.0.0
servers:
  - url: https://platform.toloka.ai/api/v2-beta
security:
  - apiKeyAuth: []
  - scopedTokenAuth: []
tags:
  - description: The authenticated API key owner.
    name: Account
  - description: A project is the container for pipelines, datasets, and files.
    name: Projects
  - description: Rows and typed fields. Field schemas are immutable once created.
    name: Datasets
  - description: Append rows to a dataset from a file.
    name: Dataset uploads
  - description: Read a dataset out as a file.
    name: Dataset exports
  - description: A pipeline is a graph of nodes that processes each dataset item.
    name: Pipelines
  - description: The nodes, connections, fields, and version of a pipeline graph.
    name: Pipeline graph
  - description: Execute a pipeline over a dataset and inspect each item.
    name: Runs
  - description: Per-node checks that a pipeline must pass before deployment.
    name: Checks
  - description: Named credentials available to pipeline code.
    name: Secrets
  - description: Project files available to pipeline code and labeling interfaces.
    name: Files
  - description: >-
      Global, read-only catalog of the models a synthetic generation node can
      use, with their budget bounds.
    name: Generation models
  - description: >-
      Global, read-only catalog of the expert audience: the values a node
      `audience` filter can use.
    name: Audience
  - description: >-
      Project lists of experts a node can take its workforce from with
      `audienceMode: service`. Available only to teams with the audience service
      enabled.
    name: Expert lists
  - description: >-
      Experts banned in a project: they cannot be invited and are removed from
      the work they are in. Available only to teams with expert bans enabled.
    name: Expert ban list
  - description: Global, read-only base model catalog.
    name: Base models
  - description: Project-owned mutable model-training drafts.
    name: Trainings
  - description: Project-owned Models and immutable Model Versions.
    name: Models
  - name: Batch inference
paths:
  /runs/{runId}/cancel:
    post:
      tags:
        - Runs
      summary: Cancel a pipeline run
      description: >-
        Stop processing remaining items and return the current run state.
        Completed items are retained. Poll until the run reports `failed` with
        `Run canceled`. `pendingHumanQa` defaults to `wait_for_review`; reviews
        can finish after cancellation. After 14 days on the node, eligible
        waiting items are accepted and charged. Set `accept_without_review` to
        accept eligible waiting items immediately. Returns 409 before deployment
        or once cancellation or finalization has started.
      operationId: cancelPipelineRun
      parameters:
        - in: path
          name: runId
          required: true
          schema:
            $ref: '#/components/schemas/RunId'
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              properties:
                pendingHumanQa:
                  description: >-
                    How to handle items waiting for Human QA. `wait_for_review`
                    (default) keeps them waiting; after 14 days on the node,
                    eligible items are accepted without review.
                    `accept_without_review` accepts eligible waiting items now.
                    Items rejected by LLM QA or already under review are
                    excluded. Accepted items are charged as completed items.
                  enum:
                    - accept_without_review
                    - wait_for_review
                  type: string
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RunJob'
          description: Cancellation requested
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
        '404':
          description: Run not found
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
        '409':
          description: >-
            Run cannot be canceled (not yet deployed, or already
            canceling/finished)
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
        '429':
          description: Rate limit exceeded
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
      x-codeSamples:
        - label: TypeScript SDK
          lang: typescript
          source: |
            import { createClient } from "@toloka-platform/sdk";

            const client = createClient({
              baseUrl: "https://platform.toloka.ai",
              apiKey: process.env.TOLOKA_API_KEY!,
            });

            const run = await client.runs.cancel({
              runId: "plr.019a0000-0000-7000-8000-000000000001"
            });
            console.log(run);
components:
  schemas:
    RunId:
      description: Pipeline run ID with prefix `plr.`.
      pattern: >-
        ^plr\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
      type: string
    RunJob:
      description: A pipeline run job. Poll until status is succeeded or failed.
      properties:
        createdAt:
          description: Time the run was created, as an ISO 8601 timestamp.
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
          type: string
        datasetId:
          $ref: '#/components/schemas/DatasetId'
        error:
          description: >-
            Deployment failure message, or null when the run deployed
            successfully.
          type:
            - string
            - 'null'
        id:
          $ref: '#/components/schemas/RunId'
        result:
          $ref: '#/components/schemas/RunStats'
        status:
          description: >-
            Run state: `pending` before deployment, `running` while processing,
            `succeeded` when processing ends, or `failed` if deployment fails;
            individual item failures are counted in `result`.
          enum:
            - pending
            - running
            - succeeded
            - failed
          type: string
      required:
        - id
        - datasetId
        - status
        - createdAt
        - error
        - result
      type: object
    DatasetId:
      description: Dataset ID with prefix `ds.`.
      pattern: >-
        ^ds\.[0-9a-f]{8}-[0-9a-f]{4}-[7][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
      type: string
    RunStats:
      description: Counts of items and their current outcomes.
      properties:
        canceled:
          description: Number of items that were canceled.
          example: 0
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        completed:
          description: Number of items that completed successfully.
          example: 0
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        failed:
          description: Number of items that failed.
          example: 0
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        paused:
          description: Number of items currently paused.
          example: 0
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
        total:
          description: Total number of items in this run.
          example: 0
          maximum: 9007199254740991
          minimum: -9007199254740991
          type: integer
      required:
        - total
        - completed
        - failed
        - canceled
        - paused
      type: object
  headers:
    RateLimit-Limit:
      description: The maximum number of requests allowed in the current window.
      schema:
        type: integer
    RateLimit-Policy:
      description: The rate limit policy (e.g., "60;w=60").
      schema:
        type: string
    RateLimit-Remaining:
      description: The number of requests remaining in the current window.
      schema:
        type: integer
    RateLimit-Reset:
      description: The number of seconds until the current window resets.
      schema:
        type: integer
    X-Request-Id:
      description: >-
        The request id: the X-Request-Id you sent when it is 1-128 characters of
        letters, digits, ".", "_" or "-", otherwise a generated UUID. Present on
        every response, including errors; quote it when reporting a problem.
      schema:
        type: string
  securitySchemes:
    apiKeyAuth:
      description: >-
        Enter `ApiKey <your-api-key>` in Authorization, including the `ApiKey `
        prefix. In cURL and Python samples, `<api-key>` means this full value.
        The TypeScript SDK adds the prefix for you.
      in: header
      name: Authorization
      type: apiKey
    scopedTokenAuth:
      description: >-
        Enter the project-scoped token as `pst_...` in X-Scoped-Token, without
        an `ApiKey ` prefix. Create a token with POST
        /projects/{projectId}/tokens.
      in: header
      name: X-Scoped-Token
      type: apiKey

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.