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

# Управление токенами аккаунта (Account Token) платформы AceDataCloud

> Platform API guide - Ace Data Cloud

**Токен аккаунта (Account Token, ранее Platform Token)** — это «ключ уровня аккаунта», с помощью которого разработчики программно управляют ресурсами платформы AceDataCloud (заявками на услуги, API-учётными данными, заказами, записями вызовов, балансом, файлами и т. д.). Его роль аналогична пользовательскому Token после входа во фронтенд; по умолчанию он не имеет срока действия. Обычные пользователи могут управлять только своими токенами, а суперадминистраторы могут в соответствии с правами управлять токенами других аккаунтов.

Токен аккаунта обращается к интерфейсам платформы с текущими правами принадлежащего ему аккаунта: базовые права, непосредственно предоставленные права и права групп пользователей объединяются и вступают в силу; после добавления в группу или удаления из неё следующая операция будет проверяться по новым правам. Доступ к конкретным ресурсам, таким как заявки и заказы, по-прежнему требует проверки принадлежности. Токен аккаунта по умолчанию не истекает, используйте его только в доверенной среде и надёжно храните.

> ℹ️ Этот интерфейс относится к **API управления платформой AceDataCloud**, единый префикс: `https://platform.acedata.cloud/api/v1/`. Полный индекс интерфейсов см. в [Получить список документации платформы AceDataCloud](https://platform.acedata.cloud/documents/platform-document-list).

## Токен аккаунта vs API-учётные данные

Два типа ключей, которые новички чаще всего путают, сначала внимательно ознакомьтесь:

| Параметр | **Токен аккаунта** (этот документ) | **API-учётные данные (Credential)** |
| - | - | - |
| Назначение | Вызов интерфейсов управления `https://platform.acedata.cloud/**` | Вызов бизнес-интерфейсов `https://api.acedata.cloud/**` (OpenAI, Midjourney, Suno, Veo и т. д.) |
| Формат | `platform-v1-` + 64 шестнадцатеричных символа (всего 76 символов) | 32 шестнадцатеричных символа |
| Один аккаунт | Обычно 1–2 токена | 1–N для каждой заявки на услугу |
| Точка создания | [Консоль Account Token](https://platform.acedata.cloud/console/platform-tokens) | [Создать API-учётные данные платформы AceDataCloud](https://platform.acedata.cloud/documents/platform-credential-create) |
| Условия недействительности | Немедленно становится недействительным после удаления; истекает при ненулевом `expiration` | Можно задать лимит квоты, срок действия, привязать исходный IP |

Если вы просто хотите вызвать GPT-4.1, вам нужны **API-учётные данные**, а не токен аккаунта.
Если вы хотите написать автоматизированный скрипт для управления пополнениями, просмотра ежемесячных счетов, массовой выдачи учётных данных членам команды — тогда используйте токен аккаунта.

***

## Создание в консоли одним нажатием (рекомендуется)

1. Войдите на [https://platform.acedata.cloud](https://platform.acedata.cloud).
2. Перейдите в боковом меню → «Разработчик» → «[Account Token](https://platform.acedata.cloud/console/platform-tokens)».
3. Нажмите кнопку «Создать» в правом верхнем углу, и сразу получите токен `platform-v1-...`, **нажмите кнопку копирования и сохраните его в менеджере паролей**.

![Консоль Account Token](https://cdn.acedata.cloud/6g86oz.png)

> ⚠️ Текущие ответы создания, списка и деталей возвращают токен в открытом виде. Обращайтесь со всем ответом как с секретом, не записывайте его в журналы, аналитические платформы или постоянное хранилище фронтенда; клиент также не должен полагаться на то, что список будет постоянно возвращать открытый текст.

***

## Создание токена аккаунта через API

### Обзор интерфейса

| Пункт | Содержание |
| - | - |
| Метод | `POST` |
| URL | `https://platform.acedata.cloud/api/v1/platform-tokens/` |
| Аутентификация | ✅ Любой существующий токен аккаунта или JWT браузерной сессии |
| Body | `application/json` (можно передать пустой объект `{}`) |

### Описание аутентификации (проблема курицы и яйца)

> Как получить первый токен? Ответ — **через консоль**: после входа в браузере консоль вызывает `POST /platform-tokens/` с JWT-аутентификацией и выдаёт вам первый токен.
> После этого вы можете использовать любой существующий токен `platform-v1-...` для создания новых.

Формат заголовков запроса:

```http theme={null}
Authorization: Bearer ${PLATFORM_TOKEN}
Content-Type: application/json
```

### Пример запроса

```shell theme={null}
curl -X POST 'https://platform.acedata.cloud/api/v1/platform-tokens/' \
  -H 'accept: application/json' \
  -H "authorization: Bearer ${PLATFORM_TOKEN}" \
  -H 'content-type: application/json' \
  -d '{}'
```

### Ответ (HTTP 201)

```json theme={null}
{
  "id": "3264f1aa-cbe1-4e2c-a434-95adba4f8304",
  "token": "platform-v1-<REDACTED>",
  "expiration": null,
  "user_id": "89518d07-5560-4b05-92c1-667f3ddf6a4b",
  "created_at": "2026-04-26T15:50:11.123456Z",
  "updated_at": "2026-04-26T15:50:11.123456Z",
  "used_at": null
}
```

### Описание полей

| Поле | Тип | Описание |
| - | - | - |
| `id` | UUID | Первичный ключ токена, используется при удалении / запросе деталей |
| `token` | string | Открытый текст токена аккаунта. Формат `platform-v1-` + 64 шестнадцатеричных символа (всего 76 символов), должен обрабатываться как секрет |
| `expiration` | int \| null | Время истечения (метка времени в секундах). `null` означает, что срок действия не задан |
| `user_id` | UUID | ID принадлежащего пользователя. Также это значение параметра `?user_id=`, которое обязательно передавать во всех последующих интерфейсах списков |
| `created_at` | datetime (ISO8601) | Время создания |
| `updated_at` | datetime (ISO8601) | Время обновления |
| `used_at` | datetime \| null | Время последнего использования для аутентификации. Если никогда не использовался — `null`, можно использовать для обнаружения «токенов-зомби» |

***

## Получение списка токенов аккаунта

### Обзор интерфейса

| Пункт | Содержание |
| - | - |
| Метод | `GET` |
| URL | `https://platform.acedata.cloud/api/v1/platform-tokens/` |
| Аутентификация | ✅ Требуется токен аккаунта |

### Обязательные параметры запроса

> ⚠️ **Необходимо передать `?user_id=<your_user_id>`**. Причина: интерфейс списка выполняет проверку прав **для каждого объекта** в результатах пагинации; если `user_id` не передан, при первом объекте, который вам не принадлежит, запрос будет отклонён с ответом `403 permission_denied`.

Как получить `user_id`:

1. Откройте в браузере [https://auth.acedata.cloud/user/profile](https://auth.acedata.cloud/user/profile), в верхней части страницы отображается полный UUID.
2. Или напрямую подставьте обратно поле `user_id` из ответа `POST /platform-tokens/`.

### Параметры запроса

| Параметр | Обязательный | Тип | Описание |
| - | - | - | - |
| `user_id` | ✅ | UUID | ID пользователя текущей учётной записи |
| `limit` | ❌ | int | Количество записей на странице, по умолчанию 10, максимум 100 |
| `offset` | ❌ | int | Смещение |
| `ordering` | ❌ | string | Поле сортировки, по умолчанию `-created_at` |

### Пример запроса

```shell theme={null}
curl 'https://platform.acedata.cloud/api/v1/platform-tokens/?user_id=89518d07-5560-4b05-92c1-667f3ddf6a4b&limit=5' \
  -H 'accept: application/json' \
  -H "authorization: Bearer ${PLATFORM_TOKEN}"
```

### Ответ（HTTP 200）

```json theme={null}
{
  "count": 2,
  "items": [
    {
      "id": "51c575a2-801c-4211-bc47-711452a8c8c9",
      "token": "platform-v1-<REDACTED>",
      "expiration": null,
      "user_id": "89518d07-5560-4b05-92c1-667f3ddf6a4b",
      "created_at": "2026-04-26T15:41:32.761705Z",
      "updated_at": "2026-04-26T15:41:32.761726Z",
      "used_at": null
    }
  ]
}
```

> Ответ с пагинацией этого интерфейса использует `count` + `items`. Другие интерфейсы платформы могут использовать иную структуру, ориентируйтесь на соответствующую документацию и фактический ответ.

***

## Получение сведений о токене учётной записи

| Пункт | Содержание |
| - | - |
| Метод | `GET` |
| URL | `https://platform.acedata.cloud/api/v1/platform-tokens/<id>`（**без завершающего слеша**） |
| Авторизация | ✅ Доступно только создателю токена или суперадминистратору |

```shell theme={null}
curl 'https://platform.acedata.cloud/api/v1/platform-tokens/51c575a2-801c-4211-bc47-711452a8c8c9' \
  -H 'accept: application/json' \
  -H "authorization: Bearer ${PLATFORM_TOKEN}"
```

Структура ответа совпадает с элементом списка, `HTTP 200`.

***

## Удаление токена учётной записи

| Пункт | Содержание |
| - | - |
| Метод | `DELETE` |
| URL | `https://platform.acedata.cloud/api/v1/platform-tokens/<id>`（**без завершающего слеша**） |
| Авторизация | ✅ Удалить может только создатель токена или суперадминистратор |

```shell theme={null}
curl -X DELETE 'https://platform.acedata.cloud/api/v1/platform-tokens/3264f1aa-cbe1-4e2c-a434-95adba4f8304' \
  -H "authorization: Bearer ${PLATFORM_TOKEN}"
```

* При успехе возвращается `HTTP 204 No Content`, без тела ответа.
* После удаления токен **немедленно становится недействительным**, все использующие его сервисы сразу получат `401`.
* Повторный запрос этого `id` вернёт `404`.

> ⚠️ Удаление необратимо. Если вы подозреваете утечку токена, можно **сначала создать новый, переключить бизнес-сторону, а затем удалить старый**.

***

## Неподдерживаемые операции

| Операция | HTTP | Описание |
| - | - | - |
| Изменение `PATCH` | 405 | После создания токена учётной записи **не поддерживается изменение каких-либо полей**. Для переименования и подобных целей удалите его и создайте заново |
| Замена `PUT` | 405 | То же |

***

## Краткая справка по кодам ошибок

| HTTP | `code` | Распространённая причина |
| - | - | - |
| 401 | `not_authenticated` | Отсутствует заголовок `Authorization` или токен был удалён |
| 403 | `permission_denied` | В интерфейсе списка отсутствует `?user_id=` или выполняется доступ к сведениям о чужом токене |
| 404 | `not_found` | `id` не существует или был удалён |
| 405 | `method_not_allowed` | К интерфейсу сведений был отправлен `PATCH`/`PUT` |

Единый формат ответа об ошибке:

```json theme={null}
{
  "detail": "You do not have permission to perform this action.",
  "code": "permission_denied",
  "trace_id": "0a88956213edf6e62b71695ee2df0eff"
}
```

При диагностике предоставьте `trace_id` службе поддержки или укажите его в тикете — это позволит быстро найти логи.

***

## Полный пример кода

### Python

```python theme={null}
import os
import requests

BASE = "https://platform.acedata.cloud/api/v1"
PLATFORM_TOKEN = os.environ["PLATFORM_TOKEN"]
USER_ID = "89518d07-5560-4b05-92c1-667f3ddf6a4b"

headers = {
    "accept": "application/json",
    "authorization": f"Bearer {PLATFORM_TOKEN}",
    "content-type": "application/json",
}

# 1. 创建新令牌
created = requests.post(f"{BASE}/platform-tokens/", headers=headers, json={}).json()
print("新令牌：", created["token"])
print("UserID：", created["user_id"])

# 2. 列表
listing = requests.get(
    f"{BASE}/platform-tokens/",
    headers=headers,
    params={"user_id": USER_ID, "limit": 50},
).json()
print(f"共 {listing['count']} 枚令牌")

# 3. 删除（注意末尾无斜杠）
resp = requests.delete(f"{BASE}/platform-tokens/{created['id']}", headers=headers)
assert resp.status_code == 204, resp.text
```

### Node.js

```javascript theme={null}
const BASE = 'https://platform.acedata.cloud/api/v1'
const PLATFORM_TOKEN = process.env.PLATFORM_TOKEN
const USER_ID = '89518d07-5560-4b05-92c1-667f3ddf6a4b'

const headers = {
  accept: 'application/json',
  authorization: `Bearer ${PLATFORM_TOKEN}`,
  'content-type': 'application/json',
}

// 创建
const created = await fetch(`${BASE}/platform-tokens/`, {
  method: 'POST',
  headers,
  body: '{}',
}).then((r) => r.json())

// 列表
const url = new URL(`${BASE}/platform-tokens/`)
url.searchParams.set('user_id', USER_ID)
const listing = await fetch(url, { headers }).then((r) => r.json())
console.log(`共 ${listing.count} 枚令牌`)

// 删除（末尾无斜杠）
await fetch(`${BASE}/platform-tokens/${created.id}`, { method: 'DELETE', headers })
```

***

## Использование в других API платформы

Поместите `platform-v1-...` напрямую в заголовок `Authorization: Bearer ...`, чтобы вызывать любой интерфейс платформы, требующий авторизации:

```shell theme={null}
curl 'https://platform.acedata.cloud/api/v1/applications/?user_id=89518d07-5560-4b05-92c1-667f3ddf6a4b' \
  -H "authorization: Bearer ${PLATFORM_TOKEN}"
```

> Он **полностью отличается** от 32-значного шестнадцатеричного API-ключа, используемого бизнес-интерфейсами `https://api.acedata.cloud/**` (OpenAI, Midjourney, Suno, Veo и т. д.). Не смешивайте их — если указать токен учётной записи в бизнес-интерфейсе, вы получите `401`, и наоборот.

***

## Связанные интерфейсы

* [Получение списка заявок на сервисы платформы AceDataCloud](https://platform.acedata.cloud/documents/platform-application-list) — просмотр того, на какие сервисы вы подали заявки, с помощью токена аккаунта
* [Создание API-учётных данных платформы AceDataCloud](https://platform.acedata.cloud/documents/platform-credential-create) — выпуск 32-значных учётных данных для бизнес-API с помощью токена аккаунта
* [Получение записей вызовов API платформы AceDataCloud](https://platform.acedata.cloud/documents/platform-usage-list) — проверка расчётов и устранение ошибок
* [Получение списка заказов платформы AceDataCloud](https://platform.acedata.cloud/documents/platform-order-list) — просмотр истории пополнений


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.