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

# Blob Chunked Upload Status

> See which parts of a chunked upload already arrived with GET /v1/objects/chunked, to resume an interrupted upload.

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

Chunked Status lists the parts of an open upload that are already stored. Use it to **resume** after a crash, a lost connection or a page reload: send only the missing parts with [Chunked Part](/en/blob-reference/endpoint/chunked-part), then call [Chunked Complete](/en/blob-reference/endpoint/chunked-complete). Requires the `blob:write` scope.

If you lost the `upload` token as well, [Open Uploads](/en/blob-reference/endpoint/chunked-open) lists every open upload of the account with its token.

<ParamField query="upload" type="string" required>
  The `upload` token returned by Chunked Init.
</ParamField>

### Rate limits

<Note>10 requests per 10 seconds (`RATE_LIMITED`, 429). Use it to resume an upload, not to poll progress: your client already knows which parts it sent.</Note>

### Response

<ResponseField name="status" type="string">
  "success" if successful, "error" if not.
</ResponseField>

<ResponseField name="response" type="object">
  <Expandable title="Toggle object">
    <ResponseField name="id" type="string">
      The id the file will have once completed.
    </ResponseField>

    <ResponseField name="parts" type="array">
      The stored parts, each as `{ "part", "size", "etag" }`.
    </ResponseField>

    <ResponseField name="next_part" type="number">
      The lowest part number not stored yet.
    </ResponseField>

    <ResponseField name="size_so_far" type="number">
      The total bytes stored so far.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://blob.squarecloud.app/v1/objects/chunked?upload=UPLOAD_TOKEN' \
    --header 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "status": "success",
    "response": {
      "id": "prv/3155597145698959364/genomics/dataset_mugws5c0-3c59dc048e8850243be8079a5c74d079.fastq.gz",
      "parts": [
        { "part": 1, "size": 16777216, "etag": "\"9bb58f26192e4ba00f01e2e7b136bbd8\"" },
        { "part": 2, "size": 16777216, "etag": "\"4a2f0b1c9d8e7f6a5b4c3d2e1f0a9b8c\"" },
        { "part": 4, "size": 16777216, "etag": "\"e1f0a9b8c4a2f0b1c9d8e7f6a5b4c3d2\"" }
      ],
      "next_part": 3,
      "size_so_far": 50331648
    }
  }
  ```
</ResponseExample>

### Errors

| Code                   | HTTP | When                                                   |
| ---------------------- | ---- | ------------------------------------------------------ |
| `INVALID_UPLOAD_TOKEN` | 400  | The `upload` token is missing, malformed or not yours. |
| `UPLOAD_NOT_FOUND`     | 404  | The upload was completed, aborted or expired.          |
| `RATE_LIMITED`         | 429  | More than 10 requests in 10 seconds.                   |
