---
title: "Check Async Tasks"
method: POST
path: "/api/tasks/agent/{agent_id}/check-async"
tags: ["tasks"]
---

# Check Async Tasks

`POST /api/tasks/agent/{agent_id}/check-async`

## Request

- Base URL: `https://api.tintin-x.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tintin-x.com/api/tasks/agent/{agent_id}/check-async`
- Auth: HTTP bearer

Generic server-side check of all in_progress async tasks.

Reads each task's structured check recipe and executes it:
1. Call check.url with check.method (GET/POST with check.body)
2. If POST returns job_id, wait poll_delay_s then poll the result
3. If response has check.success_key → deliver to conversation, mark done
4. If generating/pending → skip
5. If error → deliver error, mark done

This endpoint is fully generic — it doesn't know what the check URLs do.
The recipes are written by the job submission layer (media.py, etc).
Called by heartbeat: `curl -s -X POST "$API_BASE_URL/api/tasks/agent/$AGENT_ID/check-async"
  -H "Authorization: Bearer $API_TOKEN"`

## Path parameters

- `agent_id` string, uuid, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tintin-x/apis/tintin-api.md) · [All operations](https://skmtc.dev/tintin-x/apis/tintin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tintin-x/apis/tintin-api/revisions/8839a8d0a66c?raw)
