Hypamoon Billing API
The prepaid balance: every SMS, call minute and number is deducted from it, and AI usage (chat replies, agents, the portal assistant) is billed per use. Top up in the portal.
The prepaid balance: every SMS, call minute and number is deducted from it, and AI usage (chat replies, agents, the portal assistant) is billed per use. Top up in the portal.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/hypamoon-com:hypamoon-com-billing-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Hypamoon Billing API
version: 1.0.0
description: 'Hypamoon is the infrastructure a chat or an agent builds on for a business: sites and apps (with server code, sign-in and their own database), data and forms, a media library, domains, email from your own domain, phone numbers with voice AI, SMS and chat, payments (see https://hypamoon.com/docs/payments) and agents. The same project is reachable from a connected chat over MCP and from your own code over this REST API.
Calls are inbound, plus outbound calls your assistant makes to people who expect them (POST /calls).
Every request needs an API key: `Authorization: Bearer hm_live_...`, or `hm_test_...` in test mode. Each key has scopes and a rate limit of 120 requests per 60 seconds.
An OAuth access token (`hm_oat_...`, from connecting an assistant such as Claude.ai or ChatGPT) works on every /api/v1 route as well, with the scopes the user granted on the consent screen. For your own app, create an API key in the portal instead.
Every error is `application/problem+json` with a `type` URL that explains the fix (`https://hypamoon.com/docs/errors/`). Every response carries an `X-Request-Id` header; include it when you ask us for help.
Field names are snake_case, except inside a call plan, which is stored exactly as you send it (camelCase). New fields may be added to a response at any time; renaming or removing one requires a new version.'
contact:
name: Hypamoon support
url: https://hypamoon.com/docs
servers:
- url: https://api.hypamoon.com/api/v1
security:
- ApiKey: []
- OAuth2: []
tags:
- name: Billing
description: 'The prepaid balance: every SMS, call minute and number is deducted from it, and AI usage (chat replies, agents, the portal assistant) is billed per use. Top up in the portal.'
paths:
/balance:
get:
operationId: getBalance
tags:
- Billing
summary: Get the prepaid balance
description: 'A live project pays in advance: you top up a balance in the portal (https://app.hypamoon.com/balance) and every SMS, call minute and number is deducted from it immediately. This returns the balance, what was spent this calendar month against the spending cap, the automatic top-up settings and the latest 20 transactions, newest first. All amounts are in euro, excluding VAT. Read-only: topping up and the automatic top-up settings are in the portal. With a test key you see the balance of the live project with test: true. Test mode is free, except AI above the free daily test budget (chat replies, agent model calls), which is deducted from this balance.'
x-hypamoon-scope: project:read
security:
- ApiKey:
- project:read
- OAuth2:
- project:read
responses:
'200':
description: The balance with the latest transactions.
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
$ref: '#/components/schemas/Balance'
example:
balance_eur: 24.46
currency: EUR
spent_this_month_eur: 0.3
spend_cap_eur: 100
auto_reload:
enabled: true
active: true
threshold_eur: 5
amount_eur: 20
max_per_month: 10
used_this_month: 1
disabled_reason: null
card:
brand: Visa
last4: '4242'
expiry: '2028-12-31'
transactions:
- id: 6e5d4c3b-2a19-4f8e-8d7c-6b5a4e3d2c1b
type: charge
source: sms
amount_eur: -0.3
balance_after_eur: 24.46
description: SMS, 2 segments
quantity: 2
unit: segment
reference_id: 8f7e6d5c-4b3a-4291-8f0e-1d2c3b4a5968
created_at: '2026-10-01T10:02:00.000Z'
- id: 4c3b2a19-0f8e-4d7c-9b6a-5e4d3c2b1a09
type: top_up
source: payment
amount_eur: 20
balance_after_eur: 24.76
description: Top-up
quantity: null
unit: null
reference_id: b7e5a1c4-2d93-4f60-8a1e-9c3d5b7f2e10
created_at: '2026-10-01T09:30:00.000Z'
test: false
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
description: 'Not Found: not_found.'
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
x-hypamoon-errors:
- not_found
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/Problem'
- type: object
properties:
type:
type: string
enum:
- https://hypamoon.com/docs/errors/not_found
'429':
$ref: '#/components/responses/RateLimited'
'500':
$ref: '#/components/responses/InternalError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
components:
schemas:
Problem:
type: object
properties:
type:
type: string
format: uri
description: 'A URL that explains the error and the fix: https://hypamoon.com/docs/errors/<slug>.'
title:
type: string
description: The HTTP status in words.
status:
type: integer
description: The HTTP status.
detail:
type: string
description: What went wrong in this request.
request_id:
type: string
description: The id of this request, also in the X-Request-Id header. Mention it when you contact support.
user_message:
type: string
description: One calm sentence in plain English for the end user, without technical terms. A chat or app can show it as it is.
next_step:
type: string
description: 'With some errors: what the chat or agent itself should do next.'
errors:
type: array
items:
$ref: '#/components/schemas/FieldError'
description: 'With validation_failed, schema_mismatch and team_targets_not_allowed: every problem.'
missing:
type: array
items:
type: string
description: 'With company_details_missing: the missing fields, as paths of PUT /project/company.'
current_version:
anyOf:
- type: integer
- type: string
description: 'With version_conflict: the version that is there now (a number on a call plan, a string on a site; send it as if_match_version).'
spend_cap_eur:
type: number
description: 'With billing_blocked: the spending cap per calendar month.'
spent_eur:
type: number
description: 'With billing_blocked: what was spent this calendar month.'
balance_eur:
type: number
description: 'With insufficient_balance: the prepaid balance now.'
required_eur:
type: number
description: 'With insufficient_balance: what this request costs.'
auto_reload_started:
type: boolean
description: 'With insufficient_balance: true when an automatic top-up just started; retry in a minute.'
required:
- type
- title
- status
- detail
- request_id
- user_message
description: An error, as application/problem+json (RFC 9457).
AutoReload:
type: object
properties:
enabled:
type: boolean
description: Whether automatic top-up is switched on. Change it in the portal.
active:
type: boolean
description: 'Whether it can run now: switched on, with a saved card that has not expired.'
threshold_eur:
type: number
description: When the balance drops below this amount, a top-up starts.
amount_eur:
type: number
description: How much each automatic top-up adds, excluding VAT.
max_per_month:
type: integer
description: The most automatic top-ups per calendar month.
used_this_month:
type: integer
description: How many automatic top-ups ran this calendar month.
disabled_reason:
type:
- string
- 'null'
description: 'Why it is off or cannot run: no_card, card_expired, repeated_failures or turned_off. Null when it is active.'
card:
type:
- object
- 'null'
properties:
brand:
type:
- string
- 'null'
description: The card brand, like Visa or Mastercard.
last4:
type:
- string
- 'null'
description: The last four digits.
expiry:
type:
- string
- 'null'
description: The expiry date of the card.
required:
- brand
- last4
- expiry
additionalProperties: false
description: The saved card used for automatic top-up, or null without one.
required:
- enabled
- active
- threshold_eur
- amount_eur
- max_per_month
- used_this_month
- disabled_reason
- card
additionalProperties: false
description: Automatic top-up with a saved card.
Transaction:
type: object
properties:
id:
type: string
description: The id of the transaction.
type:
type: string
enum:
- top_up
- charge
- refund
- adjustment
description: 'top_up: money added with a payment. charge: usage deducted. refund: a charge given back (an SMS the carrier refused, for example). adjustment: a correction by Hypamoon support.'
source:
type: string
enum:
- payment
- sms
- call
- number
- chat
- site
- support
description: 'What caused it: a payment, an SMS, a call, a number, a chat reply of the assistant, site requests above what the plan includes, or Hypamoon support.'
amount_eur:
type: number
description: 'The amount in euro excluding VAT, with a sign: positive for a top-up or refund, negative for a charge. Up to four decimals.'
balance_after_eur:
type: number
description: The balance right after this transaction, in euro excluding VAT.
description:
type: string
description: What it was for, in a few words.
quantity:
type:
- number
- 'null'
description: How many units, like 2 SMS segments or 3 minutes. Null for a top-up.
unit:
type:
- string
- 'null'
description: The unit of quantity, like segment, minute or month. Null for a top-up.
reference_id:
type:
- string
- 'null'
description: 'The id of what caused it: a message, a call, a number or a payment.'
created_at:
type: string
format: date-time
description: When the transaction was booked.
required:
- id
- type
- source
- amount_eur
- balance_after_eur
- description
- quantity
- unit
- reference_id
- created_at
additionalProperties: false
description: One line in the ledger of the prepaid balance. The same shape in GET /balance and the balance webhooks.
Balance:
type: object
properties:
balance_eur:
type: number
description: The prepaid balance in euro, excluding VAT. Can be slightly below zero after a call that ran on.
currency:
type: string
const: EUR
description: Always EUR.
spent_this_month_eur:
type: number
description: What was deducted this calendar month (minus refunds). Counts toward the spending cap.
spend_cap_eur:
type:
- number
- 'null'
description: The spending cap per calendar month, or null without one.
auto_reload:
$ref: '#/components/schemas/AutoReload'
transactions:
type: array
items:
$ref: '#/components/schemas/Transaction'
description: The latest 20 transactions, newest first.
test:
type: boolean
description: 'true with a test key: you see the balance of the live project, read-only. Test mode is free and never touches the balance.'
required:
- balance_eur
- currency
- spent_this_month_eur
- spend_cap_eur
- auto_reload
- transactions
- test
additionalProperties: false
description: The prepaid balance with the latest transactions.
FieldError:
type: object
properties:
path:
type: string
description: Where the problem is, with dots, like address.postal_code. body means the body as a whole.
message:
type: string
description: What is wrong, in English.
required:
- path
- message
additionalProperties: false
responses:
InternalError:
description: 'Internal Server Error: internal_error.'
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
x-hypamoon-errors:
- internal_error
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/Problem'
- type: object
properties:
type:
type: string
enum:
- https://hypamoon.com/docs/errors/internal_error
Unauthorized:
description: 'Unauthorized: unauthorized, missing_api_key, invalid_api_key, api_key_revoked, api_key_expired, project_deleted.'
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
x-hypamoon-errors:
- unauthorized
- missing_api_key
- invalid_api_key
- api_key_revoked
- api_key_expired
- project_deleted
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/Problem'
- type: object
properties:
type:
type: string
enum:
- https://hypamoon.com/docs/errors/unauthorized
- https://hypamoon.com/docs/errors/missing_api_key
- https://hypamoon.com/docs/errors/invalid_api_key
- https://hypamoon.com/docs/errors/api_key_revoked
- https://hypamoon.com/docs/errors/api_key_expired
- https://hypamoon.com/docs/errors/project_deleted
RateLimited:
description: 'Too Many Requests: rate_limited.'
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
Retry-After:
$ref: '#/components/headers/Retry-After'
x-hypamoon-errors:
- rate_limited
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/Problem'
- type: object
properties:
type:
type: string
enum:
- https://hypamoon.com/docs/errors/rate_limited
ServiceUnavailable:
description: 'Service Unavailable: service_unavailable.'
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
Retry-After:
$ref: '#/components/headers/Retry-After'
x-hypamoon-errors:
- service_unavailable
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/Problem'
- type: object
properties:
type:
type: string
enum:
- https://hypamoon.com/docs/errors/service_unavailable
Forbidden:
description: 'Forbidden: project_not_enabled, key_mode_mismatch, missing_scope, ip_not_allowed, verification_required.'
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
x-hypamoon-errors:
- project_not_enabled
- key_mode_mismatch
- missing_scope
- ip_not_allowed
- verification_required
content:
application/problem+json:
schema:
allOf:
- $ref: '#/components/schemas/Problem'
- type: object
properties:
type:
type: string
enum:
- https://hypamoon.com/docs/errors/project_not_enabled
- https://hypamoon.com/docs/errors/key_mode_mismatch
- https://hypamoon.com/docs/errors/missing_scope
- https://hypamoon.com/docs/errors/ip_not_allowed
- https://hypamoon.com/docs/errors/verification_required
headers:
X-Request-Id:
schema:
type: string
description: The id of this request. Include it when you contact support.
Retry-After:
schema:
type: integer
description: Seconds to wait before you try again.
securitySchemes:
ApiKey:
type: http
scheme: bearer
bearerFormat: hm_live_..., hm_test_..., or an OAuth access token hm_oat_...
description: 'Your API key as a bearer token: `Authorization: Bearer hm_live_...`. Live keys start with hm_live_; test keys start with hm_test_, belong to a test project, never reach the carrier and cost nothing. A key has scopes (project:read, project:write, numbers:read, calls:read, numbers:write, assistant:write, webhooks:write, messages:read, messages:write, calls:write, chat:read, chat:write, sites:read, sites:write, data:read, data:write); each operation names the one it needs in x-hypamoon-scope. Keys are shown only once; store them as a secret, never in a frontend. An OAuth access token (hm_oat_..., see OAuth2) is sent the same way and works on every /api/v1 route.'
WordPressToken:
type: http
scheme: bearer
bearerFormat: hm_wp_...
description: Only for the /wordpress routes of the Hypamoon Connect plugin for WordPress. The plugin gets this token once, with POST /wordpress/connect and a one-time code, and sends it with X-Hypamoon-Site (the address of the WordPress site). It can only send this site's inventory and the data the user selected, to one project, for 30 days, and it can be revoked. It is not an API key.
PublicChatToken:
type: apiKey
in: query
name: token
description: 'Only for the /public routes of the chat widget. The public chat token (hm_pub_... or hm_pubtest_...) in the query string, from a browser page on one of the token''s allowed origins (the Origin header must match exactly). It is not a secret: it is in the page source of your website. It can only chat, only from those origins, with a bot check and its own limits, and you can revoke it. Create one with POST /chat-tokens or in the portal. Never send your API key from a browser.'
OAuth2:
type: oauth2
description: For assistants that connect by URL (Claude.ai, ChatGPT, Grok). Authorization code with PKCE (S256 only); register a client with dynamic client registration at https://api.hypamoon.com/oauth/register. Send resource=https://api.hypamoon.com/api/v1/mcp. The user picks the project (test or live) and the scopes on the consent screen. The access token (hm_oat_...) works on every /api/v1 route, not only /mcp; refresh it with the refresh token. The user can revoke a connection in the portal under Koppelingen.
flows:
authorizationCode:
authorizationUrl: https://app.hypamoon.com/oauth/authorize
tokenUrl: https://api.hypamoon.com/oauth/token
refreshUrl: https://api.hypamoon.com/oauth/token
scopes:
project:read: 'Read the project: its name, whether it is in test mode or live, and what still needs to be done'
project:write: Fill in the project's company or personal details, manage agents and request secrets for other services
numbers:read: Read the numbers and their call plans
calls:read: Read calls, with transcript and summary
numbers:write: Order numbers and change call plans
assistant:write: Configure the voice AI assistant
webhooks:write: Create, test and delete webhooks
messages:read: Read the text messages and emails the project sent, with their status
messages:write: Send text messages (SMS) and emails on behalf of the project
calls:write: Let the assistant call people on behalf of the project
chat:read: Read the chat conversations with the assistant, with messages and summary
chat:write: Start chat conversations with the assistant and send customer messages
sites:read: Read the project's sites, apps and domains
sites:write: Publish sites and apps on <slug>.hypamoon.app, change and delete them, and manage domains
data:read: Read the project's collections and their documents, and the business processes (brain)
data:write: Create, change and delete collections and their documents, and the business processes (brain)
clients:read: 'As an agency: list your client projects, read their usage and activity, and read inside a client project with the Hypamoon-Project header'
clients:write: 'As an agency: set up client projects, ask clients for access, invite owners, and build inside a client project with the Hypamoon-Project header'
x-hypamoon-error-docs: https://hypamoon.com/docs/errors/
x-hypamoon-error-types:
- slug: bad_request
status:
- 400
type: https://hypamoon.com/docs/errors/bad_request
- slug: unauthorized
status:
- 401
type: https://hypamoon.com/docs/errors/unauthorized
- slug: payment_required
status:
- 402
type: https://hypamoon.com/docs/errors/payment_required
- slug: forbidden
status:
- 403
type: https://hypamoon.com/docs/errors/forbidden
- slug: not_found
status:
- 404
type: https://hypamoon.com/docs/errors/not_found
- slug: method_not_allowed
status:
- 405
type: https://hypamoon.com/docs/errors/method_not_allowed
- slug: conflict
status:
- 409
type: https://hypamoon.com/docs/errors/conflict
- slug: version_conflict
status:
- 409
- 412
type: https://hypamoon.com/docs/errors/version_conflict
- slug: confirmation_required
status:
- 409
type: https://hypamoon.com/docs/errors/confirmation_required
- slug: validation_failed
status:
- 422
type: https://hypamoon.com/docs/errors/validation_failed
- slug: rate_limited
status:
- 429
type: https://hypamoon.com/docs/errors/rate_limited
- slug: internal_error
status:
- 500
type: https://hypamoon.com/docs/errors/internal_error
- slug: upstream_error
status:
- 502
type: https://hypamoon.com/docs/errors/upstream_error
- slug: service_unavailable
status:
- 503
type: https://hypamoon.com/docs/errors/service_unavailable
- slug: invalid_json
status:
- 400
type: https://hypamoon.com/docs/errors/invalid_json
- slug: invalid_parameter
status:
- 400
type: https://hypamoon.com/docs/errors/invalid_parameter
- slug: missing_api_key
status:
- 401
type: https://hypamoon.com/docs/errors/missing_api_key
- slug: invalid_api_key
status:
- 401
type: https://hypamoon.com/docs/errors/invalid_api_key
- slug: api_key_revoked
status:
- 401
type: https://hypamoon.com/docs/errors/api_key_revoked
- slug: api_key_expired
status:
- 401
type: https://hypamoon.com/docs/errors/api_key_expired
- slug: project_deleted
status:
- 401
type: https://hypamoon.com/docs/errors/project_deleted
- slug: project_not_enabled
status:
- 403
type: https://hypamoon.com/docs/errors/project_not_enabled
- slug: missing_scope
status:
- 403
type: https://hypamoon.com/docs/errors/missing_scope
- slug: ip_not_allowed
status:
- 403
type: https://hypamoon.com/docs/errors/ip_not_allowed
- slug: invalid_chat_token
status:
- 401
type: https://hypamoon.com/docs/errors/invalid_chat_token
- slug: chat_token_revoked
status:
- 401
- 409
type: https://hypamoon.com/docs/errors/chat_token_revoked
- slug: origin_not_allowed
status:
- 403
type: https://hypamoon.com/docs/errors/origin_not_allowed
- slug: turnstile_failed
status:
- 403
type: https://hypamoon.com/docs/errors/turnstile_failed
- slug: invalid_conversation_token
status:
- 401
type: https://hypamoon.com/docs/errors/invalid_conversation_token
- slug: public_chat_limit_reached
status:
- 429
type: https://hypamoon.com/docs/errors/public_chat_limit_reached
- slug: chat_unavailable
status:
- 503
type: https://hypamoon.com/docs/errors/chat_unavailable
- slug: vat_number_invalid
status:
- 422
type: https://hypamoon.com/docs/errors/vat_number_invalid
- slug: country_not_supported
status:
- 422
type: https://hypamoon.com/docs/errors/country_not_supported
- slug: key_mode_mismatch
status:
- 403
type: https://hypamoon.com/docs/errors/key_mode_mismatch
- slug: test_key_required
status:
- 403
type: https://hypamoon.com/docs/errors/test_key_required
- slug: test_number_limit_reached
status:
- 422
type: https://hypamoon.com/docs/errors/test_number_limit_reached
- slug: company_details_missing
status:
- 422
type: https://hypamoon.com/docs/errors/company_details_missing
- slug: business_required
status:
- 422
type: https://hypamoon.com/docs/errors/business_required
- slug: account_type_change_blocked
status:
- 422
type: https://hypamoon.com/docs/errors/account_type_change_blocked
- slug: spend_cap_missing
status:
- 422
type: https://hypamoon.com/docs/errors/spend_cap_missing
- slug: payment_mandate_missing
status:
- 402
type: https://hypamoon.com/docs/errors/payment_mandate_missing
- slug: billing_blocked
status:
- 402
type: https://hypamoon.com/docs/errors/billing_blocked
- slug: insufficient_balance
status:
- 402
type: https://hypamoon.com/docs/errors/insufficient_balance
- slug: regulatory_documents_missing
status:
- 422
type: https://hypamoon.com/docs/errors/regulatory_documents_missing
- slug: verification_required
status:
- 403
type: https://hypamoon.com/docs/errors/verification_required
- slug: number_unavailable
status:
- 409
type: https://hypamoon.com/docs/errors/number_unavailable
- slug: number_already_yours
status:
- 409
type: https://hypamoon.com/docs/errors/number_already_yours
- slug: no_numbers_available
status:
- 422
type: https://hypamoon.com/docs/errors/no_numbers_available
- slug: number_limit_reached
status:
- 403
type: https://hypamoon.com/docs/errors/number_limit_reached
- slug: order_status_unknown
status:
- 502
type: https://hypamoon.com/docs/errors/order_status_unknown
- slug: number_release_not_supported
status:
- 409
type: https://hypamoon.com/docs/errors/number_release_not_supported
- slug: telephony_unavailable
status:
- 503
type: https://hypamoon.com/docs/errors/telephony_unavailable
- slug: idempotency_key_missing
status:
- 400
type: https://hypamoon.com/docs/errors/idempotency_key_missing
- slug: idempotency_key_invalid
status:
- 400
type: https://hypamoon.com/docs/errors/idempotency_key_invalid
- slug: idempotency_key_reused
status:
- 409
type: https://hypamoon.com/docs/errors/idempotency_key_reused
- slug: idempotency_request_in_progress
status:
- 409
type: https://hypamoon.com/docs/errors/idempotency_request_in_progress
- slug: assistant_not_configured
status:
- 422
type: https://hypamoon.com/docs/errors/assistant_not_configured
- slug: voice_ai_not_enabled
status:
- 402
type: https://hypamoon.com/docs/errors/voice_ai_not_enabled
- slug: team_targets_not_allowed
status:
- 422
type: https://hypamoon.com/docs/errors/team_targets_not_allowed
- slug: forward_target_not_allowed
status:
- 422
type: https://hypamoon.com/docs/errors/forward_target_not_allowed
- slug: invalid_webhook_endpoint
status:
- 400
type: https://hypamoon.com/docs/errors/invalid_webhook_endpoint
- slug: webhook_limit_reached
status:
- 409
type: https://hypamoon.com/docs/errors/webhook_limit_reached
- slug: webhook_endpoint_disabled
status:
- 409
type: https://hypamoon.com/docs/errors/webhook_endpoint_disabled
- slug: destination_not_allowed
status:
- 422
type: https://hypamoon.com/docs/errors/destination_not_allowed
- slug: message_too_long
status:
- 422
type: https://hypamoon.com/docs/errors/message_too_long
- slug: sender_not_allowed
status:
- 422
type: https://hypamoon.com/docs/errors/sender_not_allowed
- slug: message_limit_reached
status:
- 429
type: https://hypamoon.com/docs/errors/message_limit_reached
- slug: number_required
status:
- 422
type: https://hypamoon.com/docs/errors/number_required
- slug: outside_calling_hours
status:
- 422
type: https://hypamoon.com/docs/errors/outside_calling_hours
- slug: concurrent_call_limit
status:
- 429
type: https://hypamoon.com/docs/errors/concurrent_call_limit
- slug: call_limit_reached
status:
- 429
type: https://hypamoon.com/docs/errors/call_limit_reached
- slug: consent_required
status:
- 403
type: https://hypamoon.com/docs/errors/consent_required
- slug: conversation_closed
status:
- 409
type: https://hypamoon.com/docs/errors/conversation_closed
- slug: conversation_busy
status:
- 409
type: https://hypamoon.com/docs/errors/conversation_busy
- slug: conversation_turn_limit_reached
status:
- 409
type: https://hypamoon.com/docs/errors/conversation_turn_limit_reached
- slug: conversation_limit_reached
status:
- 429
type: https://hypamoon.com/docs/errors/conversation_limit_reached
- slug: test_free_replies_used
status:
- 402
type: https://hypamoon.com/docs/errors/test_free_replies_used
- slug: test_free_calls_used
status:
- 402
type: https://hypamoon.com/docs/errors/test_free_calls_used
- slug: site_limit_reached
status:
- 429
- 422
type: https://hypamoon.com/docs/errors/site_limit_reached
- slug: slug_taken
status:
- 409
type: https://hypamoon.com/docs/errors/slug_taken
- slug: slug_reserved
status:
- 422
type: https://hypamoon.com/docs/errors/slug_reserved
- slug: site_too_large
status:
- 422
type: https://hypamoon.com/docs/errors/site_too_large
- slug: site_blocked
status:
- 422
type: https://hypamoon.com/docs/errors/site_blocked
- slug: site_offline
status:
- 403
type: https://hypamoon.com/docs/errors/site_offline
- slug: deploy_limit_reached
status:
- 429
type: https://hypamoon.com/docs/errors/deploy_limit_reached
- slug: upload_not_received
status:
- 422
type: https://hypamoon.com/docs/errors/upload_not_received
- slug: phone_verification_required
status:
- 403
type: https://hypamoon.com/docs/errors/phone_verification_required
- slug: collection_limit_reached
status:
- 422
type: https://hypamoon.com/docs/errors/collection_limit_reached
- slug: collection_name_taken
status:
- 409
type: https://hypamoon.com/docs/errors/collection_name_taken
- slug: document_limit_reached
status:
- 422
type: https://hypamoon.com/docs/errors/document_limit_reached
- slug: document_too_large
status:
- 422
type: https://hypamoon.com/docs/errors/document_too_large
- slug: schema_mismatch
status:
- 422
type: https://hypamoon.com/docs/errors/schema_mismatch
- slug: collection_not_public
status:
- 403
type: https://hypamoon.com/docs/errors/collection_not_public
- slug: plan_limit_reached
status:
- 402
- 409
type: https://hypamoon.com/docs/errors/plan_limit_reached
- slug: app_blocked
status:
# --- truncated at 32 KB (48 KB total) ---
# Full source: https://artifacts.apis.io/hypamoon-com/openapi/hypamoon-com-billing-api-openapi.yml