---
title: "Force a Jira OAuth token refresh and return the updated status payload. Useful when an agent observes an expired token via tracker-status / db-query and wants to recover without restarting the server or re-running 3LO."
method: POST
path: "/api/trackers/jira/refresh"
tags: ["Trackers"]
---

# Force a Jira OAuth token refresh and return the updated status payload. Useful when an agent observes an expired token via tracker-status / db-query and wants to recover without restarting the server or re-running 3LO.

`POST /api/trackers/jira/refresh`

## Response `200`

Token refreshed; returns same shape as /status

- object
  - `provider` 'jira', required
  - `connected` boolean, required
  - `cloudId` string, nullable, required
  - `siteUrl` string, nullable, required
  - `tokenExpiresAt` string, nullable, required
  - `scope` string, nullable, required
  - `hasManageWebhookScope` boolean, required
  - `webhookTokenConfigured` boolean, required
  - `webhookUrl` string, required
  - `redirectUri` string, required
  - `webhookIds` object[], required
    - `id` integer, required
    - `expiresAt` string, required
    - `jql` string, required
  - `manualWebhookInstructions` string

## Other responses

- `409` — Jira not connected (no refresh token stored)
- `500` — Refresh failed (e.g. revoked grant, network error)
- `503` — Jira integration not configured

---

[API](https://skmtc.net/desplega-ai/apis/agent-swarm-api.md) · [All operations](https://skmtc.net/desplega-ai/apis/agent-swarm-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/desplega-ai/agent-swarm-api/versions/db1079e034dc/schema)
