> 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/data-center-api-setup.md).

# Data Center API Setup

The Ativo Programs REST API lets your own scripts and tools read the Ativo configuration (teams, ARTs, PIs) and the PI plan data (objectives) of your Jira Data Center instance. Jira issue data is never processed in the Ativo backend; read it from Jira's own API.

On Jira Data Center, the API is served by your Jira node and authenticated with an **Ativo API token** created by a Jira administrator.

{% stepper %}
{% step %}

## Create a token

Open **Jira settings → Manage apps → Ativo Programs → REST API**.

Click **Create**, give the token a name that identifies the integration, and submit.

Copy the token now. It is shown only once.

Any Jira administrator can **revoke** any token on the same page, including tokens created by other administrators. Revocation is immediate.

<figure><img src="https://2916206105-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBAGNud2YIYXdGXre7dQK%2Fuploads%2FR4Vv6B2JtueqDDvCninj%2Fimage.png?alt=media&amp;token=bb44a25b-8957-4447-8de0-ad7370d21bec" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

## Call the API

The base URL is your Jira Data Center URL followed by `/rest/ativo-programs/1.0/api/1`. It is shown on the REST API admin page as well.

```sh
curl "https://<your-jira-url>/rest/ativo-programs/1.0/api/1/team" \
  -H "Authorization: Bearer <token>"
```

You get the list of teams as JSON and the header `X-API-Model-Version`.
{% endstep %}
{% endstepper %}

## In scripts

Store the token in your secret store, send it as the `Authorization: Bearer` header on every call, and rotate it by creating a new token and revoking the old one.

## Next

* [Endpoints](/rest-api/rest-api-endpoints.md): what you can fetch.
* [Version](/rest-api/api-version.md): how to detect breaking changes in the data model.
