---
title: "Resume a bundled job at the audit gate – Superbot API"
canonical_url: "https://superbot.gg/developers/builds#resumeXBuild"
last_updated: "2026-10-01"
summary: "Re-enters a job that built and bundled but failed at the gate AT THE GATE, over its stored artifact: the audit and acceptance stages run again and, if they pass, the ordinary publish and verify path follows. No plan or build runs. Refused with 409 and the named reason when the job has no bundle, is not terminal, is already published, has no spec, or its artifact is gone or no longer matches the bundle sha256."
---

> Markdown twin of https://superbot.gg/developers/builds#resumeXBuild (the HTML page is canonical).
> The site index for agents is /llms.txt; every content page has a twin at its path plus `.md`.

# Resume a bundled job at the audit gate

`POST /v1/x-builds/{id}/resume`

Re-enters a job that built and bundled but failed at the gate AT THE GATE, over its stored artifact: the audit and acceptance stages run again and, if they pass, the ordinary publish and verify path follows. No plan or build runs. Refused with 409 and the named reason when the job has no bundle, is not terminal, is already published, has no spec, or its artifact is gone or no longer matches the bundle sha256.

- Operation id: `resumeXBuild`
- Group: [Builds](https://superbot.gg/developers/builds.md)
- Auth: A caller key holding `builds:admin` (`Authorization: Bearer sbc_…` or `x-api-key: sbc_…`), or a signed-in session.
- Scopes: `builds:admin`

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | required |  |

## Response 200

Done.

`application/json`: object.

- `ok` (boolean, required): One of `true`.
- `id` (string, required)

## Errors

Every refusal carries `error`, `message`, `doc_url` and `request_id`; the gateway routes answer in the dialect you dialed.

| Status | Codes | When |
| --- | --- | --- |
| 400 | [`invalid_request`](https://superbot.gg/developers#errors-invalid_request) | The request is malformed or a parameter is invalid; `param` names the field. |
| 401 | [`unauthorized`](https://superbot.gg/developers#errors-unauthorized) | The bearer is missing, malformed or unknown. |
| 403 | [`insufficient_scope`](https://superbot.gg/developers#errors-insufficient_scope) | The key lacks a scope (insufficient_scope), is revoked, or may not call this route. |
| 404 | [`not_found`](https://superbot.gg/developers#errors-not_found) | No such resource on this account. |
| 409 | [`conflict`](https://superbot.gg/developers#errors-conflict) | The resource is not in a state that allows this change. |

## Examples

```sh
curl -sS -X POST "https://superbot.gg/v1/x-builds/$ID/resume" \
  -H "Authorization: Bearer $SUPERBOT_API_KEY"
```

```js
const id = 'ID';
const res = await fetch(`https://superbot.gg/v1/x-builds/${id}/resume`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.SUPERBOT_API_KEY}`,
  },
});
console.log(res.status, await res.json());
```

```python
import os
import requests

id = "ID"
res = requests.request(
    "POST",
    f"https://superbot.gg/v1/x-builds/{id}/resume",
    headers={
        "Authorization": f"Bearer {os.environ['SUPERBOT_API_KEY']}",
    },
)
print(res.status_code, res.json())
```
