canonical: https://jentic.com/apis/console.olivya.io/olivya

# Console Olivya Olivya API

Jentic publishes the only available OpenAPI specification for Olivya API, keeping it validated and agent-ready. Olivya is a platform for creating and scaling AI phone agents that handle outbound and inbound calls. The API surfaces 7 Zapier-aligned endpoints for kicking off a phone call to a chosen agent and number, listing the available agents and phone numbers in the Olivya account, subscribing to webhook notifications about call events, and reading the authenticated account profile.

## For AI agents

Trigger AI phone calls, list available agents and phone numbers, and subscribe to call event webhooks on Olivya. Useful for agents that initiate outbound voice calls or wire call results back into a CRM.

## Scope

Does not handle voice synthesis tuning, agent prompt configuration, or call recording storage - use for triggering and managing AI phone calls only.

## Capabilities

- Trigger an outbound AI phone call to a target number using a chosen Olivya agent
- List the AI agents configured in the Olivya account so a workflow can pick the right one
- List the verified phone numbers available for outbound caller ID
- Subscribe a webhook URL to receive call event notifications
- Unsubscribe a webhook URL when an integration is decommissioned
- Pull a sample Zapier event payload to wire up a downstream automation
- Read the authenticated account profile via the /me endpoint

## Use cases

### Outbound Voice Outreach Automation

When a CRM creates a new high-priority lead, an agent calls POST /create_zap_call to dispatch an AI phone agent that introduces the company and qualifies the prospect. The Olivya agent transcript and outcome are returned via the subscribed webhook and pushed back into the CRM as a call note. This replaces SDR-led first-touch calls for high-volume top-of-funnel outreach.

Example prompt: Call POST /create_zap_call with the lead's phone number and the discovery agent ID, then attach the resulting transcript to the CRM lead record.

### Inbound Notification Routing

Subscribe a webhook to Olivya call events so a backend system gets call_started, call_completed, and transcript_ready notifications in real time. The agent calls POST /subscribe at integration setup and DELETE /unsubscribe when the integration is removed, so cleanup is explicit and the webhook list stays accurate.

Example prompt: Call POST /subscribe with url=https://example.com/olivya-webhook and the chosen event types to begin receiving call event notifications.

### Agent and Number Discovery

Before triggering calls, an agent or workflow needs to know which AI agents and which phone numbers are available. The wrapper calls GET /list_agents and GET /list_phones once at startup, caches the results, and references the IDs in subsequent /create_zap_call requests. This keeps phone-number IDs out of hardcoded configuration and prevents broken workflows when numbers are added or rotated.

Example prompt: Call GET /list_agents and GET /list_phones, cache the IDs and friendly names, and use them when constructing POST /create_zap_call payloads.

### AI Agent Voice Outreach via Jentic

Wire Olivya into a sales or support assistant. The agent searches Jentic for trigger an olivya phone call, loads the POST /create_zap_call schema, and executes it with the Olivya API key isolated in your Jentic One instance. The same wrapper also covers list_agents and list_phones, so the assistant can discover what is available before placing a call.

Example prompt: Through Jentic, search trigger an olivya phone call, load the POST /create_zap_call schema, and execute it with the lead's phone number and chosen agent_id.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/create_zap_call` | Trigger an AI phone call |
| GET | `/list_agents` | List configured AI agents |
| GET | `/list_phones` | List available phone numbers |
| POST | `/subscribe` | Subscribe a webhook URL to call events |
| DELETE | `/unsubscribe` | Unsubscribe a webhook URL |
| GET | `/me` | Get the authenticated account profile |

## Key resources

- **Calls** — Trigger AI phone calls via POST /create_zap_call
- **Agents** — List the AI agents configured in the account via GET /list_agents
- **Phone Numbers** — List verified outbound phone numbers via GET /list_phones
- **Webhooks** — Subscribe and unsubscribe webhook URLs for call event notifications
- **Zapier** — Sample Zapier payloads for downstream integration setup
- **Account** — Authenticated user profile via GET /me

## Why Jentic

- **Setup:** Wiring the Olivya API by hand means passing your api_key in the Authorization header and coordinating the call, agent, phone, and subscription operations yourself. Through Jentic you install once, import the Olivya API from the API Directory, store the api_key once, and your agent calls it.
- **Permission scoping:** The Olivya API identifies its targets in the request body rather than the URL path, so you limit the agent to the operations it needs, such as triggering a call or listing agents, and it can call nothing outside that set. Operations you leave out, such as unsubscribing, stay unavailable to the agent.
- **Credential handling:** Your Olivya api_key is stored once, encrypted, by your own Jentic One instance and injected into the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'trigger an Olivya phone call' or 'list available agents', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Bland AI API** — Bland AI provides programmable AI phone agents with detailed call control
- **Retell AI API** — Retell AI offers low-latency conversational voice agents
- **ElevenLabs API** — ElevenLabs provides high-quality text-to-speech voices used inside voice agents

## FAQ

### Why is there no official OpenAPI spec for Olivya API?

Olivya documents its API as a Zapier integration guide in HTML. Jentic generates and maintains this spec so that AI agents and developers can call Olivya API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Olivya API use?

It uses an API key passed in the Authorization header. The key is issued from the Olivya console under integrations. Through Jentic the key lives in the vault and is added server-side, so the raw key never enters the agent's prompt.

### Can I trigger an outbound AI phone call through this API?

Yes. POST /create_zap_call places an outbound call using a chosen agent and phone number combination from your Olivya account. The endpoint returns immediately; call results arrive on subscribed webhooks once the call completes.

### How do I receive notifications when a call ends?

Call POST /subscribe with the URL you want notified and your chosen event types. Olivya then POSTs call events (call started, completed, transcript ready) to that URL. Use DELETE /unsubscribe to remove the subscription when the integration is retired.

### How many endpoints does the Olivya API expose?

Seven endpoints in this version: create_zap_call, list_phones, list_agents, subscribe, unsubscribe, sample_zap_data, and me. The surface is intentionally small and focused on the Zapier-aligned outbound-call workflow.

### How do I trigger an Olivya call through Jentic?

Run pip install jentic, then await client.search('trigger an olivya phone call'), load the matching operation schema, and execute it. The underlying call is POST /create_zap_call with the agent_id and phone number you supply at runtime.

### Can I limit what my agent is allowed to do with the Olivya API?

Yes. Because you run Jentic One yourself, your own rules decide which Olivya operations and credentials the agent may use, so you can grant only what a task needs, such as POST /create_zap_call to trigger a call and GET /list_agents or GET /list_phones to discover targets. Operations you leave out, like POST /subscribe or DELETE /unsubscribe, stay unavailable to the agent, and it can call nothing outside the set you allow. Since Olivya identifies its targets in the request body rather than the URL path, scoping is set at the operation level rather than by path.
