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

# Verify a Blob Custom Domain

> Checks the CNAME record and certificate of a custom domain again and returns its updated status.

Checks the CNAME record, the ownership TXT record and the TLS certificate of a custom domain again, right away, and returns the domain with its updated `status`. Use it after you change the DNS record.

**Scope:** `blob:write`.

<ParamField path="domain_id" type="string" required>
  The domain ID.
</ParamField>

<ParamField query="workspace_id" type="string">
  The workspace ID, when the blob belongs to a workspace. The call acts on the blob of the workspace owner and needs the `blob:read` workspace permission (`blob:manage` on routes that change data). Leave it out to act on your own blob.
</ParamField>

### Example request

```bash theme={null}
curl -X POST "https://blob.vertracloud.app/v1/domains/9a8b7c6d-5e4f-4a3b-b2c1-d0e9f8a7b6c5/verify" \
  -H "Authorization: Bearer $VERTRA_API_KEY"
```

### Response

<ResponseField name="response" type="object">
  The domain with its updated status.

  <Expandable title="properties">
    <ResponseField name="id" type="string">Domain ID.</ResponseField>
    <ResponseField name="hostname" type="string">Subdomain only, for example `cdn.example.com`.</ResponseField>
    <ResponseField name="status" type="string">`pending`, `active`, `failed` or `suspended`. Only `active` serves files.</ResponseField>
    <ResponseField name="ssl_status" type="string">Status of the TLS certificate for the hostname.</ResponseField>
    <ResponseField name="cname_target" type="string">Point a CNAME record of `hostname` to this value.</ResponseField>
    <ResponseField name="prefix" type="string | null">When set, the domain serves only this folder.</ResponseField>
    <ResponseField name="web_content" type="boolean">`true` when the domain serves `.html`, `.htm`, `.xhtml`, `.svg` and `.xml` in the browser (sandboxed); `false` when those types always download.</ResponseField>

    <ResponseField name="verification" type="object | null">
      The TXT record that proves you own the hostname. Present only while the domain is not `active`; absent or `null` afterwards.

      <Expandable title="properties">
        <ResponseField name="type" type="string">Always `txt`.</ResponseField>
        <ResponseField name="name" type="string">Name of the TXT record to create.</ResponseField>
        <ResponseField name="value" type="string">Value of the TXT record.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="created_at" type="string">ISO 8601 creation time.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Response theme={null}
  {
    "response": {
      "id": "9a8b7c6d-5e4f-4a3b-b2c1-d0e9f8a7b6c5",
      "hostname": "cdn.example.com",
      "status": "active",
      "ssl_status": "active",
      "cname_target": "cname.vertracloud.dev",
      "prefix": "images/",
      "web_content": false,
      "verification": null,
      "created_at": "2026-10-14T12:00:00.000Z"
    }
  }
  ```
</ResponseExample>

### Error Responses

<ResponseField name="code" type="string">
  The error code indicating the reason for failure. Possible values:

  * `AUTH_TOKEN_MISSING` (`401`): No `Authorization` header was sent.
  * `API_KEY_INVALID` (`401`): The API key doesn't exist, was revoked, or its secret doesn't match.
  * `API_KEY_SCOPE_DENIED` (`403`): The key lacks the scope this route needs (`blob:read` or `blob:write`); `details.required` names it.
  * `WORKSPACE_PERMISSION_DENIED` (`403`): Only with `workspace_id`: you're not a member, or your role lacks the blob permission.
  * `WORKSPACE_NOT_FOUND` (`404`): Only with `workspace_id`: no workspace with that ID, or you're not a member.
  * `BLOB_CUSTOM_DOMAIN_NOT_FOUND` (`404`): No domain with that ID in this account.
</ResponseField>

<ResponseExample>
  ```json Error Response (401) theme={null}
  {
    "code": "AUTH_TOKEN_MISSING"
  }
  ```

  ```json Error Response (403) theme={null}
  {
    "code": "API_KEY_SCOPE_DENIED"
  }
  ```

  ```json Error Response (404) theme={null}
  {
    "code": "WORKSPACE_NOT_FOUND"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.