> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/developer/rest-api/async-tasks.md).

# Async Tasks

Some REST API endpoints start long-running work and return an async task instead of waiting for the work to finish. These endpoints return a `taskId` and a polling `url`:

```json
{
    "taskId": "abc123",
    "url": "https://api.roboflow.com/my-workspace/asynctasks/abc123"
}
```

Use the polling URL to check whether the task is still running, completed, or failed.

## Get Task Status

Send a `GET` request to `/:workspace/asynctasks/:id`. Replace `:workspace` with the Workspace that owns the task and `:id` with the returned `taskId`.

```bash
$ curl --location "https://api.roboflow.com/my-workspace/asynctasks/abc123?api_key=$ROBOFLOW_API_KEY"
```

The API key must have access to the same Workspace used in the request path. Tasks from other Workspaces return `404`.

## Response Fields

```
- taskId (string) - The async task ID.
- status (string) - The current task status. Common statuses are created, running, completed, and failed. Terminal statuses are completed and failed.
- progress (object or null) - Task progress when available, in the form `{ "current": <number>, "total": <number> }`.
- result (object) - Present when the task completed successfully.
- error (string) - Present when the task failed.
```

## Running Task

```json
{
    "taskId": "abc123",
    "status": "running",
    "progress": {
        "current": 42,
        "total": 100
    }
}
```

## Completed Task

The `result` object depends on the endpoint that created the task. For example, a completed Universe Project fork returns the forked Project details:

```json
{
    "taskId": "abc123",
    "status": "completed",
    "progress": {
        "current": 100,
        "total": 100
    },
    "result": {
        "forked": true,
        "datasetUrl": "football-players-detection-3zvbc-a1b2c",
        "id": "my-workspace/football-players-detection-3zvbc-a1b2c",
        "name": "Football Players Detection",
        "url": "https://app.roboflow.com/my-workspace/football-players-detection-3zvbc-a1b2c"
    }
}
```

## Failed Task

```json
{
    "taskId": "abc123",
    "status": "failed",
    "progress": {
        "current": 64,
        "total": 100
    },
    "error": "Task failed"
}
```

## Errors

```
- 404 - The async task does not exist or belongs to another Workspace.
```
