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

# Cancel run by ID

> Cancel a run by ID. Only runs created via `/v1/automation/run-async` or `/v1/automation/run-sse` can be cancelled. Runs created via the synchronous `/v1/automation/run` endpoint cannot be cancelled.



## OpenAPI

````yaml https://agent.tinyfish.ai/v1/openapi/main post /v1/runs/{id}/cancel
openapi: 3.0.0
info:
  title: TinyFish Web Agent Automation API
  version: 1.0.0
  description: >-
    REST API for running AI-powered browser automations. Execute tasks on any
    website using natural language instructions.
  contact:
    name: TinyFish Support
    email: support@tinyfish.ai
servers:
  - url: https://agent.tinyfish.ai
    description: Production
security: []
tags:
  - name: Automation
    description: Browser automation endpoints for executing tasks on websites
  - name: Runs
    description: Endpoints for retrieving automation run data
  - name: Browser
    description: Remote browser session endpoints
  - name: Fetch
    description: Fetch URLs and extract clean page content
  - name: Search
    description: Web search endpoints
  - name: Browser Context Profiles
    description: >-
      Saved browser context endpoints for managing reusable login state,
      cookies, storage, and profile setup sessions
  - name: Vault
    description: >-
      Vault credential management endpoints for connecting password managers and
      managing stored credentials
paths:
  /v1/runs/{id}/cancel:
    post:
      tags:
        - Runs
      summary: Cancel run by ID
      description: >-
        Cancel a run by ID. Only runs created via `/v1/automation/run-async` or
        `/v1/automation/run-sse` can be cancelled. Runs created via the
        synchronous `/v1/automation/run` endpoint cannot be cancelled.
      operationId: cancelRunById
      parameters:
        - schema:
            type: string
            pattern: ^[A-Za-z0-9_-]+$
            description: Run ID
            example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          required: true
          description: Run ID
          name: id
          in: path
      responses:
        '200':
          description: >-
            Run cancelled successfully, or already in terminal state
            (idempotent)
          content:
            application/json:
              schema:
                type: object
                properties:
                  run_id:
                    type: string
                    description: The unique identifier of the run
                    example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  status:
                    type: string
                    enum:
                      - CANCELLED
                      - COMPLETED
                      - FAILED
                    description: >-
                      The current status of the run. Returns actual status for
                      idempotent responses (e.g., COMPLETED if run already
                      finished)
                    example: CANCELLED
                  cancelled_at:
                    type: string
                    nullable: true
                    description: >-
                      ISO 8601 timestamp when the run was cancelled, or null if
                      not cancelled
                    example: '2026-01-14T10:30:55Z'
                  message:
                    type: string
                    nullable: true
                    description: >-
                      Additional context about the cancellation result (e.g.,
                      "Run already cancelled", "Run already finished")
                    example: Run already cancelled
                required:
                  - run_id
                  - status
                  - cancelled_at
                  - message
                description: Response from cancel run endpoint
              examples:
                cancelled:
                  summary: Run cancelled
                  value:
                    run_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    status: CANCELLED
                    cancelled_at: '2024-01-01T00:00:00Z'
                    message: null
                alreadycancelled:
                  summary: Run already cancelled (idempotent)
                  value:
                    run_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    status: CANCELLED
                    cancelled_at: '2024-01-01T00:00:00Z'
                    message: Run already cancelled
                alreadyCompleted:
                  summary: Run already completed (no-op)
                  value:
                    run_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                    status: COMPLETED
                    cancelled_at: null
                    message: Run already finished
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - MISSING_API_KEY
                          - INVALID_API_KEY
                          - INVALID_INPUT
                          - RATE_LIMIT_EXCEEDED
                          - INTERNAL_ERROR
                          - RETRY_REQUIRED
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - NOT_FOUND
                          - SERVICE_BUSY
                          - TIMEOUT
                          - INSUFFICIENT_CREDITS
                          - CONTENT_POLICY_VIOLATION
                          - MAX_STEPS_EXCEEDED
                          - SITE_BLOCKED
                          - TASK_FAILED
                          - CANCELLED
                        description: Machine-readable error code
                        example: INVALID_INPUT
                      message:
                        type: string
                        description: Human-readable error message
                        example: Field "url" is required and must be a string
                      details:
                        nullable: true
                        description: Additional error details (validation errors, etc.)
                    required:
                      - code
                      - message
                required:
                  - error
                description: Standard error response format
        '404':
          description: Run not found or not owned by this API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - MISSING_API_KEY
                          - INVALID_API_KEY
                          - INVALID_INPUT
                          - RATE_LIMIT_EXCEEDED
                          - INTERNAL_ERROR
                          - RETRY_REQUIRED
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - NOT_FOUND
                          - SERVICE_BUSY
                          - TIMEOUT
                          - INSUFFICIENT_CREDITS
                          - CONTENT_POLICY_VIOLATION
                          - MAX_STEPS_EXCEEDED
                          - SITE_BLOCKED
                          - TASK_FAILED
                          - CANCELLED
                        description: Machine-readable error code
                        example: INVALID_INPUT
                      message:
                        type: string
                        description: Human-readable error message
                        example: Field "url" is required and must be a string
                      details:
                        nullable: true
                        description: Additional error details (validation errors, etc.)
                    required:
                      - code
                      - message
                required:
                  - error
                description: Standard error response format
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - MISSING_API_KEY
                          - INVALID_API_KEY
                          - INVALID_INPUT
                          - RATE_LIMIT_EXCEEDED
                          - INTERNAL_ERROR
                          - RETRY_REQUIRED
                          - UNAUTHORIZED
                          - FORBIDDEN
                          - NOT_FOUND
                          - SERVICE_BUSY
                          - TIMEOUT
                          - INSUFFICIENT_CREDITS
                          - CONTENT_POLICY_VIOLATION
                          - MAX_STEPS_EXCEEDED
                          - SITE_BLOCKED
                          - TASK_FAILED
                          - CANCELLED
                        description: Machine-readable error code
                        example: INVALID_INPUT
                      message:
                        type: string
                        description: Human-readable error message
                        example: Field "url" is required and must be a string
                      details:
                        nullable: true
                        description: Additional error details (validation errors, etc.)
                    required:
                      - code
                      - message
                required:
                  - error
                description: Standard error response format
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authentication. Get your key from the API Keys page.

````