Test mode

Simulate a call

Test mode only: runs a simulated call on one of your test numbers, with a transcript and a summary, and sends the real webhooks (call.completed, and call.summary.ready when there is a summary). A simulated caller talks to your own assistant, which answers with the same instructions, knowledge and tools as on a real call; tools are not executed. caller_goal (optional, at most 300 characters) says what the caller wants; without it the caller asks something that fits the scenario (reservation, callback_request, question). The scenario missed is a call nobody picked up: no transcript, no summary. Nothing reaches the carrier. The first 10 simulated calls per day are free; after that each one is deducted from the prepaid balance of your live project, billed per use (402 test_free_replies_used without balance or saved card). Send it with your test key; a live key gets 403 test_key_required. At most 30 simulated calls per hour per test project.

post/test/calls

Request

  • Base URL: https://api.hypamoon.com/api/v1
  • URL: https://api.hypamoon.com/api/v1/test/calls
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://app.hypamoon.com/oauth/authorize, token URL https://api.hypamoon.com/oauth/token, scopes: calls:read)

Request body

number_idstring uuid required

The id of one of your test numbers, from GET /numbers.

scenario'reservation' | 'callback_request' | 'question' | 'missed' required

What happens in the call: reservation, callback_request, question, missed. missed has no transcript and no summary, so only call.completed is sent.

fromstring

Optional: the caller, a fictional number from +447700900000 to +447700900999.

caller_goalstring

Response

The simulated call, as GET /calls/{id} returns it.

idstring uuid required

The id of the call.

direction'inbound' | 'outbound' | 'null' nullable required

inbound, or outbound for a call your assistant made with POST /calls.

fromstring nullable required

The caller, in E.164.

tostring nullable required

The number that was called, in E.164.

statusstring nullable required

The status as we track it: ringing, active, completed, missed, failed, voicemail, ai_handled. New values may be added; treat an unknown value like completed.

created_atstring date-time nullable required

When the call reached us.

started_atstring date-time nullable required

When the call started.

answered_atstring date-time nullable required

When the platform picked up. With a call plan the platform always picks up first, so this does not prove a person answered.

ended_atstring date-time nullable required

When the call ended.

duration_secinteger nullable required

The length of the call in seconds.

hangup_causestring nullable required

Why the call ended, as reported by the carrier, like normal_clearing.

has_summaryboolean required

Whether the call has a summary. Fetch it with GET /calls/{id}.

summary_ready_atstring date-time nullable required

When the summary of a recorded call was ready. Empty for a call handled by the voice AI; look at has_summary instead.

testboolean required

true for a simulated call from POST /test/calls or POST /calls with a test key (test mode). Also in webhooks, so you can keep test traffic apart.

transcriptstring nullable required

The transcript. Only here, never in a webhook.

Changes

No recorded changes to this operation across all 1 revision of this API.