---
title: "Delete several task results"
method: POST
path: "/v1/tasks/results/bulk-delete"
tags: ["Tasks"]
---

# Delete several task results

`POST /v1/tasks/results/bulk-delete`

## Request

- Base URL: `https://api.hotapi.ai`
- URL: `https://api.hotapi.ai/v1/tasks/results/bulk-delete`
- Auth: HTTP bearer

Delete the generated files for up to 500 tasks in one call. Same semantics as `DELETE /v1/tasks/{id}/result`, applied per task: tasks that are still running or waiting on the result cache are listed in `failed` and left untouched, and ids that are not yours are listed in `not_found`.

## Request body

- object
  - `ids` string[], required: Task ids whose results should be deleted. Ids outside your organization are reported in `not_found` and nothing happens to them.

## Response `200`

Outcome of deleting several task results in one call.

- DeletedTaskResults: Outcome of deleting several task results in one call.
  - `data` object[], required
    - `id` string, required
    - `object` 'task_result', required
    - `deleted` boolean, required: True when this call cleared the result: the asset URLs are gone from your task. `assets_deleted` says how many objects we removed for you.
    - `already_deleted` boolean, required: True when there was nothing left to clear: a prior deletion, or a task that never produced assets (failed/cancelled).
    - `assets_deleted` integer, required: R2 objects this call removed.
    - `assets_unreachable` integer, required: Assets hosted by the model provider that we cannot delete. Their URLs are cleared here; the provider's own copy is governed by its policy.
    - `cdn_purged_links` integer, required: Links invalidated at the CDN edge. When this is lower than `assets_deleted`, the remaining links stop working only when their cache entry expires (up to 4 hours).
    - `deleted_at` integer, nullable, required: Unix seconds the deletion was recorded, when applicable.
    - `status` string, required: deleted | already_deleted | no_result
  - `deleted_count` integer, required
  - `already_deleted_count` integer, required
  - `not_found` string[], required: Task ids that do not belong to this organization.
  - `failed` string[], required: Task ids whose deletion errored. Nothing was recorded for them, so retrying the same call is safe.

## Other responses

- `400`: Standard error envelope returned by every error response (OpenAI-style).
- `401`: Standard error envelope returned by every error response (OpenAI-style).
- `404`: Standard error envelope returned by every error response (OpenAI-style).
- `429`: Standard error envelope returned by every error response (OpenAI-style).

---

[API](https://skmtc.dev/hotapi/apis/hotapi-gateway.md) · [All operations](https://skmtc.dev/hotapi/apis/hotapi-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/hotapi/apis/hotapi-gateway/revisions/9b6578b0c389?raw)
