# Versioning

> The API's date version, how deprecations are announced, the 0.x policy, and what v1 will promise.

**What this is:** how the API changes and how you hear about it. **When you need it:** before you ship something that depends on it.

**curl**


```bash
curl -s "$TASKSMATE_API_URL/openapi.public.json" | python -c "import json,sys; print(json.load(sys.stdin)['info']['version'])"
```

**Python**


```python
import tasksmate
print(tasksmate.API_VERSION)   # the contract date this SDK was generated from
```

**tm**


```bash
tm --version
```

## Today: 0.x — pre-release, no compatibility promise yet

-   **The version:** the API is `/v1` and its contract is dated **`2026-09-25`** — the `info.version` of [`/openapi.public.json`](https://developers.tasksmate.indrasol.com/openapi.public.json) and the `api_version` in every webhook payload.
-   **Until v1 is declared stable,** any release may change anything.
-   **So:** pin the SDK to an exact version, and read the [changelog](https://developers.tasksmate.indrasol.com/changelog/) before upgrading.

## How a deprecation is announced

-   In the contract: the operation is marked `deprecated` (a badge in the reference).
-   On the wire: a retired operation answers `Deprecation`, `Sunset` (the date it goes) and, when there is one, a `Link: <…>; rel="successor-version"`.
-   The Python SDK turns those headers into one `DeprecationWarning` per operation.

Deprecated in the contract today:

-   [`projects.replace`](https://developers.tasksmate.indrasol.com/reference/operations/projectsreplace/) PUT /v1/projects/{project\_id}
-   [`tasks.replace`](https://developers.tasksmate.indrasol.com/reference/operations/tasksreplace/) PUT /v1/tasks/{task\_id}
-   [`organization-members.replace`](https://developers.tasksmate.indrasol.com/reference/operations/organization-membersreplace/) PUT /v1/organization-members/{user\_id}/{org\_id}
-   [`designations.replace`](https://developers.tasksmate.indrasol.com/reference/operations/designationsreplace/) PUT /v1/designations/{designation\_id}
-   [`project-members.replace`](https://developers.tasksmate.indrasol.com/reference/operations/project-membersreplace/) PUT /v1/project-members/{user\_id}/{project\_id}
-   [`teams.replace`](https://developers.tasksmate.indrasol.com/reference/operations/teamsreplace/) PUT /v1/teams/{team\_id}
-   [`teams.replace_member`](https://developers.tasksmate.indrasol.com/reference/operations/teamsreplace_member/) PUT /v1/teams/{team\_id}/members/{user\_id}
-   [`goals.replace`](https://developers.tasksmate.indrasol.com/reference/operations/goalsreplace/) PUT /v1/projects/{project\_id}/goals/{goal\_id}

## What v1 will promise

When TasksMate declares v1 stable, this page will carry the written compatibility promise:

-   which changes are additive and safe;
-   how long a deprecated operation keeps working after its `Sunset` is announced;
-   how dated versions move.

Until then, the 0.x note above applies to every page of this site.

---
Source: https://developers.tasksmate.indrasol.com/guides/versioning/
