> For the complete documentation index, see [llms.txt](https://docs.ativo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ativo.io/rest-api/cloud-api-setup/migrating-from-legacy-api-tokens.md).

# Migrating from legacy API tokens

Until now, the Ativo Cloud REST API was reached at `https://cloud-api.ativo.io` with an API token created on the Ativo admin page. That service is being retired as we are moving to the new Atlassian Forge platform as described in [Cloud setup](/rest-api/cloud-api-setup.md).

{% hint style="warning" %}
Legacy API tokens keep working until **October 31st, 2026**. After that date `cloud-api.ativo.io` stops working.
{% endhint %}

## What changes, what stays

|                                          | Legacy                                           | Forge app REST API                                                                                                                          |
| ---------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Base URL                                 | `https://cloud-api.ativo.io/rest/api/1`          | `https://<your-site>.atlassian.net/gateway/api/svc/jira/apps/<app-id>_<environment-id>/rest/api/1` (shown on the Ativo REST API admin page) |
| Authentication                           | Ativo API token, `Authorization: Bearer <token>` | OAuth 2.0 access token, `Authorization: Bearer <token>`, refreshed by your script                                                           |
| Who sets it up                           | A Jira admin creates the token in Ativo          | A site admin enables the API once; the integration owner creates an OAuth 2.0 integration                                                   |
| Endpoint paths                           | `/team`, `/programs`, ...                        | Identical                                                                                                                                   |
| JSON responses and `X-API-Model-Version` |                                                  | Identical                                                                                                                                   |
| Rate limiting                            | Ativo's own limit                                | Atlassian's platform limits                                                                                                                 |

So the change is confined to two things: the base URL, and how your script obtains the bearer token.

## Checklist

{% stepper %}
{% step %}
Follow [Cloud setup](/rest-api/cloud-api-setup.md) steps 1 to 4 for each integration.
{% endstep %}

{% step %}
In your script, replace the base URL and replace the fixed token by the refresh step.
{% endstep %}

{% step %}
On the Ativo REST API admin page, **revoke** the legacy API token of that integration.
{% endstep %}
{% endstepper %}

## Where to see your legacy API tokens

Jira settings → Marketplace Apps → Ativo Programs → REST API.

The page lists the remaining legacy API tokens with their owner and creation date, and the revoke button. Once the list is empty, the migration is complete for your site.
