{
"data": {
"reply": "<string>",
"toolCalls": [
{
"name": "<string>",
"arguments": {},
"result": "<unknown>",
"ok": true
}
],
"ended": true,
"endReason": "end_call",
"state": {
"callId": "<string>",
"agentId": "<string>",
"environment": "<string>",
"handoffs": 1,
"variables": {}
}
}
}{
"error": "invalid_body",
"message": "<string>"
}{
"error": "unauthorized"
}{
"error": "billing_inactive"
}{
"error": "not_found"
}{
"error": "test_chat_unsupported",
"message": "<string>"
}{
"error": "rate_limited",
"message": "<string>"
}{
"error": "agent_reply_failed",
"message": "<string>"
}{
"error": "test_chat_unavailable",
"message": "<string>"
}Chat With an Agent
Type to the agent and get its reply, without a phone call. Each request returns the agent’s next turn. The agent answers exactly as it does in a chat test: its own model tier, prompt, variables, knowledge base, custom tools and MCP tools. Phone actions (ending the call, transfers, keypad tones, handoffs) are simulated and listed in toolCalls; custom tools call your webhooks for real.
The conversation is kept by you: send the messages so far (send none to get the agent’s opening line) and the state from the previous reply. When ended is true the agent ended the conversation.
Up to 60 messages of up to 4,000 characters each per request, and up to 60 requests per minute per organization. Test chats are billed like chat tests: at your listed per-minute rates, based on conversation length. Each test chat is recorded once in your call logs as a test call. Single-prompt agents only; use a voice test for conversation flow agents and agents on a custom model.
{
"data": {
"reply": "<string>",
"toolCalls": [
{
"name": "<string>",
"arguments": {},
"result": "<unknown>",
"ok": true
}
],
"ended": true,
"endReason": "end_call",
"state": {
"callId": "<string>",
"agentId": "<string>",
"environment": "<string>",
"handoffs": 1,
"variables": {}
}
}
}{
"error": "invalid_body",
"message": "<string>"
}{
"error": "unauthorized"
}{
"error": "billing_inactive"
}{
"error": "not_found"
}{
"error": "test_chat_unsupported",
"message": "<string>"
}{
"error": "rate_limited",
"message": "<string>"
}{
"error": "agent_reply_failed",
"message": "<string>"
}{
"error": "test_chat_unavailable",
"message": "<string>"
}Authorizations
API key for authentication. Generate API keys from the RevRing dashboard.
Path Parameters
Agent ID
Body
The conversation so far, oldest first. Empty for the agent's opening line; otherwise the last message is yours
60Show child attributes
Show child attributes
Variables for this test, as on a call (for example {"first_name": "Sam"}). Override the agent's default variables
Version to test: production (the published version) or the name of one of the agent's environments. Omit to test the saved draft
Conversation state from the previous reply. Send it back unchanged with the next message so the conversation continues where it left off (the same test call, any handoff to another agent, and variables set by the pre-call webhook or by tools). Omit it, or send no messages, to start a new conversation.
Show child attributes
Show child attributes
Response
The agent's next turn
Show child attributes
Show child attributes