Browse articles

API & AI

# API tokens and the REST API

Create an API token in the dashboard, call the REST API with a Bearer header to automate storage, backups, and restores, then explore the OpenAPI specification at /docs/api.

2 min readUpdated: October 23, 2026[Baca dalam Bahasa Indonesia](/docs/token-api)

Everything you do in the dashboard, from creating buckets to running restores, is also available through the REST API. API tokens are used for automation such as CI/CD scripts, and also for the [MCP server](/docs/mcp).

## 1\. Create an API token

1.  Open **Settings → MCP & API tokens**.
2.  Enter a **Token name**, for example `ci-pipeline`.
3.  Click **Create token**.
4.  Copy the token that starts with `lt_`. It is shown only once and is not stored on our servers.

Each organisation can have at most 20 active tokens. The token list shows each token's prefix and when it was last used, so old tokens are easy to recognise. Tokens you no longer use can be revoked at any time with **Revoke**; applications using them are rejected immediately. Create one token per system or person so that revoking one does not affect the others.

## 2\. Call the API

The API base URL is `https://linuxteknosia.cloud/api/v1`. Send the token in the `Authorization` header:

```bash
export LT_TOKEN="lt_..."
API=https://linuxteknosia.cloud/api/v1

curl -s $API/app/overview -H "Authorization: Bearer $LT_TOKEN"
curl -s $API/app/storage -H "Authorization: Bearer $LT_TOKEN"

curl -s -X POST $API/app/storage/buckets -H "Authorization: Bearer $LT_TOKEN" \
  -H "Content-Type: application/json" -d '{"name":"web-assets-example-co","quota_gb":5}'
```

The bucket name in API URLs is the same name shown in the dashboard and used by S3 clients (the `name` field of the response). Bucket names are global; if a name is already taken, the API answers `409` and you need to choose another.

## 3\. Asynchronous commands

Commands carried out by the agent, such as running a job, restoring, and testing a connection, answer `202` with a `command_id`. Poll its status until it finishes:

```bash
curl -s -X POST $API/app/jobs/<job_id>/run -H "Authorization: Bearer $LT_TOKEN"
# {"command_id":"<uuid>"}

curl -s $API/app/commands/<command_id> -H "Authorization: Bearer $LT_TOKEN"
# status: pending → delivered → acked
```

## 4\. OpenAPI specification

The OpenAPI 3.1 specification is available at `https://linuxteknosia.cloud/api/v1/openapi.json` and `https://linuxteknosia.cloud/api/v1/openapi.yaml`, with an interactive reference page at [API reference](/docs/api). Import it into Postman, Insomnia, Bruno, or an SDK generator such as `openapi-generator`.

## 5\. Limitations

-   A token is valid for the whole organisation that owns it.
-   A token cannot create or revoke other tokens; manage tokens only from the dashboard.
-   Payments and subscriptions are handled only from the dashboard.
-   Object data access (upload, download) uses the S3 protocol with an [access key](/docs/access-key), not the API token.

## Troubleshooting

-   **401**: the token is wrong, was truncated when copied, or has been revoked.
-   **403 when managing tokens**: API tokens cannot create or revoke tokens; use the dashboard.
-   **402 with `"upgrade": true`**: the feature or limit is not included in your plan. See **Subscription & billing**.
-   **422**: invalid input; read the message in the `error` field.
-   **"maksimal 20 token aktif per organisasi"** (at most 20 active tokens): revoke tokens you no longer use.

## See also

-   [MCP for AI assistants](/docs/mcp)
-   [API reference](/docs/api)

Still need help?

Open a support ticket from the dashboard and our team will reply as soon as possible.

[Help center](/en/help)[Open a ticket](/app/support/new)