Skip to main content

Save vs. publish

Saving (from Build an agent playbook) keeps a playbook private to you as a draft. Publishing is the deliberate step that makes it available to others and unlocks deployment - either as a voice agent on a phone number or as an API endpoint. Until you publish, the top bar shows Draft — not yet published.
This page starts after you have a working, saved playbook. If you have not saved yet - or want to move a playbook in or out as a file - see Save, import & export on the Build page.
Publishing changes who can see and run your agent. Read the visibility levels below before you publish - “Public” lists the agent in a gallery anyone can find.

Step 1 - Publish and set visibility

Hit Publish in the top bar. You pick one of three visibility levels, shown by a badge on the playbook: You can change visibility at any time; the badge updates and the setting is saved server-side. For an Unlisted or Public playbook, open Share to copy a link. Anyone who opens it lands in the Playground with your agent loaded and can talk to it - no account needed for the trial.

Rotate a leaked link

If a link gets out, use Regenerate in the Share dialog to revoke the old link and issue a new one. Old links stop working immediately.
Shared access is view + run, cross-tenant and project-scoped. Someone opening your link can test the agent and clone it; they cannot edit your original.

Step 3 - Let others build on it (clone)

Anyone viewing a shared or public playbook can Clone & edit to get their own private copy. It is the fastest way to hand a teammate a working starting point - they clone, tweak, and publish their own version without touching yours.

Step 4 - Deploy

Publishing opens the deploy drawer, which offers two ways to ship the same agent. Pick the one that matches how callers will reach it:

Deploy as Voice Agent

Put it on a real phone number. Choose a number and the drawer wires up a speech pipe for you - inbound callers reach the agent immediately.

Deploy as Endpoint

Turn it into a callable API with an API key, so your own backend drives the agent. No phone number involved.
Both run the same published playbook and the same AgentRunner you tested in Preview - nothing is re-implemented on the way to production.

Deploy as Voice Agent

Publish drawer on the Deploy as Voice Agent tab, showing a Phone Number picker with a number card and a rotate control, plus Cancel and Deploy as Voice Agent buttons.

Deploy as Voice Agent - pick a number from the picker, then deploy

1

Pick a number

The drawer loads your available numbers in a picker - use the rotate control to cycle through them. Select one (or choose No number to deploy without assigning one yet).
2

Confirm

On deploy the platform assigns the number and provisions a speech pipe behind it - you get a “Deployed!” confirmation with the wired pipe.
3

Call it

Dial the number, or dispatch an outbound call to it. The agent answers with the playbook you tested.
Need a number first, or want to manage pipes by hand? See Numbers and Speech Pipes - the Voice Agent deploy is the one-click version of that wiring.

Deploy as Endpoint

Turns the agent into an OpenAI-compatible chat/completions API. The drawer shows your endpoint, the model (your playbook id), and a ready-to-run snippet in cURL, Python, JavaScript, and Go.
Publish drawer on the Deploy as Endpoint tab, showing the inference.unpod.ai endpoint, a public: model id, Manage API Keys, and cURL / Python / JavaScript / Go code tabs.

Deploy as Endpoint - endpoint, model id, Manage API Keys, and per-language snippets

1

Deploy & create a key

Hit Deploy as Endpoint, then Manage API Keys to mint one. Copy it now - treat it like a password. Rotate it any time if it leaks.
2

Copy the snippet

Pick your language tab. Each snippet is pre-filled with your endpoint, your model id, and the Authorization: Bearer $UNPOD_API_KEY header.
3

Call it from your app

Point any OpenAI SDK at the base URL. The agent runs the exact playbook you tested in Preview.
Example
API keys carry your account’s access. Store them in a secret manager or environment variable (UNPOD_API_KEY), never in client-side code or a committed file. Revoke and regenerate immediately if one is exposed.

Full Endpoint API reference

Stateful sessions (x_session_id / user), the “empty messages = agent greets first” rule, and full Python / JS / Go examples.

Bring your own key (BYOK)

If you want calls billed to your provider account instead of the Playground wallet, open the BYOK panel and paste keys for your LLM and speech providers (OpenAI, Deepgram, Cartesia, ElevenLabs, …). When set, the Playground routes through your keys; Clear reverts to the shared wallet.
Guest and trial usage draws on a metered wallet - you will see a balance chip and an “out of minutes” prompt when it runs low. BYOK sidesteps that by using your own provider quota.

Drive the agent from your own code

Endpoint API

Once deployed as an endpoint, call the agent over the OpenAI-compatible API - stateful sessions, greet-first, and Python / JS / Go examples.