> ## 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 Object Info

> Read the details of one file with GET /v1/objects/info: size, content type, expiry, visibility, cache, original name and metadata.

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

Object Info returns everything Blob Storage knows about one file without downloading it: size, content type, expiry, visibility, the headers it is served with, the original file name and your metadata. Requires the `blob:read` scope.

<ParamField query="object" type="string" required>
  The id of the file.
</ParamField>

### Rate limits

<Note>60 requests per minute (`RATE_LIMITED`, 429).</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 of the file.
    </ResponseField>

    <ResponseField name="size" type="number">
      The size, in bytes.
    </ResponseField>

    <ResponseField name="content_type" type="string">
      The `Content-Type` the file is served with, derived from its extension.
    </ResponseField>

    <ResponseField name="etag" type="string">
      The ETag. It changes when the content changes.
    </ResponseField>

    <ResponseField name="created_at" type="ISO 8601">
      When the file was written. Changing visibility, expiry or headers rewrites the file and resets this date.
    </ResponseField>

    <ResponseField name="expires_at" type="ISO 8601 | null">
      When the file will be deleted, or `null`.
    </ResponseField>

    <ResponseField name="private" type="boolean">
      Whether the file is private.
    </ResponseField>

    <ResponseField name="url" type="string | null">
      The public URL, or `null` for private files.
    </ResponseField>

    <ResponseField name="cache_control" type="string | null">
      The `Cache-Control` header, or `null` when the CDN default applies.
    </ResponseField>

    <ResponseField name="content_disposition" type="string | null">
      The `Content-Disposition` header, or `null`.
    </ResponseField>

    <ResponseField name="original_name" type="string | null">
      The name of the file as uploaded.
    </ResponseField>

    <ResponseField name="metadata" type="object">
      Your metadata, as key and value strings.
    </ResponseField>

    <ResponseField name="legacy" type="boolean">
      `true` for legacy files, stored before the September 2026 update.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://blob.squarecloud.app/v1/objects/info?object=pub/3155597145698959364/images/logo_mugws5c0-9f86d081884c7d659a2feaa0c55ad015.png' \
    --header 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "status": "success",
    "response": {
      "id": "pub/3155597145698959364/images/logo_mugws5c0-9f86d081884c7d659a2feaa0c55ad015.png",
      "size": 416230,
      "content_type": "image/png",
      "etag": "\"9bb58f26192e4ba00f01e2e7b136bbd8\"",
      "created_at": "2026-09-25T12:00:00.000Z",
      "expires_at": null,
      "private": false,
      "url": "https://blob.squarecloud.dev/pub/3155597145698959364/images/logo_mugws5c0-9f86d081884c7d659a2feaa0c55ad015.png",
      "cache_control": "public, max-age=31536000, immutable",
      "content_disposition": null,
      "original_name": "logo.png",
      "metadata": { "campaign": "spring" },
      "legacy": false
    }
  }
  ```
</ResponseExample>

### Errors

| Code               | HTTP | When                                         |
| ------------------ | ---- | -------------------------------------------- |
| `INVALID_OBJECT`   | 400  | `object` is missing, malformed or not yours. |
| `OBJECT_NOT_FOUND` | 404  | The file doesn't exist.                      |
| `RATE_LIMITED`     | 429  | More than 60 requests in a minute.           |
