> ## 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 プラットフォームサービス申請の作成

> Platform API guide - Ace Data Cloud

「申請（Application）」は、現在のアカウントの特定サービスに対するサブスクリプション関係を表します。API 認証情報を作成し、業務インターフェースを呼び出すには、先に申請する必要があります。あるサービスを初めて申請するとき、Application はそのサービスの現在設定されている `free_amount` を取得します。この値は 0 の場合があります。

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

## 完全な連携フロー

新規ユーザーが登録から最初の業務インターフェースの疎通まで、通常は以下の 5 ステップを進みます。

1. **アカウントトークンを取得する** → [AceDataCloud プラットフォームアカウントトークンの管理](https://platform.acedata.cloud/documents/platform-token)
2. **サービスを選択する** → [AceDataCloud プラットフォームサービス一覧の取得](https://platform.acedata.cloud/documents/platform-service-list)
3. **申請を作成する**（本ドキュメント） → サービス設定に従って初期クォータを取得
4. **API 認証情報を作成する** → [AceDataCloud プラットフォーム API 認証情報の作成](https://platform.acedata.cloud/documents/platform-credential-create)
5. **業務インターフェースを呼び出す** → 取得した 32 桁の Token で `https://api.acedata.cloud/<path>` を呼び出す

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

| 項目 | 内容 |
| - | - |
| メソッド | `POST` |
| URL | `https://platform.acedata.cloud/api/v1/applications/` |
| 認証 | ✅ アカウントトークンが必要 |
| Content-Type | `application/json` |

## 認証の説明（アカウントトークンの取得方法）

リクエストヘッダー：

```http theme={null}
Authorization: Bearer ${PLATFORM_TOKEN}
```

アカウントトークン（Account Token）は、開発者が API を通じて自身のアカウントリソースを管理するための「アカウントレベルのキー」です。取得方法：

1. **コンソールでワンクリック作成（推奨）**： [AceDataCloud プラットフォーム](https://platform.acedata.cloud)にログイン → [Account Token コンソール](https://platform.acedata.cloud/console/platform-tokens) → 「作成」をクリックすると、`platform-v1-` で始まるトークンを取得できます。
2. **API による作成**：既存のアカウントトークンまたはブラウザログイン状態の JWT を使用して `POST /api/v1/platform-tokens/` を呼び出します。詳細は、[AceDataCloud プラットフォームアカウントトークンの管理](https://platform.acedata.cloud/documents/platform-token)を参照してください。

> ⚠️ アカウントトークンはパスワードと同等に機密性が高いため、フロントエンドコードや公開リポジトリに記載することは禁止されています。漏洩した場合は、直ちにコンソールで削除して再作成してください。

## リクエストボディ

| パラメータ | 型 | 必須 | 説明 |
| - | - | - | - |
| `service_id` | UUID | ✅ | 申請するサービス ID。[サービス一覧](https://platform.acedata.cloud/documents/platform-service-list)の `items[].id` から取得できます |

## リクエスト例

### cURL

```shell theme={null}
curl -X POST 'https://platform.acedata.cloud/api/v1/applications/' \
  -H 'accept: application/json' \
  -H "authorization: Bearer ${PLATFORM_TOKEN}" \
  -H 'content-type: application/json' \
  -d '{"service_id": "38ecf158-36f2-42f2-8e7f-6786cdfc2452"}'
```

### Python

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

PLATFORM_TOKEN = os.environ["PLATFORM_TOKEN"]
SERVICE_ID = "38ecf158-36f2-42f2-8e7f-6786cdfc2452"

resp = requests.post(
    "https://platform.acedata.cloud/api/v1/applications/",
    headers={
        "accept": "application/json",
        "authorization": f"Bearer {PLATFORM_TOKEN}",
        "content-type": "application/json",
    },
    json={"service_id": SERVICE_ID},
    timeout=10,
)

if resp.status_code == 201:
    app = resp.json()
    print(f"申请成功！application_id={app['id']}")
    print(f"初始额度：{app['remaining_amount']} {app.get('service', {}).get('unit', '')}")
elif resp.status_code == 400 and resp.json().get("code") == "duplication":
    print("⚠️ 已经申请过此服务，请到 /applications/ 列表里找到现成的 application_id")
else:
    print(f"申请失败：HTTP {resp.status_code} - {resp.text}")
```

### Node.js

```javascript theme={null}
const PLATFORM_TOKEN = process.env.PLATFORM_TOKEN
const SERVICE_ID = '38ecf158-36f2-42f2-8e7f-6786cdfc2452'

const resp = await fetch('https://platform.acedata.cloud/api/v1/applications/', {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: `Bearer ${PLATFORM_TOKEN}`,
    'content-type': 'application/json',
  },
  body: JSON.stringify({ service_id: SERVICE_ID }),
})

if (resp.status === 201) {
  const app = await resp.json()
  console.log('application_id =', app.id)
} else {
  console.error(await resp.text())
}
```

## レスポンス例

### 成功（HTTP 201）

```json theme={null}
{
  "id": "82f57141-2323-4453-8730-60f7d833a2da",
  "service_id": "38ecf158-36f2-42f2-8e7f-6786cdfc2452",
  "remaining_amount": 1.0,
  "used_amount": 0.0,
  "paid": false,
  "user_id": "89518d07-5560-4b05-92c1-667f3ddf6a4b",
  "disabled": false,
  "allow_consume_global": false,
  "scope": "Individual",
  "type": "Usage",
  "expired_at": null,
  "tags": null,
  "metadata": null,
  "client_ip": null,
  "client_fingerprint": null,
  "created_at": "2026-04-26T07:52:27.462400Z",
  "updated_at": "2026-04-26T07:52:27.462400Z"
}
```

返却フィールド構造は、[AceDataCloud プラットフォームサービス申請詳細の取得](https://platform.acedata.cloud/documents/platform-application-detail)と一致します。

### すでに申請済み（HTTP 400）

```json theme={null}
{
  "detail": "Item already exists.",
  "code": "duplication",
  "trace_id": "1a87524f8cbba0b790b2951e2e43117e"
}
```

これは設計上の厳格な制限です：**各ユーザーは各サービスに対して 1 つの Application しか持つことができません**。すでに存在する場合は、[AceDataCloud プラットフォームサービス申請一覧の取得](https://platform.acedata.cloud/documents/platform-application-list)を通じて既存のものを検索してください。

### サービスが存在しない（HTTP 404）

```json theme={null}
{
  "detail": "Service not found.",
  "code": "not_found",
  "trace_id": "..."
}
```

### サービスに審査が必要（HTTP 403）

```json theme={null}
{
  "detail": "This service requires manual verification.",
  "code": "need_verify",
  "trace_id": "..."
}
```

サービスの `need_verify=true`（サービス一覧でこのフィールドを確認できます）の場合は、チケットフローを通じてホワイトリストを申請する必要があります。

## エラー処理

| HTTP | コード | 意味 |
| - | - | - |
| 400 | `duplication` | このサービスは現在のアカウントですでに申請済みです |
| 400 | `invalid` | `service_id` が不足しているか、形式が正しくありません |
| 401 | `not_authenticated` | アカウントトークンが不足しているか、トークンが削除されています |
| 403 | `need_verify` | サービスには審査が必要です。チケットプロセスを利用してください |
| 404 | `not_found` | サービスが存在しないか、すでに停止されています |

エラーレスポンスの統一形式：

```json theme={null}
{
  "detail": "...",
  "code": "...",
  "trace_id": "..."
}
```

## 実用的なヒント

* **作成自体では課金されません**：初回作成時には、サービスの現在の `free_amount` に基づいて初期クレジットが設定されます。この値は 0 の場合があり、同種の Application を再度作成しても、重複して付与される保証はありません。
* **支払いが必要かどうかは `paid` フィールドを確認してください**：申請直後は `paid=false` であり、[AceDataCloud プラットフォームのチャージ注文を作成](https://platform.acedata.cloud/documents/platform-order-create)して支払いを完了すると `true` になります。
* **`disabled=true` は一時的に無効化されていることを示します**——たとえば、リスク管理の発動、料金未払いなどです。無効化されている場合、ビジネスインターフェースは `403` を返します。
* **無制限に並行して作成しないでください**：まずページネーション付きサービス一覧から対象の `service_id` を取得し、その後ビジネス上の必要に応じて項目ごとに申請してください。`duplication` が発生した場合は、既存の Application を再利用してください。

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

* [AceDataCloud プラットフォームサービス一覧を取得](https://platform.acedata.cloud/documents/platform-service-list) — まずサービスを選択
* [AceDataCloud プラットフォームサービス申請一覧を取得](https://platform.acedata.cloud/documents/platform-application-list) — 申請済みのすべてを確認
* [AceDataCloud プラットフォームサービス申請詳細を取得](https://platform.acedata.cloud/documents/platform-application-detail) — 個別の申請を確認
* [AceDataCloud プラットフォーム API 認証情報を作成](https://platform.acedata.cloud/documents/platform-credential-create) — 申請成功後の次のステップ
* [AceDataCloud プラットフォームチャージ注文を作成](https://platform.acedata.cloud/documents/platform-order-create) — 無料クレジットを使い切った後にチャージ


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