---
title: "Cancel a simulation plan job"
method: POST
path: "/v1/simulation/plan/job/{jobId}/cancel"
tags: ["Simulation Run Plan Job"]
---

# Cancel a simulation plan job

`POST /v1/simulation/plan/job/{jobId}/cancel`

## Request

- Base URL: `https://api.roark.ai`
- URL: `https://api.roark.ai/v1/simulation/plan/job/{jobId}/cancel`
- Auth: HTTP bearer

Stops a run that has not finished yet. Already-finished runs are left alone.

Intended for CI: when a pipeline is cancelled or superseded, cancelling the run stops it
placing calls you no longer need. Safe to call more than once.

## Path parameters

- `jobId` string, uuid, required

## Response `200`

The run is cancelled, or had already finished

- object
  - `data` CancelSimulationPlanJobResponse, required: Result of cancelling a simulation plan job
    - `simulationRunPlanJobId` string, uuid, required
    - `status` 'PENDING' | 'QUEUED' | 'CREATING_SNAPSHOTS' | 'CREATING_SIMULATIONS' | 'PREPARING_CAPACITY' | 'RUNNING_SIMULATIONS' | 'COMPLETED' | 'FAILED' | 'TIMED_OUT' | 'CANCELLED' | 'CANCELLING' | 'ENDING_SIMULATIONS', required: The job status after the request. Unchanged when the run had already finished.
    - `cancelled` boolean, required: True when this request stopped the run. False when it had already finished, which is not an error.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Simulation plan job not found
- `429`: Too Many Requests
- `500`: Internal Server Error

## Changes

> 187 revisions in range; 1 not diffed.

- **2026-09-15** `38989bd64cb3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/roarkhq/apis/roark-analytics-api/changes/v1/simulation/plan/job/:jobId/cancel/post.md)

---

[API](https://skmtc.dev/roarkhq/apis/roark-analytics-api.md) - [All operations](https://skmtc.dev/roarkhq/apis/roark-analytics-api/llms.txt) - [OpenAPI document](https://skmtc.dev/roarkhq/apis/roark-analytics-api/revisions/1a91a5c90e44?raw)
