Skip to main content
GET
Get PAL
For AI agents, use https://docs.tavus.io/openapi.yaml for the full HTTP API contract.
Returns the live PAL by default. If the PAL has an active PAL Builder draft, add ?source=draft to read the unpublished draft body without affecting live traffic. Draft views include a publish_url for Publish PAL. layers.conferencing is always the live value. See Draft vs live PALs.

Authorizations

x-api-key
string
header
required

Path Parameters

pal_id
string
required

The unique identifier of the PAL.

Example:

"pcb7a34da5fe"

Query Parameters

source
enum<string>

Which body to return when the PAL has an active PAL Builder draft.

  • Omitted (default): returns the live PAL. The response shape is unchanged from previous behavior.
  • draft: overlays the active draft. The response pal_id still matches the id you queried; is_draft_view, has_unpublished_changes, live_pal_id, draft_pal_id, publish_url, and routing_message are added so you can tell you are reading unpublished content. If no draft exists, or the draft has no unpublished changes, the live body is returned unchanged.
  • live: only meaningful when you address a draft id directly — forces the live parent body. The response pal_id still matches the draft id you queried.

layers.conferencing is always the live value, even on a draft view.

Available options:
draft,
live

Response

pal_id
string

A unique identifier for the PAL.

Example:

"pcb7a34da5fe"

pal_name
string

A name for the PAL.

Example:

"Life Coach"

system_prompt
string

The system prompt that will be used by the llm.

Example:

"As a Life Coach, you are a dedicated professional who specializes in..."

default_face_id
string

The default face_id associated with this PAL if one exists.

Example:

"r90bbd427f71"

conferencing_email
string | null

The PAL's invitable meeting email on tavusinvite.com, derived from layers.conferencing.username. Present when conferencing is configured.

Example:

"acme-anna@tavusinvite.com"

document_ids
string[]

Array of document IDs that the PAL has access to. These documents will be available to the PAL in all their conversations. The document_ids are returned in the response of the Get Document and the Create Document endpoints.

Example:
document_tags
string[]

Array of document tags that the PAL has access to. Documents matching these tags will be available to the PAL in all their conversations.

Example:
layers
object
created_at
string

The date and time the PAL was created.

Example:

""

updated_at
string

The date and time of when the PAL was last updated.

is_draft_view
boolean

Present and true only when you called this endpoint with ?source=draft and the PAL has an active PAL Builder draft with unpublished changes. Absent otherwise. Signals that the response body is the draft — not the live PAL that powers running conversations.

Example:

true

has_unpublished_changes
boolean

Present with is_draft_view=true. true when the draft has edits that have not been published to the live PAL.

Example:

true

live_pal_id
string

Present with is_draft_view=true. The id of the live PAL that this draft belongs to. This is the same id you queried when using ?source=draft against a live PAL id.

Example:

"pcb7a34da5fe"

draft_pal_id
string

Present with is_draft_view=true. The id of the underlying draft row. You do not normally need this — patching or publishing the live id routes to the draft automatically — but it is exposed for tooling that wants to address the draft row directly.

Example:

"p5f1e8d2a934"

published_view_url
string

Present with is_draft_view=true. Convenience path for re-reading the live body: /v2/pals/{live_pal_id}?source=live.

Example:

"/v2/pals/pcb7a34da5fe?source=live"

publish_url
string

Present with is_draft_view=true. The PAL endpoint that publishes this draft to live.

Example:

"/v2/pals/pcb7a34da5fe/publish"

routing_message
string

Present with is_draft_view=true. Human-readable summary explaining that the body is the unpublished draft and that live traffic still uses the published version until you call POST /v2/pals/{pal_id}/publish.

Example:

"Showing the unpublished draft of pcb7a34da5fe. Conversations and the public live PAL use the published version until you publish — POST /v2/pals/pcb7a34da5fe/publish. Add ?source=live to read the live version."