---
title: "Buat generation task"
method: POST
path: "/tasks"
tags: ["Tasks"]
---

# Buat generation task

`POST /tasks`

## Request

- Base URL: `https://getrun.id/v1`
- URL: `https://getrun.id/v1/tasks`
- Auth: HTTP bearer

Memvalidasi input terhadap parameter schema model, menyimpan price
snapshot, mereservasi saldo maksimum, lalu mengantrekan task.

Task gagal tidak ditagih; reservasi dilepas otomatis.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `model` string, required
  - `input` object, required: Parameter model sesuai `parameters_schema` pada detail model.
  - `quote_id` string: Opsional. Bila diberikan dan masih berlaku, harga quote dipakai sebagai snapshot.
  - `webhook_url` string, uri: Opsional; menimpa webhook default project untuk task ini.
  - `metadata` object: Key-value bebas milik client, dikembalikan apa adanya.

## Response `201`

Task diterima dan berstatus `queued`.

- 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)
