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

# Commit Application

> Send a change to your application. Rate limited to 1 request per 2 seconds per user, plus 1 per 5 seconds per application.

<ParamField header="Authorization" type="string" placeholder="API Key" required>
  The API key for your account. You can find this in your [account settings](https://squarecloud.app/en/account/security).
</ParamField>

Commit streams a single file or a `.zip` archive into an existing application without recreating it. A `.zip` is unpacked at the destination directory, while any other file is written as-is. This makes it the fastest way to push small code changes, hotfixes, or configuration updates from a CI pipeline or deploy script.

Committing does not restart the application by itself: after sending your changes, call [Restart Application](/en/api-reference/endpoint/apps/restart) so the new files take effect. For a first deployment of a new application, use [Upload Application](/en/api-reference/endpoint/apps/upload) instead, and to edit a single file in place without re-uploading, see the [File Manager endpoints](/en/api-reference/endpoint/apps/filemanager/patch).

Uploads are limited to **100 MB per file**. File names containing path traversal (`..`), path separators, or control characters are rejected before any change is applied. On workspace-shared applications, the caller needs the Maintainer or Administrator role.

### Parameters

<ParamField path="app_id" type="string" placeholder="Application ID" required>
  The ID of the application. You can find this in the URL of your application's dashboard.
</ParamField>

<ParamField body="file" type="file" placeholder="commit.zip" required>
  Use FormData or NodeJS Buffer (single file or compress \[zip])
</ParamField>

<ParamField query="path" type="string" placeholder="src/routes">
  Optional. The destination directory inside the application. A `.zip` is unpacked here; any other file is placed at `path/filename`. Defaults to the application root.
</ParamField>

### Response

<ResponseField name="status" type="string">
  Indicates whether the call was successful.. `success` if successful, `error` if not.
</ResponseField>

<ResponseExample>
  ```json theme={null}
  {
      "status": "success"
  }
  ```
</ResponseExample>

### Common errors

| Code                   | HTTP | Meaning                                                                |
| ---------------------- | ---- | ---------------------------------------------------------------------- |
| `INVALID_CONTENT_TYPE` | 415  | The request body is not `multipart/form-data`.                         |
| `INVALID_FILE`         | 400  | No file field was found in the form data.                              |
| `INVALID_FILENAME`     | 400  | The file name contains path separators, `..`, or control characters.   |
| `INVALID_PATH`         | 400  | The `path` query parameter contains traversal or shell metacharacters. |
| `FILE_TOO_LARGE`       | 413  | The upload exceeded the 100 MB per-file limit.                         |
