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

# Versioning

> Understand REST versions, SDK compatibility, Blueprint revisions, and deprecation.

The REST API is versioned in the URL. The current public contract is `/v1`.

## Compatibility policy

Within a REST major version, Infragrid may make additive changes such as:

* adding optional response fields
* adding endpoints
* adding enum values where clients are expected to handle unknown values
* expanding documented limits

Removing a field, changing its meaning, or making an optional input required needs a new major API version or explicit migration guidance.

<Warning>
  Parse only the fields your integration needs and tolerate new optional fields. Do not use strict whole-response equality in production.
</Warning>

## SDKs and MCP

The TypeScript SDK, Python SDK, CLI, and MCP adapter use semantic package versions. Their initial implementation version is `0.1.0`; registry publication is a separate release milestone.

Pin versions in production and review the [changelog](/changelog) before upgrading.

## Blueprint revisions

Published Blueprint revisions are immutable and have their own integer revision number plus a digest. Supplying `revisionId` to run creation pins that exact revision. Omitting it pins the latest published revision atomically at creation time.

API version and Blueprint revision solve different problems:

| Version                | Controls                                      |
| ---------------------- | --------------------------------------------- |
| REST `/v1`             | HTTP resources and wire contract              |
| SDK package version    | Client behavior and builder API               |
| Blueprint `revisionId` | The automation definition executed by one run |

## Deprecation

Deprecated SDK aliases remain documented during their migration window. For example, `blueprints.run()` delegates to `blueprints.runs.create()`, and workflow `goto()` delegates to `navigate()`.

New code should use the canonical methods.


## Related topics

- [Changelog](/changelog.md)
