Skip to main content
The MeshAgent REST API exposes administrative and lifecycle operations for projects, rooms, users, permissions, services, storage, billing, sessions, and project settings. The REST API can be used for:
  • Projects & Rooms: Create projects, manage rooms, and mint room connection tokens
  • Room grants : Persist per-user permissions to manage participant access and available actions
  • Project storage: Upload/download project files by path
  • Services: Manage project-wide and room-scoped services
  • Secrets: Manage key-based and image-pull secrets
  • Project settings & integrations: Update project settings, model routing configuration, webhooks, API keys, and OAuth clients
  • Shares: Create share links for Rooms
  • Mailboxes: Manage mailboxes mapped to Rooms
  • Operations: Understand sessions (events/spans/metrics) and create/manage scheduled tasks
  • Billing & usage: Get insight into your account balance, transactions, subscriptions, and usage reporting
For room-specific operations such as working with agents, datasets, or queues use the Room APIs.

Getting started

To call the MeshAgent REST API, authenticate with a project API key. The simplest path is:
  1. Set up a Python environment with the MeshAgent SDK installed (requires Python 3.13)
  2. Use the MeshAgent CLI to create and activate an API key, then store it in a .env file
  3. Load the key from .env and create a Meshagent() client
MeshAgent requires Python 3.13. We recommend using uv, which manages Python versions, virtual environments, and dependencies automatically. To learn more about uv see the Machine Setup Guide for Python

1. Set up the SDK

Install uv, then create a project and virtual environment with MeshAgent installed:
# Install uv if needed
curl -LsSf https://astral.sh/uv/install.sh | sh 

# Create and navigate to your project directory
mkdir meshagent-project && cd meshagent-project 

# Initialize the project and pin Python 3.13 
uv init --python 3.13

# Create virtual environment (uv will download python 3.13 if not already installed on your machine)
uv venv --python 3.13

# Install MeshAgent SDK and other dependencies
uv add "meshagent[all]" python-dotenv
Activate your virtual environment:
source .venv/bin/activate
Note: You’ll know your virtual environment is active when you see (.venv) at the start of your terminal prompt. When the environment is activated, you can run commands directly (e.g. meshagent setup or python main.py). If the environment is not activated, prefix commands with uv run (e.g. uv run meshagent setup or uv run python main.py).
To upgrade dependencies later, run:
uv lock --upgrade
uv sync

2. Create a new API key and store it in .env

# Authenticate to MeshAgent if not already signed in
meshagent setup # this will also print your project ID

# Get your current project ID
meshagent project list # the project with the * next to it is the current active project

# Create an API Key
meshagent api-key create my-key --activate
Create a .env file in your project and paste the key value:
MESHAGENT_API_KEY=your-api-key-value
MESHAGENT_PROJECT_ID=your-project-id

3. Create a MeshAgent client

Now we can create the MeshAgent client and use it to do something like list all the rooms in our project.
import asyncio
import os
from dotenv import load_dotenv
from meshagent.api.client import Meshagent

load_dotenv()
api_key = os.getenv("MESHAGENT_API_KEY")
project_id = os.getenv("MESHAGENT_PROJECT_ID")

if not api_key:
    raise RuntimeError("MESHAGENT_API_KEY is not set")
if not project_id:
    raise RuntimeError("MESHAGENT_PROJECT_ID is not set")


async def main():
    client = Meshagent(token=api_key)
    try:
        rooms = await client.list_rooms(project_id=project_id)
        print(rooms)
    finally:
        await client.close()


asyncio.run(main())

Client configuration

The Meshagent() client accepts a base_url and token.
  • base_url: defaults to MESHAGENT_API_URL (defaults to https://api.meshagent.com)
  • token: a bearer token for the Authorization header.
    • This will default to MESHAGENT_API_KEY. API keys are scoped to a specific project, so most REST calls will also require a project_id.
REST calls raise meshagent.api.RoomException on non-2xx responses. Many methods also validate responses with typed models, while others still return plain JSON dicts or lists directly.

Projects, Rooms, and managed agents

Create and manage projects, Rooms, and managed agent identities. Room and agent connection methods return signed connection information for the target runtime.
SDK methodHTTP routeWhat it does
create_project(name, settings?)POST /accounts/projectsCreate a project.
list_projects()GET /accounts/projectsList projects you can access.
get_project(project_id)GET /accounts/projects/{project_id}Fetch one project.
update_project_settings(project_id, settings)PUT /accounts/projects/{project_id}/settingsUpdate project settings.
get_project_status(project_id)GET /accounts/projects/{project_id}/statusCheck whether the project is enabled.
get_project_role(project_id)GET /accounts/projects/{project_id}/roleGet your role in the project.
add_user_to_project(project_id, user_id, …)POST /accounts/projects/{project_id}/usersAdd a user (optionally admin/developer/can_create_rooms/can_use_llm_proxy).
remove_user_from_project(project_id, user_id)DELETE /accounts/projects/{project_id}/users/{user_id}Remove a user from the project.
get_users_in_project(project_id)GET /accounts/projects/{project_id}/usersList users in the project.
get_user_profile(user_id)GET /accounts/profiles/{user_id}Fetch a user profile.
update_user_profile(user_id, first_name, last_name)PUT /accounts/profiles/{user_id}Update basic profile fields.
create_room(project_id, name, metadata?, permissions?, if_not_exists?)POST /accounts/projects/{project_id}/roomsCreate a room (supports metadata + optional initial permissions).
list_rooms(project_id, limit?, offset?, order_by?)GET /accounts/projects/{project_id}/roomsList rooms with pagination.
get_room(project_id, room_name)GET /accounts/projects/{project_id}/rooms/{room_name}Fetch a room by name.
update_room(project_id, room_id, name, metadata?)PUT /accounts/projects/{project_id}/rooms/{room_id}Rename/update a room.
delete_room(project_id, room_id)DELETE /accounts/projects/{project_id}/rooms/{room_id}Delete a room.
connect_room(project_id, room_name)POST /accounts/projects/{project_id}/rooms/{room_name}/connectReturn RoomConnectionInfo (jwt, room_url, etc.).
create_agent(project_id, configuration, if_not_exists?, permissions?)POST /accounts/projects/{project_id}/agentsCreate a managed agent identity.
get_agent(project_id, name)GET /accounts/projects/{project_id}/agents/{agent_name}Fetch a managed agent by name.
update_agent(project_id, agent_id, configuration)PUT /accounts/projects/{project_id}/agents/{agent_id}Update a managed agent.
delete_agent(project_id, agent_id)DELETE /accounts/projects/{project_id}/agents/{agent_id}Delete a managed agent.
connect_agent(project_id, agent)POST /accounts/projects/{project_id}/agents/{agent_name}/connectReturn AgentConnectionInfo.

Room grants

Room grants store per-user permissions (ApiScopes) for a specific room. They are persisted as ProjectRoomGrant { room, user_id, permissions } records and are used when minting room connection tokens (see participant tokens).
SDK methodHTTP routeWhat it does
create_room_grant(project_id, room_id, user_id, permissions)POST /accounts/projects/{project_id}/room-grantsCreate a grant for a user.
create_room_grant_by_email(project_id, room_id, email, permissions)POST /accounts/projects/{project_id}/room-grantsCreate a grant targeting a user by email.
update_room_grant(project_id, room_id, user_id, permissions, grant_id?)PUT /accounts/projects/{project_id}/room-grants/{grant_id}Replace permissions for an existing grant.
delete_room_grant(project_id, room_id, user_id)DELETE /accounts/projects/{project_id}/room-grants/{room_id}/{user_id}Delete a grant.
get_room_grant(project_id, room_id, user_id)GET /accounts/projects/{project_id}/room-grants/{room_id}/{user_id}Fetch a grant (ProjectRoomGrant).
list_room_grants(project_id, limit?, offset?, order_by?)GET /accounts/projects/{project_id}/room-grantsList all grants in a project.
list_room_grants_by_user(project_id, user_id, …)GET /accounts/projects/{project_id}/room-grants/by-user/{user_id}List rooms a user can access.
list_room_grants_by_room(project_id, room_name, …)GET /accounts/projects/{project_id}/room-grants/by-room/{room_name}List users with access to a room.
list_unique_rooms_with_grants(project_id, …)GET /accounts/projects/{project_id}/room-grants/by-roomCount grants per room.
list_unique_users_with_grants(project_id, …)GET /accounts/projects/{project_id}/room-grants/by-userCount grants per user.

Agent grants

Agent grants store per-user permissions for managed agents. Agent-room grants store the rooms a managed agent can access.
SDK methodHTTP routeWhat it does
create_agent_grant(project_id, agent_id, user_id, permissions?)POST /accounts/projects/{project_id}/agent-grantsCreate a user grant for an agent.
create_agent_grant_by_email(project_id, agent_id, email, permissions?)POST /accounts/projects/{project_id}/agent-grantsCreate an agent grant targeting an email.
update_agent_grant(project_id, agent_id, user_id, permissions?, grant_id?)PUT /accounts/projects/{project_id}/agent-grants/{grant_id}Replace permissions for an agent grant.
delete_agent_grant(project_id, agent_id, user_id)DELETE /accounts/projects/{project_id}/agent-grants/{agent_id}/{user_id}Delete a user grant for an agent.
get_agent_grant(project_id, agent_id, user_id)GET /accounts/projects/{project_id}/agent-grants/{agent_id}/{user_id}Fetch an agent grant.
create_agent_room_grant(project_id, agent_id, room_id, permissions?)POST /accounts/projects/{project_id}/agent-room-grantsGrant an agent access to a room.
update_agent_room_grant(project_id, agent_id, room_id, permissions?, grant_id?)PUT /accounts/projects/{project_id}/agent-room-grants/{grant_id}Replace an agent-room grant.
delete_agent_room_grant(project_id, agent_id, room_id)DELETE /accounts/projects/{project_id}/agent-room-grants/{agent_id}/{room_id}Delete an agent-room grant.
get_agent_room_grant(project_id, agent_id, room_id)GET /accounts/projects/{project_id}/agent-room-grants/{agent_id}/{room_id}Fetch an agent-room grant.
list_agent_room_grants_by_agent(project_id, agent_name, limit?, offset?)GET /accounts/projects/{project_id}/agent-room-grants/by-agent/{agent_name}List rooms available to an agent.
list_agent_room_grants_by_room(project_id, room_name, limit?, offset?)GET /accounts/projects/{project_id}/agent-room-grants/by-room/{room_name}List agents with access to a room.

Project Storage

MeshAgent allows you to use both project wide and room specific storage. For room-scoped storage see the Storage API documentation.
SDK methodHTTP routeWhat it does
upload(project_id, path, data)POST /projects/{project_id}/storage/upload?path=…Upload raw bytes (Content-Type: application/octet-stream).
download(project_id, path)GET /projects/{project_id}/storage/download?path=…Download raw bytes.

Services

Create and manage project and room services. Project services are available to all rooms in your project while room services are scoped to a specific room.

Project Services

SDK methodHTTP routeWhat it does
create_service(project_id, service)POST /accounts/projects/{project_id}/servicesCreate a project-level service.
create_service_from_template(project_id, template, values)POST /accounts/projects/{project_id}/servicesCreate a project service from a template payload.
list_services(project_id)GET /accounts/projects/{project_id}/servicesList project services.
get_service(project_id, service_id)GET /accounts/projects/{project_id}/services/{service_id}Fetch a service spec.
update_service(project_id, service_id, service)PUT /accounts/projects/{project_id}/services/{service_id}Update a service.
update_service_from_template(project_id, service_id, template, values)PUT /accounts/projects/{project_id}/services/{service_id}Update a service from a template payload.
delete_service(project_id, service_id)DELETE /accounts/projects/{project_id}/services/{service_id}Delete a service.

Room Services

SDK methodHTTP routeWhat it does
create_room_service(project_id, room_name, service)POST /accounts/projects/{project_id}/rooms/{room_name}/servicesCreate a room-scoped service.
create_room_service_from_template(project_id, room_name, template, values)POST /accounts/projects/{project_id}/rooms/{room_name}/servicesCreate a room service from a template payload.
list_room_services(project_id, room_name)GET /accounts/projects/{project_id}/rooms/{room_name}/servicesList room services.
get_room_service(project_id, room_name, service_id)GET /accounts/projects/{project_id}/rooms/{room_name}/services/{service_id}Fetch a room service spec.
update_room_service(project_id, room_name, service_id, service)PUT /accounts/projects/{project_id}/rooms/{room_name}/services/{service_id}Update a room service.
update_room_service_from_template(project_id, room_name, service_id, template, values)PUT /accounts/projects/{project_id}/rooms/{room_name}/services/{service_id}Update a room service from a template payload.
delete_room_service(project_id, room_name, service_id)DELETE /accounts/projects/{project_id}/rooms/{room_name}/services/{service_id}Delete a room service.

Secrets

Create and manage project, room, and agent secrets. You can configure key based secrets as well as image pull secrets.
SDK methodHTTP routeWhat it does
create_secret(project_id, secret)POST /accounts/projects/{project_id}/secretsCreate a secret (PullSecret or KeysSecret).
create_project_secret(project_id, name, type, data)POST /accounts/projects/{project_id}/secretsCreate a project secret from raw bytes.
list_secrets(project_id)GET /accounts/projects/{project_id}/secretsList secrets and read values through the compatibility helper.
list_project_secrets(project_id)GET /accounts/projects/{project_id}/secretsList project secret metadata.
get_project_secret(project_id, secret_id)GET /accounts/projects/{project_id}/secrets/{secret_id}Fetch one project secret.
update_secret(project_id, secret)PUT /accounts/projects/{project_id}/secrets/{secret_id}Update a secret.
update_project_secret(project_id, secret_id, name, type, data)PUT /accounts/projects/{project_id}/secrets/{secret_id}Update a project secret from raw bytes.
delete_secret(project_id, secret_id)DELETE /accounts/projects/{project_id}/secrets/{secret_id}Delete a secret.
delete_project_secret(project_id, secret_id)DELETE /accounts/projects/{project_id}/secrets/{secret_id}Delete a project secret.
create_room_secret(project_id, room_name, data, secret_id?, name?, type?, delegated_to?)POST /accounts/projects/{project_id}/rooms/{room_name}/secretsCreate a room-scoped secret.
list_room_secrets(project_id, room_name)GET /accounts/projects/{project_id}/rooms/{room_name}/secretsList room secret metadata.
get_room_secret(project_id, room_name, secret_id, delegated_to?)GET /accounts/projects/{project_id}/rooms/{room_name}/secrets/{secret_id}Fetch one room secret.
update_room_secret(project_id, room_name, secret_id, data, name?, type?, delegated_to?)PUT /accounts/projects/{project_id}/rooms/{room_name}/secrets/{secret_id}Update a room secret.
delete_room_secret(project_id, room_name, secret_id, delegated_to?)DELETE /accounts/projects/{project_id}/rooms/{room_name}/secrets/{secret_id}Delete a room secret.
create_agent_secret(project_id, agent_id, data, secret_id?, name?, type?, delegated_to?)POST /accounts/projects/{project_id}/agents/{agent_id}/secretsCreate an agent-scoped secret.
list_agent_secrets(project_id, agent_id)GET /accounts/projects/{project_id}/agents/{agent_id}/secretsList agent secret metadata.
get_agent_secret(project_id, agent_id, secret_id, delegated_to?)GET /accounts/projects/{project_id}/agents/{agent_id}/secrets/{secret_id}Fetch one agent secret.
update_agent_secret(project_id, agent_id, secret_id, data, name?, type?, delegated_to?)PUT /accounts/projects/{project_id}/agents/{agent_id}/secrets/{secret_id}Update an agent secret.
delete_agent_secret(project_id, agent_id, secret_id, delegated_to?)DELETE /accounts/projects/{project_id}/agents/{agent_id}/secrets/{secret_id}Delete an agent secret.

Routes

Create and manage project routes that map domains to rooms, ports, and route specs.
SDK methodHTTP routeWhat it does
create_route(project_id, spec? or domain, room_name, port)POST /accounts/projects/{project_id}/routesCreate a route.
update_route(project_id, domain, spec? or room_name, port)PUT /accounts/projects/{project_id}/routes/{domain}Update a route.
get_route(project_id, domain)GET /accounts/projects/{project_id}/routes/{domain}Fetch a route.
list_routes(project_id, count?, offset?, filter?)GET /accounts/projects/{project_id}/routesList project routes.
list_room_routes(project_id, room_name, count?, offset?, filter?)GET /accounts/projects/{project_id}/rooms/{room_name}/routesList routes for a room.
delete_route(project_id, domain)DELETE /accounts/projects/{project_id}/routes/{domain}Delete a route.

Feeds and subscriptions

Create project feeds, publish messages, and fan them out into room storage through subscriptions.
SDK methodHTTP routeWhat it does
create_feed(project_id, name, description?, visibility?, paused?, annotations?, message_schema?)POST /accounts/projects/{project_id}/feedsCreate a feed.
update_feed(project_id, feed_id, name, description?, paused?, annotations?, message_schema?)PUT /accounts/projects/{project_id}/feeds/{feed_id}Update a feed.
get_feed(project_id, feed_id)GET /accounts/projects/{project_id}/feeds/{feed_id}Fetch a feed.
list_feeds(project_id, count?, offset?, filter?)GET /accounts/projects/{project_id}/feedsList project feeds.
list_room_feeds(project_id, room_name, count?, offset?, filter?)GET /accounts/projects/{project_id}/rooms/{room_name}/feedsList feeds visible to a room.
delete_feed(project_id, feed_id)DELETE /accounts/projects/{project_id}/feeds/{feed_id}Delete a feed.
publish_feed_message(project_id, feed_id, message)POST /accounts/projects/{project_id}/feeds/{feed_id}/messagesPublish one message.
publish_feed_batch(project_id, feed_id, messages)POST /accounts/projects/{project_id}/feeds/{feed_id}/messages/batchPublish a batch.
create_feed_subscription(project_id, feed_id, room, path, filename_datetime_format?, annotations?)POST /accounts/projects/{project_id}/feeds/{feed_id}/subscriptionsCreate a subscription.
update_feed_subscription(project_id, feed_id, subscription_id, filename_datetime_format?, annotations?)PUT /accounts/projects/{project_id}/feeds/{feed_id}/subscriptions/{subscription_id}Update a subscription.
get_feed_subscription(project_id, feed_id, subscription_id)GET /accounts/projects/{project_id}/feeds/{feed_id}/subscriptions/{subscription_id}Fetch a subscription.
list_feed_subscriptions(project_id, feed_id)GET /accounts/projects/{project_id}/feeds/{feed_id}/subscriptionsList subscriptions.
delete_feed_subscription(project_id, feed_id, subscription_id)DELETE /accounts/projects/{project_id}/feeds/{feed_id}/subscriptions/{subscription_id}Delete a subscription.

LLM loggers

Create project LLM loggers that copy LLM proxy events into destination feeds. Use these when you need a feed-backed stream of LLM request metadata for processing or analysis.
SDK methodHTTP routeWhat it does
create_llm_logger(project_id, destination_feed_id, filter_expression, paused?, annotations?)POST /accounts/projects/{project_id}/llm-loggersCreate an LLM logger.
update_llm_logger(project_id, logger_id, destination_feed_id, filter_expression, paused?, annotations?)PUT /accounts/projects/{project_id}/llm-loggers/{logger_id}Update an LLM logger.
get_llm_logger(project_id, logger_id)GET /accounts/projects/{project_id}/llm-loggers/{logger_id}Fetch an LLM logger.
list_llm_loggers(project_id)GET /accounts/projects/{project_id}/llm-loggersList LLM loggers.
delete_llm_logger(project_id, logger_id)DELETE /accounts/projects/{project_id}/llm-loggers/{logger_id}Delete an LLM logger.

Registries

Create and manage project-owned image repositories.
SDK methodHTTP routeWhat it does
create_repository(project_id, repository)POST /accounts/projects/{project_id}/repositoriesCreate a project repository.
update_repository(project_id, repository_id, repository)PUT /accounts/projects/{project_id}/repositories/{repository_id}Update a repository.
get_repository(project_id, repository_id)GET /accounts/projects/{project_id}/repositories/{repository_id}Fetch a repository.
list_repositories(project_id)GET /accounts/projects/{project_id}/repositoriesList repositories.
delete_repository(project_id, repository_id)DELETE /accounts/projects/{project_id}/repositories/{repository_id}Delete a repository.
create_repository_token(project_id, repository_id, request)POST /accounts/projects/{project_id}/repositories/{repository_id}/tokenCreate a repository token.

Webhooks

SDK methodHTTP routeWhat it does
create_webhook(project_id, …)POST /accounts/projects/{project_id}/webhooksCreate a webhook.
list_webhooks(project_id)GET /accounts/projects/{project_id}/webhooksList webhooks.
update_webhook(project_id, webhook_id, …)PUT /accounts/projects/{project_id}/webhooks/{webhook_id}Update a webhook.
delete_webhook(project_id, webhook_id)DELETE /accounts/projects/{project_id}/webhooks/{webhook_id}Delete a webhook.

API Keys

SDK methodHTTP routeWhat it does
create_api_key(project_id, name, description)POST /accounts/projects/{project_id}/api-keysIssue a new API key (returns value once).
list_api_keys(project_id)GET /accounts/projects/{project_id}/api-keysList keys (does not list key value).
delete_api_key(project_id, id)DELETE /accounts/projects/{project_id}/api-keys/{id}Revoke a key.

OAuth clients

Manage OAuth Clients for connections with other services.
SDK methodHTTP routeWhat it does
create_oauth_client(project_id, …)POST /accounts/projects/{project_id}/oauth/clientsCreate an OAuth client (includes secret).
list_oauth_clients(project_id)GET /accounts/projects/{project_id}/oauth/clientsList OAuth clients.
get_oauth_client(project_id, client_id)GET /accounts/projects/{project_id}/oauth/clients/{client_id}Fetch one client.
update_oauth_client(project_id, client_id, …)PUT /accounts/projects/{project_id}/oauth/clients/{client_id}Update a client.
delete_oauth_client(project_id, client_id)DELETE /accounts/projects/{project_id}/oauth/clients/{client_id}Delete a client.

External OAuth registrations

Manage project and room external OAuth registrations. These records are separate from project OAuth clients: OAuth clients let your app authenticate users through MeshAgent, while external OAuth registrations connect MeshAgent-managed integrations to external OAuth providers.
SDK methodHTTP routeWhat it does
create_project_external_oauth_registration(project_id, registration)POST /accounts/projects/{project_id}/external-oauthCreate a project external OAuth registration.
update_project_external_oauth_registration(project_id, registration_id, registration)PUT /accounts/projects/{project_id}/external-oauth/{registration_id}Update a project external OAuth registration.
list_project_external_oauth_registrations(project_id)GET /accounts/projects/{project_id}/external-oauthList project external OAuth registrations.
delete_project_external_oauth_registration(project_id, registration_id)DELETE /accounts/projects/{project_id}/external-oauth/{registration_id}Delete a project external OAuth registration.
create_room_external_oauth_registration(project_id, room_name, registration)POST /accounts/projects/{project_id}/rooms/{room_name}/external-oauthCreate a room external OAuth registration.
update_room_external_oauth_registration(project_id, room_name, registration_id, registration)PUT /accounts/projects/{project_id}/rooms/{room_name}/external-oauth/{registration_id}Update a room external OAuth registration.
list_room_external_oauth_registrations(project_id, room_name)GET /accounts/projects/{project_id}/rooms/{room_name}/external-oauthList room external OAuth registrations.
delete_room_external_oauth_registration(project_id, room_name, registration_id)DELETE /accounts/projects/{project_id}/rooms/{room_name}/external-oauth/{registration_id}Delete a room external OAuth registration.

Shares

Manage share records for a project.
SDK methodHTTP routeWhat it does
create_share(project_id, settings?)POST /accounts/projects/{project_id}/sharesCreate a share token.
list_shares(project_id)GET /accounts/projects/{project_id}/sharesList shares.
update_share(project_id, share_id, settings?)PUT /accounts/projects/{project_id}/shares/{share_id}Update share settings.
delete_share(project_id, share_id)DELETE /accounts/projects/{project_id}/shares/{share_id}Delete a share.

Mailboxes

Create and manage mailboxes that can be used by Agents or Rooms.
SDK methodHTTP routeWhat it does
create_mailbox(project_id, address, room, queue, public?)POST /accounts/projects/{project_id}/mailboxesCreate a mailbox mapping.
list_mailboxes(project_id)GET /accounts/projects/{project_id}/mailboxesList mailboxes.
list_room_mailboxes(project_id, room_name)GET /accounts/projects/{project_id}/rooms/{room_name}/mailboxesList mailboxes for a room.
get_mailbox(project_id, address)GET /accounts/projects/{project_id}/mailboxes/{address}Get a mailbox.
update_mailbox(project_id, address, room, queue, public?)PUT /accounts/projects/{project_id}/mailboxes/{address}Update mapping.
delete_mailbox(project_id, address)DELETE /accounts/projects/{project_id}/mailboxes/{address}Delete mapping.

Sessions

Inspect active/recent sessions and fetch diagnostics, or terminate sessions.
SDK methodHTTP routeWhat it does
list_active_sessions(project_id)GET /accounts/projects/{project_id}/sessions/activeList active sessions.
list_recent_sessions(project_id)GET /accounts/projects/{project_id}/sessionsList recent sessions.
get_session(project_id, session_id)GET /accounts/projects/{project_id}/sessions/{session_id}Fetch session metadata.
list_session_events(project_id, session_id)GET /accounts/projects/{project_id}/sessions/{session_id}/eventsSession event stream.
list_session_spans(project_id, session_id)GET /accounts/projects/{project_id}/sessions/{session_id}/spansTrace spans.
list_session_metrics(project_id, session_id)GET /accounts/projects/{project_id}/sessions/{session_id}/metricsMetrics data.
get_session_participant_counts(project_id, session_id)GET /accounts/projects/{project_id}/sessions/{session_id}/participantsParticipant counts.
list_active_agent_sessions(project_id)GET /accounts/projects/{project_id}/agents/sessions/activeList active agent sessions.
list_recent_agent_sessions(project_id, limit?, agent_id?)GET /accounts/projects/{project_id}/agents/sessionsList recent agent sessions.
terminate(project_id, session_id)POST /accounts/projects/{project_id}/sessions/{session_id}/terminateTerminate a session.

Scheduled Tasks

Scheduled tasks let you automate room workflows by sending queued messages on a schedule (cron or one-time).
SDK methodHTTP routeWhat it does
create_scheduled_task(project_id, room_name, …)POST /accounts/projects/{project_id}/rooms/{room_name}/scheduled-tasksCreate a scheduled task.
update_scheduled_task(project_id, task_id, …)PUT /accounts/projects/{project_id}/scheduled-tasks/{task_id}Update a task.
delete_scheduled_task(project_id, task_id)DELETE /accounts/projects/{project_id}/scheduled-tasks/{task_id}Delete a task.
list_scheduled_tasks(project_id, room_id?, task_id?, active?, limit?, offset?)GET /accounts/projects/{project_id}/scheduled-tasksList tasks with filters.
list_scheduled_task_runs(project_id, task_id, limit?, offset?)GET /accounts/projects/{project_id}/scheduled-tasks/{task_id}/runsList task runs.

Billing & usage

Checkout balances, transactions, subscriptions, and usage reports.
SDK methodHTTP routeWhat it does
get_pricing()GET /pricingFetch pricing metadata.
get_balance(project_id)GET /accounts/projects/{project_id}/balanceFetch current balance and auto-recharge config, including the monthly auto-recharge budget.
get_recent_transactions(project_id)GET /accounts/projects/{project_id}/transactionsList recent transactions.
set_auto_recharge(project_id, enabled, amount, threshold, monthly_budget?)POST /accounts/projects/{project_id}/rechargeConfigure auto-recharge and an optional monthly auto-recharge budget.
get_checkout_url(project_id, success_url, cancel_url)POST /accounts/projects/{project_id}/subscriptionCreate subscription checkout; returns checkout_url.
get_credits_checkout_url(project_id, success_url, cancel_url, quantity)POST /accounts/projects/{project_id}/creditsPurchase credits checkout; returns checkout_url.
get_subscription(project_id)GET /accounts/projects/{project_id}/subscriptionFetch subscription info.
get_usage(project_id, start?, end?, interval?, report?, users?, room?, provider?, model?, usage_type?)GET /accounts/projects/{project_id}/usageUsage reporting with optional filters.

What’s next?