canonical: https://jentic.com/apis/dialvalet.com/dialvalet

# DialValet API (current beta implementation)

The DialValet API places outbound phone calls voiced by a GPT-Live agent: an agent requests one call to a number, picks a voice, and the platform dials and speaks. The call can be watched live as a streaming transcript, steered mid-call to correct the live agent, and paused to answer questions the agent raises before continuing. It also handles the surrounding account machinery: verified caller identities, a prepaid wallet with a ledger and Stripe checkout, and per-account safety limits, with structured call results and transcripts that can be retrieved or deleted. The current beta is U.S.-only.

## For AI agents

Request outbound phone calls voiced by a GPT-Live agent, watch the live transcript, and steer the agent mid-call. Handles caller-ID verification, prepaid billing, and transcripts across 37 endpoints.

## Scope

Does not send SMS, email, or handle inbound calls, and the current beta is U.S.-only. Use for placing AI-voiced outbound phone calls only.

## Capabilities

- Request one outbound AI-voiced phone call with a chosen GPT-Live voice
- Watch a call's live streaming transcript and poll its state and result
- Steer the live agent mid-call and answer the questions it raises
- Retrieve or delete a call transcript and its encrypted structured result
- Verify and select a default caller identity before placing calls
- Manage a prepaid wallet balance and ledger and open Stripe checkout for credit
- Read and update per-account safety limits through the policy operations

## Use cases

### An Agent Placing a Call on Your Behalf

An AI agent connected to DialValet through Jentic can place an outbound call to a number, choose a GPT-Live voice, and let the platform speak on the user's behalf, for errands like confirming an appointment or asking a business a question. Placing a call requires a verified caller ID, available prepaid credit, and passing account limits, so the agent works within guardrails the account owner set.

Example prompt: Request an outbound call to a business number with a selected voice and poll the call until it reaches a completed state

### Live Supervision and Steering

While a call is running, DialValet streams a live transcript and lets a supervisor or agent steer the live agent to correct or add information, and answer any pending questions the live agent raises before it continues. This keeps a human or orchestrator in the loop on a voice call rather than committing to a fully scripted flow.

Example prompt: Watch a call's live transcript, answer a pending live-agent question, and send a steer message to correct a detail

### Caller-ID Verification and Prepaid Billing

Before any call, DialValet verifies caller identities with a code and lets you select a verified default, and it runs on a prepaid wallet with a balance, a ledger of credits and charges, and a one-time Stripe Checkout to top up. This keeps outbound calling tied to a verified number and to credit the account actually holds.

Example prompt: Send a caller-ID verification code, confirm it, set it as the default, and read the prepaid wallet balance

### Transcript Retrieval and Data Deletion

After a call, DialValet produces a transcript and an encrypted structured result that can be requested, and both can be deleted on demand through dedicated routes. This supports a retention policy where an agent reads what it needs from a call and then removes the stored content.

Example prompt: Request the transcript for a completed call, extract the outcome, then delete the encrypted structured result

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/calls` | Request one outbound call |
| GET | `/calls/{call_id}` | Get call state and result |
| GET | `/calls/{call_id}/live` | Watch the live call transcript |
| POST | `/calls/{call_id}/steer` | Correct or inform the live agent |
| POST | `/calls/{call_id}/guidance/{request_id}/answer` | Answer a pending live-agent question |
| GET | `/calls/{call_id}/transcript` | Request a call transcript |
| POST | `/caller-identities/verification` | Send a caller-ID verification code |
| GET | `/voices` | List GPT-Live agent voices |

## Key resources

- **Calls** — Request, list, get, cancel outbound calls and watch live transcripts, steer, and answer questions
- **Caller Identities** — List, verify, confirm, and set a default verified caller ID
- **Voices** — List the GPT-Live agent voices available for a call
- **Billing** — Read the prepaid wallet balance and ledger and open Stripe checkout or portal
- **Policy** — Read and update per-account safety limits
- **API Keys** — Create scoped bearer keys, list metadata, and revoke keys

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 67 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 66 / 100
  - Developer Experience & Jentic Compatibility: 64 / 100
  - AI-Readiness & Agent Experience: 67 / 100
  - Agent Usability: 94 / 100
  - Security: 55 / 100
  - AI Discoverability: 58 / 100
- **View full report:** https://jentic.com/apis/dialvalet.com/dialvalet/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring DialValet by hand means handling its bearer auth (a dv_live_ key or a dv_session cookie), verifying a caller ID, keeping prepaid credit topped up, and staying inside account limits, all in a U.S.-only beta. Through Jentic you install once, import DialValet from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** DialValet puts each call's id in the URL path (`/calls/{call_id}/...`), so a rule can let your agent place calls and watch and steer a specific call while account deletion, API-key revocation, and billing checkout stay out of its reach. You choose the operations it may call, so nothing that closes your account or spends on credit runs unless you add it.
- **Credential handling:** Your DialValet API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'place an outbound call' or 'watch a live call transcript', and Jentic returns the matching DialValet operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Bland AI API** — AI phone-call agents for outbound and inbound calling, versus DialValet's live-steerable U.S.-only beta.
- **Retell AI API** — Voice AI agents for phone conversations, versus DialValet's mid-call steering and prepaid-wallet model.
- **Telnyx API** — Programmable voice and call-control infrastructure, which DialValet builds on for call events.
- **Twilio Voice API** — Raw programmable voice telephony, complementing DialValet's AI-voiced call layer.

## FAQ

### Is there a DialValet MCP server?

You don't need an MCP server to give your agent DialValet. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls the place-call, live-transcript, and steer operations. Operations are discovered on demand, so no extra server's tool definitions sit in the agent's context.

### Can I limit what my agent is allowed to do with DialValet?

Yes. Write a rule that allows the place-call, live-transcript, and steer operations but not account deletion, API-key revocation, or billing checkout, so the agent can run and supervise calls while your account and wallet stay under your control, and every call it makes is logged.

### What authentication does the DialValet API use?

Per its OpenAPI spec, the DialValet API accepts either a bearer key in the dv_live_ format in the Authorization header or a dv_session browser session cookie, and scoped bearer keys can be minted and revoked. A few operations need no credential, such as the health check and the OTP signup and sign-in steps. Placing a call additionally requires a verified caller ID, prepaid credit, and passing account limits. Through Jentic the key is stored encrypted by your own Jentic One instance and injected only at call time.

### Can I place an outbound phone call with the DialValet API?

Yes. The place-call operation requests one outbound call to a number with a chosen GPT-Live voice, and you can then get its state and result, watch the live transcript, and cancel it if needed. The current beta is U.S.-only, and a call requires a verified caller ID and available prepaid credit.

### What are the rate limits for the DialValet API?

The OpenAPI spec does not state numeric rate limits, but it enforces per-account limits and prepaid credit on placing calls; the policy operation reads the current safety limits and the balance operation reads available credit. Check dialvalet.com for current limits and the U.S.-only beta scope.

### How do I place an AI phone call with the DialValet API through Jentic?

Verify a caller ID and confirm prepaid credit, then call the place-call operation with the number and voice and poll the call for its result. In Jentic, search for 'request an outbound AI phone call', store your API key once, and the agent runs the sequence. To run it on your own infrastructure, install Jentic One from its GitHub repo.
