> ## 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 に送信します。3秒あたり1リクエストのレート制限があります。

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  アカウントの API キーです。これは[アカウント設定](https://squarecloud.app/ja/account/security)で確認できます。
</ParamField>

### Parameters

<ParamField body="file" type="file" placeholder="application.zip" required>
  アップロードするアプリケーションはzipファイル（.zip）で圧縮する必要があり、Content-Typeはmultipart/form-dataである必要があります。
</ParamField>

### Response

<ResponseField name="status" type="string">
  呼び出しが成功したかどうかを示します。成功した場合は `success`、失敗した場合は `error` です。
</ResponseField>

<ResponseField name="response" type="object">
  レスポンスの内容です。

  <Expandable title="Toggle object">
    <ResponseField name="id" type="string">
      アップロードされたアプリケーションのIDです。
    </ResponseField>

    <ResponseField name="name" type="string">
      アップロードされたアプリケーションの名前です。
    </ResponseField>

    <ResponseField name="description" type="string">
      アップロードされたアプリケーションの説明です。
    </ResponseField>

    <ResponseField name="domain" type="string">
      アップロードされたアプリケーションのサブドメインです（該当しない場合はnull）。
    </ResponseField>

    <ResponseField name="ram" type="number">
      アップロードされたアプリケーションのRAM使用量（MB単位）です。
    </ResponseField>

    <ResponseField name="cpu" type="number">
      アップロードされたアプリケーションのCPU使用量です。
    </ResponseField>

    <ResponseField name="language" type="object">
      <Expandable title="Toggle object">
        <ResponseField name="name" type="string">
          アップロードされたアプリケーションのプログラミング言語です。
        </ResponseField>

        <ResponseField name="version" type="string">
          プログラミング言語の推奨バージョンです。
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="cluster" type="string">
      アプリケーションがクラウドホスティングされているクラスターです。
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.squarecloud.app/v2/apps \
    --header 'Authorization: YOUR_API_KEY' \
    --form 'file=@./application.zip'
  ```

  ```javascript JavaScript theme={null}
  import fs from 'node:fs';

  const form = new FormData();
  form.append('file', new Blob([fs.readFileSync('./application.zip')]), 'application.zip');

  const response = await fetch('https://api.squarecloud.app/v2/apps', {
    method: 'POST',
    headers: { Authorization: 'YOUR_API_KEY' },
    body: form,
  });
  ```

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

  with open('application.zip', 'rb') as f:
      response = requests.post(
          'https://api.squarecloud.app/v2/apps',
          headers={'Authorization': 'YOUR_API_KEY'},
          files={'file': ('application.zip', f, 'application/zip')},
      )
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
      "status": "success",
      "response": {
          "id": "945f574e6cc14ea6818f91d7d56de101",
          "name": "Estrelinha Legal",
          "description": "Nossa, fui enviada na velocidade da luz! ✨",
          "domain": null,
          "ram": 1024,
          "cpu": 6,
          "language": {
              "name": "JavaScript",
              "version": "recommended"
          }
      }
  }
  ```
</ResponseExample>
