> The full uetr.ai documentation index is at https://uetr.ai/llms.txt, and every page under https://uetr.ai/docs/api is also Markdown at its address plus `.md`.

# Request a Custom Monitor quote

Ask uetr.ai for a written Custom Monitor quote: a plan for more than 20 transfers at once, priced on request by monthly volume and check frequency, with webhooks, the REST API and MCP included. The quote goes by email to the address of the account that asks. We aim to reply by email within one business day with a written quote and a card payment link. An account can send 3 requests a day. Sending a request buys nothing and changes nothing in the account.

`POST https://uetr.ai/api/v1/account/custom-monitor-quote`

- MCP tool: `request_custom_quote`
- Access: a key or connection with read and change access

## Request body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `monthly_transfers` | integer (at least 1, at most 1000000000) | Yes | How many transfers the account sends each month. There is no upper limit. |
| `check_frequency` | `5m`, `1h`, `12h`, `unsure` (default `5m`) | No | How often each transfer is checked: 5m (every 5 minutes, the standard), 1h, 12h (twice a day) or unsure. |
| `note` | string (at most 2000 characters) | No | Anything else the quote should consider, such as the systems to connect. |

## Response

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `requested` | boolean | Yes |  |
| `reply_to` | string | Yes | The email address the quote will be sent to. |
| `message` | string | Yes | What happens next. |

## Example

```sh
curl -X POST "https://uetr.ai/api/v1/account/custom-monitor-quote" \
  -H "Authorization: Bearer $UETR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"monthly_transfers":5000,"check_frequency":"5m"}'
```

The answer:

```json
{
  "requested": true,
  "reply_to": "ops@example.com",
  "message": "We aim to reply by email within one business day with a written quote and a card payment link."
}
```

## Refusals

Besides the [access refusals](/docs/api/errors#access-refusals) every call can meet, this call can answer:

- [`read_only_credential`](/docs/api/errors#read_only_credential) (403): Read-only key or connection.
- [`machine_writes_disabled`](/docs/api/errors#machine_writes_disabled) (503): Changes are switched off.
- [`request_too_large`](/docs/api/errors#request_too_large) (413): Request too large.
- [`unsupported_media_type`](/docs/api/errors#unsupported_media_type) (415): Body not sent as JSON.