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

# Unavailable features

> Find out what blocked a request and help the user continue.

When a feature isn't enabled for your integration, the Brand Skills API returns
`403 FEATURE_NOT_AVAILABLE`. The response names the feature so you can explain
the problem to the user.

```json theme={null}
{
  "error": {
    "code": "FEATURE_NOT_AVAILABLE",
    "status": 403,
    "message": "This feature isn't available for this integration.",
    "data": {
      "feature": "feature_name",
      "sourceIndex": 0,
      "requestId": "3356c704-aa35-4f46-8c0b-b72701935e5a"
    }
  }
}
```

See the [error reference](https://partners.rainbrand.com/api-reference/errors.md#feature-not-available)
for the response fields and [known feature values](https://partners.rainbrand.com/api-reference/errors.md#known-feature-values).

If `feature` is missing or unfamiliar, show the error's `message`.

## Some examples

### PDF source

A `POST /brand-skills` request with a website first and a PDF second can return:

```json theme={null}
{
  "error": {
    "code": "FEATURE_NOT_AVAILABLE",
    "status": 403,
    "message": "PDF sources are not supported for this integration",
    "data": {
      "feature": "pdf_sources",
      "sourceIndex": 1,
      "requestId": "5989c968-8efc-47a2-8bfd-854283212d43"
    }
  }
}
```

The rejected request hasn't created a Brand Skill. Ask whether the user wants to
continue with their other sources. If they agree, remove the unavailable source
and send the updated request. You can reuse the same `Idempotency-Key` after
this rejection.

If a request times out before you receive a response, retry the same body with
the same `Idempotency-Key`. Rainbrand returns the original Brand Skill if it was
already created.


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