> ## 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.

# AceDataCloud プラットフォームアカウントトークン（Account Token）の管理

> Platform API guide - Ace Data Cloud

**アカウントトークン（Account Token、旧称 Platform Token）** は、開発者がプログラムを通じて AceDataCloud プラットフォームリソース（サービス申請、API 認証情報、注文、呼び出し履歴、残高、ファイルなど）を管理するための「アカウントレベルのキー」です。その役割はフロントエンドでログインした後のユーザー Token に似ており、デフォルトでは有効期限がありません。通常ユーザーは自分のトークンのみ管理でき、スーパー管理者は権限に応じて他のアカウントのトークンを管理できます。

アカウントトークンは、所属アカウントの現在の権限でプラットフォームインターフェースにアクセスします。基本権限、直接付与された権限、および所属ユーザーグループの権限が統合して有効になります。グループへの追加または削除後、次回のリクエストから新しい権限に基づいて判定されます。具体的な申請、注文などのリソースへのアクセスには、引き続き帰属チェックが必要です。アカウントトークンはデフォルトで期限切れになりません。信頼できる環境でのみ使用し、適切に保管してください。

> ℹ️ 本インターフェースは **AceDataCloud プラットフォーム管理 API** に属し、統一プレフィックスは `https://platform.acedata.cloud/api/v1/` です。完全なインターフェースインデックスは[AceDataCloud プラットフォームドキュメント一覧の取得](https://platform.acedata.cloud/documents/platform-document-list)をご覧ください。

## アカウントトークン vs API 認証情報

初心者が最も混同しやすい2種類のキーです。まず明確に区別してください。

| 観点 | **アカウントトークン**（本ドキュメント） | **API 認証情報（Credential）** |
| - | - | - |
| 用途 | `https://platform.acedata.cloud/**` 管理系インターフェースの呼び出し | `https://api.acedata.cloud/**` ビジネスインターフェース（OpenAI、Midjourney、Suno、Veo など）の呼び出し |
| 形式 | `platform-v1-` + 64桁の16進数（合計76文字） | 32桁の16進数 |
| 1アカウント | 通常 1～2個 | サービス申請ごとに 1～N個 |
| 作成入口 | [Account Token コンソール](https://platform.acedata.cloud/console/platform-tokens) | [AceDataCloud プラットフォーム API 認証情報の作成](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-...` トークンが1つ取得できます。**コピーボタンをクリックしてパスワードマネージャーに保存してください**。

![Account Token コンソール](https://cdn.acedata.cloud/6g86oz.png)

> ⚠️ 現在、作成・一覧・詳細のレスポンスはいずれもトークンの平文を返します。レスポンス全体をシークレットとして扱い、ログ、分析プラットフォーム、またはフロントエンドの永続ストレージに書き込まないでください。クライアントも、一覧が長期的に平文を返し続けることに依存すべきではありません。

***

## API によるアカウントトークンの作成

### インターフェース概要

| 項目 | 内容 |
| - | - |
| メソッド | `POST` |
| URL | `https://platform.acedata.cloud/api/v1/platform-tokens/` |
| 認証 | ✅ 任意の既存アカウントトークン または ブラウザログイン状態の JWT |
| Body | `application/json`（空のオブジェクト `{}` を渡すことも可能） |

### 認証の説明（鶏が先か卵が先かの問題）

> 最初のトークンはどう取得するのですか？答えは**コンソールを使うこと**です。ブラウザへのログイン後、コンソールが JWT 認証で `POST /platform-tokens/` を呼び出し、最初のトークンを発行します。
> その後は、既存の任意の `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桁の16進数（合計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. または、`POST /platform-tokens/` の戻り値にある `user_id` フィールドを直接使用します。

### クエリパラメータ

| パラメータ | 必須 | 型 | 説明 |
| - | - | - | - |
| `user_id` | ✅ | UUID | 現在のアカウントのユーザー ID |
| `limit` | ❌ | int | 1 ページあたりの件数、デフォルト 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}"
```

> `https://api.acedata.cloud/**` の業務インターフェース（OpenAI、Midjourney、Suno、Veo など）で使用される 32 桁の16進数 API 認証情報とは**完全に異なります**。混用しないでください——アカウントトークンを業務インターフェースに記載すると `401` になり、逆も同様です。

***

## 関連インターフェース

* [AceDataCloud プラットフォームサービス申請リストを取得](https://platform.acedata.cloud/documents/platform-application-list) — アカウントトークンを使用して、自分が申請したサービスを確認する
* [AceDataCloud プラットフォーム API 認証情報を作成](https://platform.acedata.cloud/documents/platform-credential-create) — アカウントトークンを使用して、業務 API 用の 32 桁の認証情報を発行する
* [AceDataCloud プラットフォーム API 呼び出し記録を取得](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.