---
title: "Batalkan task"
method: POST
path: "/tasks/{task_id}/cancel"
tags: ["Tasks"]
---

# Batalkan task

`POST /tasks/{task_id}/cancel`

## Request

- Base URL: `https://getrun.id/v1`
- URL: `https://getrun.id/v1/tasks/{task_id}/cancel`
- Auth: HTTP bearer

Hanya berhasil bila task belum selesai dan upstream mendukung pembatalan; selain itu mengembalikan error `task_not_cancellable`.

## Path parameters

- `task_id` string, required

## Response `200`

Task dibatalkan.

- Task
  - `id` string, required
  - `status` 'queued' | 'processing' | 'succeeded' | 'failed' | 'cancelled', required
  - `model` string, required
  - `input` object
  - `price` object, required
    - `currency` 'IDR', required
    - `estimated` integer, required
    - `reserved` integer, required
    - `final` integer: Biaya final; hadir setelah task selesai. 0 bila gagal.
    - `pricing_version` string
  - `output` object: Hadir bila `status = succeeded`.
    - `urls` string[]
    - `expires_at` string, date-time: Output dihapus setelah 7 hari — salin ke storage sendiri.
  - `error` object: Hadir bila `status = failed`.
    - `code` 'invalid_request' | 'unauthorized' | 'forbidden' | 'not_found' | 'idempotency_conflict' | 'rate_limited' | 'insufficient_balance' | 'quote_expired' | 'model_not_found' | 'model_offline' | 'unsupported_parameter' | 'moderation_blocked' | 'upstream_error' | 'upstream_timeout' | 'task_not_cancellable' | 'internal_error': Kode error ternormalisasi — status internal upstream tidak pernah bocor.
    - `message` string
  - `webhook_url` string, uri
  - `metadata` object
  - `created_at` string, date-time, required
  - `started_at` string, date-time
  - `completed_at` string, date-time

## Other responses

- `default`: Error envelope standar.

---

[API](https://skmtc.dev/getrun/apis/getrun-api.md) · [All operations](https://skmtc.dev/getrun/apis/getrun-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getrun/apis/getrun-api/revisions/2e80f8b28c48?raw)
