> ## Documentation Index
> Fetch the complete documentation index at: https://docs.promptguard.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Versioning & support

> How the API is versioned, what counts as a breaking change, how much notice you get, how long each version is supported, and what has been removed.

These are the promises behind every notice we send you. There are three, plus
the rules that decide when one of them applies.

## API and proxy

You get **at least 90 days' notice** before a breaking change to the API or
the proxy.

### How the API is versioned

The version is in the path: every endpoint is under `/api/v1`. There is one
version, `v1`, and no version header or dated pin to set. Every request
already names its version, so nothing moves under a client that has never
chosen one.

A breaking change ships as a new endpoint or a new version, never as a change
to an existing `/api/v1` endpoint. If a `v2` ever ships, `v1` keeps working
unchanged for at least 90 days after we announce it.

### What counts as a breaking change

* Removing or renaming an endpoint, a request or response field, or an error
  code.
* Changing a field's type, or the default used when you leave a field out.
* Making an optional request field required.
* Tightening validation, so a request that used to be accepted is refused.
* Changing the status code returned for an existing condition.
* Changing what an existing field means, even if its type stays the same.

### What changes without notice

These ship whenever they are ready and are listed in the
[changelog](https://docs.promptguard.co/changelog.md):

* New endpoints.
* New optional request fields.
* New response fields and headers.
* New error codes for new conditions, and new values in fields that list
  things, such as threat types.
* Loosened validation.
* Changes to what a scan detects. Detection improves continuously; the shape
  of the request and response does not change with it.

Write clients that ignore fields they do not recognise and handle an unknown
error code as a generic failure.

### How a deprecation is signalled

A deprecated endpoint is marked as deprecated in the
[API reference](https://docs.promptguard.co/api-reference/introduction.md), and every response from it
carries a `Deprecation: true` header and a `Sunset` header with the date it
will be removed. It is listed in the table below.

## SDKs

The SDKs use semantic versioning: anything in an SDK's public interface is
removed or renamed only in a new major version. When a new major version of an SDK ships, the **previous
major version gets security fixes for 12 months**.

Moving from 1.x to 2.0 of the Python SDK, the Node.js SDK or the CLI:
[Upgrade to SDK and CLI 2.0](https://docs.promptguard.co/releases/sdk-v2-upgrade.md) lists every removed
call and what to use instead.

## Self-hosted

A Release of the self-hosted platform is **supported while it is less than 90
days old**. Security fixes ship in new Releases, **never as backports** to
older ones: to get a fix, upgrade.

## Deprecations and removals

| Date | What | Status | What to use instead |
| - | - | - | - |
| 2026-12-09 | `DELETE /api/v1/agent/{agent_id}/session/{session_id}` | Deprecated on 2026-08-10, to be removed on this date. It has always been a no-op: session state is not kept between requests. | Nothing. Stop calling it. |
| — | `active_sessions` in the response of `GET /api/v1/agent/{agent_id}/stats` | Deprecated on 2026-08-10. It is always `0`. No removal date: it stays until a new API version. | Nothing. |
| 2026-08-26 | Node.js SDK 2.0.0: `pg.completions`, `pg.embeddings`, `pg.scrape`, `pg.redteam.runAutonomous()` and `pg.redteam.intelligenceStats()`, and their exported types | Removed. They called endpoints the API does not serve, so they never worked. | Delete the import. For chat traffic, `pg.chat.completions.create(...)`. |
| 2026-08-26 | Python SDK 2.0.0: `completions`, `embeddings`, `scrape`, `redteam.run_autonomous()` and `redteam.intelligence_stats()`, on both clients | Removed, for the same reason. | For chat traffic, `client.chat.completions.create(...)`. For the rest, nothing: delete the call. See [Upgrade to SDK and CLI 2.0](https://docs.promptguard.co/releases/sdk-v2-upgrade.md#python-sdk). |
| 2026-08-26 | CLI 2.0.0: `promptguard logs`, `promptguard events`, `promptguard redteam --autonomous` and the intelligence-stats output | Removed, for the same reason. | Security events are in the dashboard. |
| 2026-08-24 | `GET /api/v1/api-keys/{key_id}/reveal` | Removed. API keys are stored as a one-way digest and cannot be shown again. | A key is shown once, when it is created. To get a new one, create a key with `POST /api/v1/api-keys` or rotate it in the dashboard. |
| 2026-04-06 | The Python MCP server package, `promptguard-mcp-server` | Removed. | [`promptguard mcp`](https://docs.promptguard.co/tools/mcp), built into the CLI. |

## Where you hear about it

* **A change that needs you to act** comes as an email to the owners and
  admins of each affected organization and to the technical contact on each
  self-host licence, whatever your marketing email preferences, and is also
  listed in the [changelog](https://docs.promptguard.co/changelog.md).
* **What changed for you** is in the [changelog](https://docs.promptguard.co/changelog.md), dated by the
  release that delivered it. It has an RSS feed. Filter it by the product you
  use, or show only [breaking changes](https://docs.promptguard.co/changelog.md?tags=Breaking) and
  [deprecations](https://docs.promptguard.co/changelog.md?tags=Deprecation). An entry that needs you to act
  is marked **Breaking change** or **Deprecation** and says what to do.
* **What to do when you upgrade** a self-hosted deployment or roll out the
  desktop agent is on [Platform upgrade notes](https://docs.promptguard.co/releases/platform.md) and
  [Shadow AI desktop agent upgrade notes](https://docs.promptguard.co/releases/desktop-agent.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.