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

# Square Cloud API のベース URL と最初のリクエスト

> Square Cloud REST API の使い始め: v2 のベース URL、Authorization ヘッダー、最初の curl リクエスト、レスポンスの形式、ID、スコープ、エラー処理を説明します。

Square Cloud API は HTTPS 上の REST API です。アプリケーションのデプロイと操作、ログとメトリクスの取得、ファイル、環境変数、スナップショット、データベース、workspace の管理など、ダッシュボードで行う操作をカバーします。送受信は JSON で行いますが、例外が 2 つあります。[アップロード](/ja/api-reference/endpoint/apps/upload)と[コミット](/ja/api-reference/endpoint/apps/commit)は zip を `multipart/form-data` で受け取り、[リアルタイム](/ja/api-reference/endpoint/apps/realtime)は Server-Sent Events をストリーミングします。

## ベース URL

このリファレンスのすべてのエンドポイントは、次の URL からの相対パスです。

```bash theme={"system"}
https://api.squarecloud.app/v2
```

[Blob Storage](/ja/blob-reference/quickstart) は独自のベース URL `https://blob.squarecloud.app/v1` を持つ別の API で、同じ API キーを使います。

## 認証

[アカウントのセキュリティ設定](https://squarecloud.app/ja/account/security)で API キーを作成し、すべてのリクエストの `Authorization` ヘッダーで送信します。`Bearer ` プレフィックスは任意です。

```bash theme={"system"}
Authorization: <api_key>
```

キーは作成時に一度だけ表示されます。クライアント側のコードやリポジトリには置かず、サーバー上の環境変数に保管してください。各キーはできることを制限するスコープを持ちます。エンドポイントごとのスコープは[認証](/ja/api-reference/authentication)を参照してください。

## 最初のリクエスト

[アカウント情報の取得](/ja/api-reference/endpoint/users/me)は、プロフィール、プラン、所有するすべてのアプリケーションとデータベースを返します。`account:read` スコープを持つキーが必要です。

```bash theme={"system"}
export SQUARECLOUD_API_KEY="your-api-key"

curl https://api.squarecloud.app/v2/users/me \
  --header "Authorization: $SQUARECLOUD_API_KEY"
```

```json theme={"system"}
{
  "status": "success",
  "response": {
    "user": {
      "id": "1234567890",
      "name": "John Doe",
      "email": "john@example.com",
      "locale": "en-US",
      "plan": {
        "name": "standard-4",
        "memory": { "limit": 4096, "available": 3584, "used": 512 },
        "duration": 1780615237662
      },
      "created_at": "2024-05-01T12:00:00.000Z"
    },
    "applications": [
      {
        "id": "a1b2c3d4e5f64a7b8c9d0e1f2a3b4c5d",
        "name": "my-app",
        "ram": 512,
        "lang": "javascript",
        "domain": "my-app.squareweb.app",
        "custom": null,
        "cluster": "example-cluster",
        "created_at": "2024-05-01T12:00:00.000Z"
      }
    ],
    "databases": []
  }
}
```

`401 ACCESS_DENIED` が返された場合は、キーがないか認識されていません。`403 MISSING_SCOPE` が返された場合は、キーは有効ですが `account:read` がありません。

## レスポンスの形式

成功した呼び出しは `2xx` と `"status": "success"` を返し、返すデータがある場合は `response` に含めます。

```json theme={"system"}
{ "status": "success", "response": { } }
```

起動や停止などのアクションは `{ "status": "success" }` だけを返します。失敗した呼び出しは `4xx` または `5xx` と `"status": "error"`、そして分岐に使う `code` を返します。

```json theme={"system"}
{ "status": "error", "code": "APP_NOT_FOUND" }
```

レスポンスのフィールド名は `snake_case` です。すべてのコードとその対処方法は[エラー](/ja/api-reference/errors)に記載しています。

## ID

* **アプリケーションとデータベース**は、`a1b2c3d4e5f64a7b8c9d0e1f2a3b4c5d` のような 32 文字の 16 進数の id を持ちます。[アカウント情報の取得](/ja/api-reference/endpoint/users/me)か、ダッシュボードのリソースのアドレスから取得できます。
* **workspace 経由で共有されたアプリケーション**は、パス内で `<appId>-<workspaceId>` として指定します。例: `/v2/apps/<appId>-<workspaceId>/status`。
* **workspace** は 32 文字の 16 進数の id を持ちます。古い workspace は 40 文字の id のままです。

## 制限

各アカウントには、プランで決まる 60 秒あたりのリクエスト枠があり、一部のエンドポイントには各ページに記載された独自の制限があります。値は[制限と制約](/ja/api-reference/limitations-and-restrictions)を、`429` の仕組みは[エラー](/ja/api-reference/errors#レート制限)を参照してください。

## OpenAPI 仕様

API 全体は `https://api.squarecloud.app/v2/openapi.json` の [OpenAPI ドキュメント](/ja/api-reference/openapi)に記述されています。Postman や Insomnia にインポートしたり、クライアントを生成したりできます。

<Tip>
  型付きのクライアントを使いたい場合は、[JavaScript](/ja/sdks/js/client)、[Python](/ja/sdks/py/client)、[Go](/ja/sdks/go/client) 向けの [Square Cloud SDK](/ja/sdks/introduction) がこのリファレンスのすべてのエンドポイントをラップし、[CLI](/ja/cli-reference/quickstart) はターミナルから同じ作業を行えます。
</Tip>

## 次のステップ

<CardGroup cols={2}>
  <Card title="認証とスコープ" icon="lock" href="/ja/api-reference/authentication">
    各連携に必要なスコープを選びます。
  </Card>

  <Card title="エラーコード" icon="triangle-exclamation" href="/ja/api-reference/errors">
    API が返すすべてのコードと対処方法。
  </Card>

  <Card title="アプリケーションのアップロード" icon="upload" href="/ja/api-reference/endpoint/apps/upload">
    1 回のリクエストで zip をデプロイします。
  </Card>

  <Card title="レート制限" icon="gauge" href="/ja/api-reference/limitations-and-restrictions">
    プランごとのリクエスト枠。
  </Card>
</CardGroup>
