# route_not_available

> Route closed to keys

- Status: 403 Forbidden
- Returned by: /api/public with an organisation key · /api/public
- Operations: [listMerchants](https://developers.rivr.io/reference/api-public/listMerchants.md), [getNextUnreadSettlement](https://developers.rivr.io/reference/api-public/getNextUnreadSettlement.md)
- Retry (`retryWhen`): `never`
- Did anything happen? (`outcome`): `none` (It did not happen)
- Access and organisation
- Page in the portal: https://developers.rivr.io/errors/route_not_available
- Try it: `GET https://developers.rivr.io/errors/simulate/route_not_available` answers with the code's exact wire form; `?succeedAfter=N&attempt=K` gives a 200 once `attempt` passes `N`; `?surface=key|api-public` picks the surface that answers (`key` without it)

## What it means

The route under `/api/public` cannot be called with an organisation key. Keys reach only a listed set of routes: orders, settlements, subscriptions, devices and the clinic itself. Everything else is closed to keys, including routes added later. The call never got through, so nothing has changed. The key check in front of `/api/public` answers this way, and `/api/public` itself answers the same on the list of clinics and on `order-settlements/next-unread`, with `error` and `error_description` kept.

## What your system does

Use a route keys can reach. If your integration needs a route that is missing: contact Rivr.

## Is it worth retrying?

No, not without changing the call.

`retryWhen`: `never`. Don't send it again. The answer is final for this request: read the current state, the order for example, and act on that.

## Did anything happen?

`outcome`: `none`. **It did not happen.** This call did not do what you asked for and changed nothing else that you can see or that concerns money. Where the code has an `outcomeNote`, it takes precedence.

## Example: /api/public with an organisation key

```http
HTTP/1.1 403 Forbidden
Content-Type: application/problem+json
Rivr-Should-Retry: false

{
  "type": "https://developers.rivr.io/errors/route_not_available",
  "title": "This route cannot be called with an organization API key.",
  "status": 403,
  "code": "route_not_available",
  "detail": "This route cannot be called with an organization API key.",
  "instance": "/api/public/merchants",
  "requestId": "5f0c2a7e-9b41-4d3a-8e6f-1c2d3b4a5e6f",
  "retryWhen": "never"
}
```

## Example: /api/public

```http
HTTP/1.1 403 Forbidden
Content-Type: application/json

{
  "error": "route_not_available",
  "error_description": "This route cannot be called with an organization API key.",
  "propertyName": null,
  "message": "This route cannot be called with an organization API key.",
  "errorCode": "route_not_available",
  "code": "route_not_available",
  "type": "https://developers.rivr.io/errors/route_not_available"
}
```

The `title`, `detail`, `message` and `error_description` texts are exactly as the API writes them today.
