---
title: "Renew Job Token Route"
method: POST
path: "/api/v1/nova/discovery/job/token"
tags: ["nova"]
---

# Renew Job Token Route

`POST /api/v1/nova/discovery/job/token`

## Request

- Base URL: `https://cp.xenovia.io` (the document declares no server; this is the origin it was published from)
- URL: `https://cp.xenovia.io/api/v1/nova/discovery/job/token`
- Auth: none declared

A fresh token with the same claims, and a lease heartbeat; a token
expired by up to an hour still renews. 401 ``job_terminal`` once the scan
failed or the assessment finished, 409 ``job_superseded``.

## Headers

- `Authorization` string, nullable

## Response `200`

Successful Response

- JobTokenRead
  - `token` string, required
  - `expires_at` string, date-time, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-04** `b475b750a0b7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/xenovia/apis/controlplane/changes/api/v1/nova/discovery/job/token/post.md)

---

[API](https://skmtc.dev/xenovia/apis/controlplane.md) - [All operations](https://skmtc.dev/xenovia/apis/controlplane/llms.txt) - [OpenAPI document](https://skmtc.dev/xenovia/apis/controlplane/revisions/3e25bef24f8f?raw)
