Beyond Presence Agent Conversations API
Retrieve information about the conversations your Managed Agents have had, including their status, participants, and transcripts.
Retrieve information about the conversations your Managed Agents have had, including their status, participants, and transcripts.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/beyond-presence:beyond-presence-agent-conversations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Beyond Presence Agent Conversations API
summary: Create, configure, and run interactive real-time avatars.
description: 'The Beyond Presence API lets you build lifelike, real-time avatars.
## Starting a conversation with a Managed Agent
There are two ways to put a user in front of one of your agents, and most
integrations only need the first:
1. **Open the agent''s managed room** at `https://bey.chat/`. This
needs no API call at all and is available on every plan. Use the
`Agent Conversations` endpoints afterwards to read status and transcripts.
2. **Drive the media session yourself** from a LiveKit client SDK, using
`POST /v1/livekit-rooms` in the `Agent Integration` group to mint room
credentials. This requires the Growth plan or above.
## Authentication
Authenticate every request with your API key in the `x-api-key` header:
```
x-api-key:
```
You can create and manage API keys in the dashboard, and verify a key with
`GET /v1/auth/verify`.
## Pagination
List endpoints are cursor-paginated. Pass `limit` (1-50, default 10) to control
the page size and `cursor` to fetch the next page. Each response includes a
`next_cursor` when more results are available.
## Errors
Errors return the appropriate HTTP status code with a JSON body containing a
`detail` message with more information.
## Rate limits
Usage and concurrency limits are tied to your plan and surfaced as HTTP `429`
responses.'
version: 0.3.0
servers:
- url: https://api.bey.dev
tags:
- name: Agent Conversations
description: Retrieve information about the conversations your Managed Agents have had, including their status, participants, and transcripts.
paths:
/v1/conversations:
get:
tags:
- Agent Conversations
summary: List Conversations
description: 'List conversations managed by your agents.
Returns a cursor-paginated list of conversations across all of your
agents, most recent first.'
operationId: list_conversations_v1_conversations_get
security:
- APIKeyHeader: []
parameters:
- name: limit
in: query
required: false
schema:
type: integer
maximum: 50
exclusiveMinimum: 0
description: Maximum number of objects to return.
default: 10
title: Limit
description: Maximum number of objects to return.
- name: cursor
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Cursor for pagination.
title: Cursor
description: Cursor for pagination.
responses:
'200':
description: Paginated List of Conversations
content:
application/json:
schema:
$ref: '#/components/schemas/Page_ConversationResponse_'
'401':
description: Authentication failed. The `x-api-key` header is missing or the provided API key is invalid.
content:
application/json:
examples:
missing:
summary: Missing API key
value:
detail: API key is required.
invalid:
summary: Invalid API key
value:
detail: Invalid API key.
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: The API key is valid but not permitted to perform this action, either because the resource belongs to someone else or because the requested feature requires a plan upgrade.
content:
application/json:
examples:
permission:
summary: Not permitted
value:
detail: You do not have permission to access this resource.
plan:
summary: Plan upgrade required
value:
detail: This feature is not available on your current plan. Please upgrade your plan.
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: The requested resource does not exist or is not accessible with this API key.
content:
application/json:
example:
detail: The requested resource was not found.
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: The request is malformed. `detail` lists each field that failed validation, where it was located, and why.
content:
application/json:
example:
detail:
- loc:
- body
- name
msg: Field required
type: missing
'429':
description: A plan limit has been exceeded, either the usage limit or the number of concurrent sessions.
content:
application/json:
examples:
usage:
summary: Usage limit exceeded
value:
detail: Usage limit exceeded. Please upgrade your plan.
concurrency:
summary: Concurrency limit exceeded
value:
detail: You have reached your concurrency limit. Please upgrade your plan or stop other ongoing sessions.
schema:
$ref: '#/components/schemas/ErrorResponse'
/v1/conversations/{id}:
get:
tags:
- Agent Conversations
summary: Retrieve Conversation
description: Retrieve a single conversation by ID, including its status and participants.
operationId: get_conversation_v1_conversations__id__get
security:
- APIKeyHeader: []
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Conversation ID.
title: Id
description: Conversation ID.
responses:
'200':
description: Requested Conversation
content:
application/json:
schema:
$ref: '#/components/schemas/ConversationResponse'
'401':
description: Authentication failed. The `x-api-key` header is missing or the provided API key is invalid.
content:
application/json:
examples:
missing:
summary: Missing API key
value:
detail: API key is required.
invalid:
summary: Invalid API key
value:
detail: Invalid API key.
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: The API key is valid but not permitted to perform this action, either because the resource belongs to someone else or because the requested feature requires a plan upgrade.
content:
application/json:
examples:
permission:
summary: Not permitted
value:
detail: You do not have permission to access this resource.
plan:
summary: Plan upgrade required
value:
detail: This feature is not available on your current plan. Please upgrade your plan.
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: The requested resource does not exist or is not accessible with this API key.
content:
application/json:
example:
detail: The requested resource was not found.
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: The request is malformed. `detail` lists each field that failed validation, where it was located, and why.
content:
application/json:
example:
detail:
- loc:
- body
- name
msg: Field required
type: missing
'429':
description: A plan limit has been exceeded, either the usage limit or the number of concurrent sessions.
content:
application/json:
examples:
usage:
summary: Usage limit exceeded
value:
detail: Usage limit exceeded. Please upgrade your plan.
concurrency:
summary: Concurrency limit exceeded
value:
detail: You have reached your concurrency limit. Please upgrade your plan or stop other ongoing sessions.
schema:
$ref: '#/components/schemas/ErrorResponse'
/v1/conversations/{id}/messages:
get:
tags:
- Agent Conversations
summary: List Conversation Messages
description: 'List the transcribed messages of a conversation.
Returns the conversation transcript in chronological order, with each
message attributed to either the agent or the user.'
operationId: list_messages_v1_conversations__id__messages_get
security:
- APIKeyHeader: []
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Conversation ID.
title: Id
description: Conversation ID.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ConversationMessage'
title: Response List Messages V1 Conversations Id Messages Get
'401':
description: Authentication failed. The `x-api-key` header is missing or the provided API key is invalid.
content:
application/json:
examples:
missing:
summary: Missing API key
value:
detail: API key is required.
invalid:
summary: Invalid API key
value:
detail: Invalid API key.
schema:
$ref: '#/components/schemas/ErrorResponse'
'403':
description: The API key is valid but not permitted to perform this action, either because the resource belongs to someone else or because the requested feature requires a plan upgrade.
content:
application/json:
examples:
permission:
summary: Not permitted
value:
detail: You do not have permission to access this resource.
plan:
summary: Plan upgrade required
value:
detail: This feature is not available on your current plan. Please upgrade your plan.
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: The requested resource does not exist or is not accessible with this API key.
content:
application/json:
example:
detail: The requested resource was not found.
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: The request is malformed. `detail` lists each field that failed validation, where it was located, and why.
content:
application/json:
example:
detail:
- loc:
- body
- name
msg: Field required
type: missing
'429':
description: A plan limit has been exceeded, either the usage limit or the number of concurrent sessions.
content:
application/json:
examples:
usage:
summary: Usage limit exceeded
value:
detail: Usage limit exceeded. Please upgrade your plan.
concurrency:
summary: Concurrency limit exceeded
value:
detail: You have reached your concurrency limit. Please upgrade your plan or stop other ongoing sessions.
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
OngoingConversationStatus:
properties:
type:
type: string
const: ongoing
title: Type
default: ongoing
started_at:
type: string
title: Started At
description: Start time in ISO 8601 format.
examples:
- '2022-01-01T00:00:00Z'
type: object
required:
- started_at
title: OngoingConversationStatus
description: Status for conversation that is currently ongoing.
NoMorePage_ConversationResponse_:
properties:
data:
items:
$ref: '#/components/schemas/ConversationResponse'
type: array
title: Data
description: List of objects.
has_more:
type: boolean
const: false
title: Has More
description: Whether there are more objects to fetch.
default: false
type: object
required:
- data
title: NoMorePage[ConversationResponse]
CompletedConversationStatus:
properties:
type:
type: string
const: completed
title: Type
default: completed
started_at:
type: string
title: Started At
description: Start time in ISO 8601 format.
examples:
- '2022-01-01T00:00:00Z'
ended_at:
type: string
title: Ended At
description: End time in ISO 8601 format.
examples:
- '2022-01-01T00:00:00Z'
type: object
required:
- started_at
- ended_at
title: CompletedConversationStatus
description: Status for conversation that has completed.
Page_ConversationResponse_:
anyOf:
- $ref: '#/components/schemas/HasMorePage_ConversationResponse_'
- $ref: '#/components/schemas/NoMorePage_ConversationResponse_'
ConversationStatus:
oneOf:
- $ref: '#/components/schemas/ToStartConversationStatus'
- $ref: '#/components/schemas/OngoingConversationStatus'
- $ref: '#/components/schemas/CompletedConversationStatus'
discriminator:
propertyName: type
mapping:
completed: '#/components/schemas/CompletedConversationStatus'
ongoing: '#/components/schemas/OngoingConversationStatus'
to_start: '#/components/schemas/ToStartConversationStatus'
HasMorePage_ConversationResponse_:
properties:
data:
items:
$ref: '#/components/schemas/ConversationResponse'
type: array
title: Data
description: List of objects.
has_more:
type: boolean
const: true
title: Has More
description: Whether there are more objects to fetch.
default: true
next_cursor:
type: string
title: Next Cursor
description: The cursor for the next page of objects.
type: object
required:
- data
- next_cursor
title: HasMorePage[ConversationResponse]
ConversationMessage:
properties:
message:
type: string
title: Message
description: Text content.
sent_at:
type: string
title: Sent At
description: Sent time in ISO 8601 format.
sender:
type: string
enum:
- ai
- user
title: Sender
description: Sender, either 'ai' or 'user'.
type: object
required:
- message
- sent_at
- sender
title: ConversationMessage
description: Message in a conversation.
ConversationResponse:
properties:
id:
type: string
title: Id
description: Unique identifier of the object in the database.
examples:
- 01234567-89ab-cdef-0123-456789abcdef
agent_id:
type: string
title: Agent Id
description: ID of agent managing the conversation.
user_name:
anyOf:
- type: string
- type: 'null'
title: User Name
description: Name of the user.
user_email:
anyOf:
- type: string
- type: 'null'
title: User Email
description: Email of the user.
tags:
additionalProperties:
type: string
maxLength: 100
minLength: 1
propertyNames:
maxLength: 30
minLength: 1
type: object
maxProperties: 10
title: Tags
description: Tags for the conversation.
status:
$ref: '#/components/schemas/ConversationStatus'
type: object
required:
- id
- agent_id
- status
title: ConversationResponse
description: Response model for a conversation.
ErrorResponse:
properties:
detail:
type: string
title: Detail
description: Human-readable description of the error.
examples:
- Invalid API key.
type: object
required:
- detail
title: ErrorResponse
description: 'Standard error response body.
Carries a single human-readable `detail` message describing what went
wrong. This is the shape of every error response except validation errors
(`422`), which instead return a list of per-field error objects.'
ToStartConversationStatus:
properties:
type:
type: string
const: to_start
title: Type
default: to_start
type: object
title: ToStartConversationStatus
description: Status for conversation that has not yet started.
securitySchemes:
APIKeyHeader:
type: apiKey
description: Your Beyond Presence API Key.
in: header
name: x-api-key
x-provenance:
method: harvested
publisher: Beyond Presence
source: https://api.bey.dev/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)