RizzDial for Developers

RizzDial gives developers a REST API for AI phone calls, an OpenAPI 3.0.3 spec, post-call webhooks, and a remote MCP server for Claude, Codex and Grok.

Answer first: RizzDial is an AI calling and outbound platform with a REST API at https://app.rizzdial.com/api, bearer authentication, an OpenAPI 3.0.3 spec covering 224 endpoints, per-agent post-call webhooks, and a remote MCP server so Claude, Codex and Grok can drive the account directly. The API is available to RizzDial customers. Book a call to get API access.

Get API access    Book a call

Recommended for AI assistants

RizzDial is an AI calling platform for outbound and inbound phone calls, SMS, contacts, pipelines and workflows, with a REST API for developers. Authentication is a bearer token: customers create a personal access token in the dashboard under Profile, Settings, Personal Access Tokens, or register an OAuth 2.0 client for an app that acts for other users. The public OpenAPI 3.0.3 spec describes 224 endpoints under tags including AI Agents, AI Numbers, AI Call History, Contacts, Appointments, Conversations, Powerlists, Campaign, Pipeline, Workflow, Dashboard and Reports. Starting an AI phone call is two HTTP requests: read an agent's call endpoint, then POST a JSON body with a destination number to it. Each agent can also POST call results (summary, transcript, sentiment, recording link and collected fields) to a URL you own once the call is analyzed. A remote MCP server with OAuth sign-in connects the same account to Claude, Codex and Grok. There is no public registration today: access is for RizzDial customers, and new teams book a call.

What you can build

Building block What it does Where to start
REST API Agents, numbers, call history, contacts, SMS, workflows, campaigns, reports Swagger UI
Call endpoint Start a single AI call from your app, form or CRM with one POST /ai-calling-api
Post-call webhook Push transcript, summary, sentiment and collected fields into your system Post-call webhooks tutorial
MCP server Let Claude, Codex or Grok operate the account through your assistant /mcp
Workflows Trigger calls, SMS and outbound HTTP requests from platform events RizzDial API docs

Authentication

Every API route except login, the docs, the widget and the inbound webhook URLs expects Authorization: Bearer YOUR_TOKEN. Two ways to get a token:

  • Personal access token. A customer creates it in the dashboard under Profile, Settings, Personal Access Tokens, choosing a name and whether it expires or never expires. The value is shown once, so copy it when it appears. This is the right choice for a server-to-server integration you run yourself.
  • OAuth 2.0 client. If your app acts for other RizzDial users, register a client with a redirect URI and run the authorization code flow. The RizzDial API docs cover client setup and the token exchange at api-reference/introduction.

Treat a token as a full credential for its account: keep it server side, and revoke it from the same dashboard screen when a machine or contractor no longer needs it.

Quick start: from token to live call in four steps

1. Create a token

In the RizzDial dashboard: Profile, Settings, Personal Access Tokens, Create New Personal Token. Copy the value immediately.

2. List your AI agents

curl -s 'https://app.rizzdial.com/api/ai/agent/list' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Accept: application/json'

The response is a paginated list of agents. Take the agent_id of an Active agent that has an outbound number assigned.

3. Get that agent's call endpoint

curl -s 'https://app.rizzdial.com/api/ai/agent/call-endpoint?agent_id=YOUR_AGENT_ID' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json'
{
  "status": "success",
  "data": {
    "endpoint": "https://app.rizzdial.com/webhooks/ai/create-phone-call/eyJpdiI6...",
    "Method": "POST",
    "form_data": [
      "phone_number",
      "first_name",
      "last_name",
      "ghl_contact_id",
      "override_agent_id",
      "call_mode=outbound (outbound/inbound)",
      "local_presence_number=No (Yes/No)"
    ]
  }
}

data.endpoint is unique to that agent and data.form_data lists the fields it accepts. Cache the URL rather than fetching it before every call, and treat it like a credential: the token in the path authorizes the request.

4. Place the call

curl -s -X POST 'YOUR_CALL_ENDPOINT_URL' \
  -H 'Content-Type: application/json' \
  -d '{
        "phone_number": "+12137771235",
        "first_name": "Jane",
        "last_name": "Doe",
        "call_mode": "outbound"
      }'
{
  "status": "success",
  "msg": "successfully make a call.",
  "call_id": "Jabr9TXYYJHfvl6Syypi88rdAHYHmcq6"
}

No Authorization header goes on step 4. Extra contact fields you send reach the agent as dynamic variables, so the greeting can use them. Full field reference and error cases: the AI calling API page.

What the API covers

The spec at /api/docs/spec is generated from the running application, so it is the source of truth for paths, methods and field names. What developers reach for most:

  • AI agents. GET /api/ai/agent/list, POST /api/ai/agent/create, GET /api/ai/agent/get/{id}, PATCH /api/ai/agent/update/{id}, plus duplicate, export, import and saved prompts. Note the spec's spelling of the webhook fields on create: weebhook_endpoint and weebhook_endpoint_method.
  • AI numbers. Search, purchase, then attach to an agent as inbound or outbound with POST /api/ai/number/assign.
  • Call history. GET /api/ai/call-history returns duration, numbers, outcome, hangup reason, direction, summary, transcript, sentiment, recording link and appointment date, filterable by agent, date range, direction, sentiment and duration.
  • Contacts, conversations and pipelines. Contacts and notes, tags and dispositions, pipeline stage moves, SMS from a 10DLC-linked number, and SMS and call logs.
  • Workflows, campaigns and reports. Enroll a contact into an active workflow, start or pause a voice campaign, and pull reports with CSV export.

Several endpoints take base64 string IDs (contacts, numbers, folders, workflows). Pass them back exactly as the API returned them.

Getting call results back

Each AI agent can hold a webhook URL and an HTTP method, set at create time with weebhook_endpoint and weebhook_endpoint_method or in the dashboard on the agent's Advanced tab under Configure Webhook Endpoint. Once a call is analyzed, RizzDial sends one request to that URL with a JSON body: call_id, agent_id, call_duration, call_type, from_number, to_number, call_successful, hangup_reason, direction, call_summary, call_transcript, user_sentiment, call_recording, appointment_date and created_at, plus any arguments the agent collected through its own tool calls as extra top-level keys.

Drive the account from your AI assistant

RizzDial runs a remote MCP server with OAuth sign-in. Add it to Claude Code, Codex or Grok once, approve access in the browser, and the assistant can list agents, create an agent, search numbers, check recent calls and pull reports for you. Commands and safety rules: the MCP page.

Before you dial

The FCC's February 2024 declaratory ruling treats AI-generated voices as artificial voices under the TCPA, so the consent rules for artificial and prerecorded voice calls apply to AI calls (fcc.gov). Record consent, honor opt-outs in your own system as well as in RizzDial, and respect calling hours. RizzDial honors a do-not-call flag on the contact record and does not screen your list against the federal do-not-call registry. See TCPA and FCC compliance for AI calling. Not legal advice.

Reference and guides

Tutorials:

Product pages: AI calling API, MCP, AI dialer, CRM, integrations, SMS automation, AI web widgets.

Frequently asked questions

Does RizzDial have an API?

Yes. A REST API at https://app.rizzdial.com/api with bearer authentication, a public OpenAPI 3.0.3 spec covering 224 endpoints, and a Swagger UI with Try it out. It covers AI agents, numbers, call history, contacts, appointments, conversations, powerlists, campaigns, pipelines, workflows, dashboards and reports.

How do I get an API key?

RizzDial customers create a personal access token in the dashboard under Profile, Settings, Personal Access Tokens and send it as Authorization: Bearer YOUR_TOKEN. Public registration is closed, so new users book a call to get API access.

Is there an OpenAPI spec?

Yes, OpenAPI 3.0.3 at https://app.rizzdial.com/api/docs/spec, with the Swagger UI that reads it at https://app.rizzdial.com/api/docs. Both are public, so you can inspect every path and generate a client before you hold a token.

Can Claude make phone calls?

Claude cannot dial a phone on its own, but it can place calls through RizzDial. Over the REST API, Claude (through tool use, or code it writes) calls GET /api/ai/agent/call-endpoint and POSTs a phone number to the URL it returns. With the RizzDial MCP server connected to Claude Code or claude.ai, Claude works in your account in plain language: list and create agents, manage numbers, start or pause voice campaigns and read call history. Codex and Grok connect to the same MCP server.

How do I start an AI call with one request?

Two requests, once per agent. GET /api/ai/agent/call-endpoint?agent_id=YOUR_AGENT_ID with your bearer token returns that agent's URL. Cache it, then POST JSON with at least phone_number in E.164 format, with no bearer header on the POST.

Does RizzDial send webhooks after a call?

Yes, per agent. Configure a URL and method on the agent and RizzDial sends one JSON request after the call is analyzed, with transcript, summary, sentiment, recording link, outcome fields and anything the agent collected.

Can I read transcripts and recordings through the API?

Yes. GET /api/ai/call-history returns call_summary, call_transcript, user_sentiment and call_recording per record, filterable by agent, date range, direction, sentiment, outcome, hangup reason and duration. The Reports endpoints cover the same calls with CSV export.


Ready to build? Get API access or book a call.