---
title: "Cancel an in-flight research run"
method: POST
path: "/business/research/runs/{runId}/cancel"
tags: ["Research"]
---

# Cancel an in-flight research run

`POST /business/research/runs/{runId}/cancel`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/research/runs/{runId}/cancel`
- Auth: HTTP basic

Requests cancellation of an in-flight run and returns its new status (cancelled). Credits already settled for provider actions are not refunded; reserved credits are released. A run that has already finished (completed, failed or cancelled) cannot be cancelled and answers 409. Rate limit: 30 requests per minute, 1000 per day.

Errors:
- `404` `RESEARCH_RUN_NOT_FOUND` — No research run with that id belongs to the token owner.
- `409` `RUN_ALREADY_TERMINAL` — The run has already finished (completed, failed or cancelled) and cannot be cancelled.
- `422` `VALIDATION_FAILED` — `runId` is not a 24-character hex id.
- `429` `RATE_LIMITED` — Per-user quota for this endpoint family exceeded (30 per minute, 1000 per day); retry after the Retry-After / RateLimit-Reset seconds.

Requires one of the following token scopes: research.

## Path parameters

- `runId` string, required: The research run id (24-character hex), as returned in `run.runId` by POST /business/research/runs.

## Response `200`

Success

- object
  - `run` object, required
    - `runId` string, required
    - `status` 'queued' | 'planning' | 'plan_review' | 'running' | 'generating_csv' | 'uploading' | 'completed' | 'failed' | 'cancelled', required

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
