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

# Errors

Every refusal is a problem+json body (RFC 9457): `type` links to the entry below, `code` is stable and is what to act on, and `detail` is plain English to pass on to the person. Some refusals add facts beside the code, such as `retry_after_seconds`, `limit`, `usage`, `archive_needed` or `invalid_params`.

## Access refusals

Any call can meet these. A change can also meet `read_only_credential` and `machine_writes_disabled`, and a call that sends a body can meet `request_too_large`.

### invalid_credential

HTTP 401. Invalid key or token.

### credential_in_url

HTTP 400. API key sent in the URL.

### credential_suspended

HTTP 403. Key or connection paused.

### credential_account_changed

HTTP 403. Key or connection belongs to another account.

### staff_credentials_refused

HTTP 403. Not available to staff accounts.

### customer_view_refused

HTTP 403. Not available in a customer view.

### machine_access_disabled

HTTP 503. API access is switched off.

### machine_access_not_available

HTTP 403. API access is not available yet.

### rate_limited

HTTP 429. Too many requests.

### temporarily_unavailable

HTTP 503. Temporarily unavailable.

### invalid_request

HTTP 400. Invalid request.

### unsupported_version

HTTP 400. Unsupported API version.

### request_failed

HTTP 500. Request failed.

### read_only_credential

HTTP 403. Read-only key or connection.

### machine_writes_disabled

HTTP 503. Changes are switched off.

### request_too_large

HTTP 413. Request too large.

## Action refusals

Each operation page lists the ones it can answer with.

### action_not_available

HTTP 403. Action not available.

### not_permitted

HTTP 403. Not permitted.

### not_found

HTTP 404. Not found.

### method_not_allowed

HTTP 405. Method not allowed.

### checks_ended

HTTP 409. Automatic checks have ended.

### monitoring_ended

HTTP 409. Monitoring has ended.

### recheck_not_available

HTTP 409. Re-check not available.

### recheck_cooldown

HTTP 429. Re-check too soon.

### check_not_started

HTTP 503. Check not started.

### lookup_limit

HTTP 429. Lookup limit reached.

### account_email_missing

HTTP 409. No email address on the account.

### plan_unverified

HTTP 503. Plan could not be verified.

### transfer_not_editable

HTTP 409. Transfer details cannot be changed.

### corrections_used

HTTP 409. No corrections left.

### label_not_available

HTTP 409. Label not available yet.

### check_frequency_not_available

HTTP 409. Check frequency cannot be changed.

### rescue_limit

HTTP 409. Rescue covers one transfer.

### active_transfer_limit

HTTP 409. Active transfer limit reached.

### monthly_limit_reached

HTTP 409. Monthly transfer limit reached.

### transfer_archived

HTTP 409. Transfer is archived.

### subscription_required

HTTP 409. Active subscription required.

### demo_transfer

HTTP 409. The demo transfer cannot be changed.

### record_not_available

HTTP 409. No payment record.

### already_owner

HTTP 409. Already the account owner.

### seat_exists

HTTP 409. Seat or invitation exists.

### seat_on_other_account

HTTP 409. Seat on another account.

### manages_paid_account

HTTP 409. Address manages a paid account.

### team_requires_subscription

HTTP 409. Team seats need a subscription.

### seat_limit

HTTP 409. Seat limit reached.

### seat_not_active

HTTP 409. Seat no longer active.

### seat_reservation_failed

HTTP 503. Seat not reserved.

### invitation_not_pending

HTTP 409. Invitation no longer pending.

### invitation_queued

HTTP 409. Invitation already queued.

### invitation_rate_limited

HTTP 429. Too many invitations.

### invitation_prepare_failed

HTTP 503. Invitation not prepared.

### invitation_send_failed

HTTP 503. Invitation not sent.

### invitation_not_sent

HTTP 503. Invitation not sent.

### invitation_check_failed

HTTP 503. Invitation not checked.

### member_removal_failed

HTTP 503. Teammate not removed.

### destination_not_allowed

HTTP 400. Webhook address not accepted.

### endpoint_exists

HTTP 409. Webhook address already registered.

### endpoint_limit

HTTP 409. Webhook endpoint limit reached.