---
title: "Update Job Status"
method: POST
path: "/v1/hunting/jobs/{id}/status"
tags: ["Threat Hunting"]
---

# Update Job Status

`POST /v1/hunting/jobs/{id}/status`

## Request

- Base URL: `https://api.recordedfuture.com/autonomous-threat-operations`
- URL: `https://api.recordedfuture.com/autonomous-threat-operations/v1/hunting/jobs/{id}/status`
- Auth: one of:
  - API key in header `X-RFToken`
  - OAuth 2
    - Authorization code: `https://id.recordedfuture.com/authorize`
    - Token URL: `https://id.recordedfuture.com/token`

Transition a threat hunt job through its lifecycle (started, completed, failed) with optional outcome details.

## Path parameters

- `id` string, uuid, required: Threat Hunt Job ID

## Request body

- object
  - `status` 'started' | 'completed' | 'failed', required
  - `message` string
  - `externalId` string

## Response `200`

Status updated

- object: Result of the status transition, showing both the previous and current status of the threat hunt job.
  - `previousStatus` 'ready' | 'started' | 'completed' | 'abandoned' | 'failed'
  - `currentStatus` 'ready' | 'started' | 'completed' | 'abandoned' | 'failed'

## Other responses

- `404`: Threat hunt job not found

---

[API](https://skmtc.dev/recordedfuture/apis/autonomous-threat-operations-api.md) - [All operations](https://skmtc.dev/recordedfuture/apis/autonomous-threat-operations-api/llms.txt) - [OpenAPI document](https://skmtc.dev/recordedfuture/apis/autonomous-threat-operations-api/revisions/a984b61a0cf8?raw)
