Skip to content

Latest commit

 

History

History
882 lines (672 loc) · 34.3 KB

File metadata and controls

882 lines (672 loc) · 34.3 KB
title REST API Reference
sidebarTitle API Reference
description Complete reference for all Eliza REST API endpoints, organized by resource group.

The Eliza API server runs on port 31337 (ELIZA_API_PORT) in development and on port 2138 (ELIZA_PORT) in production, where the API and dashboard share the same port. All endpoints are prefixed with /api/. Authentication is required when ELIZA_API_TOKEN is set.

When `ELIZA_API_TOKEN` is configured, include the token as a `Bearer` token in the `Authorization` header, or use the pairing flow to obtain it.

Quick Start

These examples use port 31337 (the development default). In production, replace with port 2138 or your configured ELIZA_PORT. Replace YOUR_TOKEN with the value of ELIZA_API_TOKEN or the token received from the pairing flow.

Check agent status

curl http://localhost:31337/api/status
{
  "state": "running",
  "agentName": "Eliza",
  "model": "@elizaos/plugin-anthropic",
  "uptime": 3600000,
  "startedAt": 1718000000000
}

Authenticate via pairing code

When pairing is enabled, the agent displays a code in its terminal. Submit it to receive a token:

curl -X POST http://localhost:31337/api/auth/pair \
  -H "Content-Type: application/json" \
  -d '{"code": "ABCD-EFGH"}'
{
  "token": "your-api-token"
}

Get character info

curl http://localhost:31337/api/character \
  -H "Authorization: Bearer YOUR_TOKEN"

Send a conversation message

curl -X POST http://localhost:31337/api/conversations/YOUR_CONVERSATION_ID/messages \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello, what can you do?"}'

Stream a conversation response

curl -N -X POST http://localhost:31337/api/conversations/YOUR_CONVERSATION_ID/messages/stream \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Tell me about yourself"}'

The response is a Server-Sent Events stream. Each event contains a data field with a JSON payload.

List conversations

curl http://localhost:31337/api/conversations \
  -H "Authorization: Bearer YOUR_TOKEN"

Upload a knowledge document

curl -X POST http://localhost:31337/api/documents \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Company FAQ",
    "content": "Q: What is Eliza?\nA: A personal AI assistant built on elizaOS."
  }'

Search knowledge

curl "http://localhost:31337/api/documents/search?q=what+is+eliza&limit=5" \
  -H "Authorization: Bearer YOUR_TOKEN"

List plugins

curl http://localhost:31337/api/plugins \
  -H "Authorization: Bearer YOUR_TOKEN"

Get autonomy state

curl http://localhost:31337/api/agent/autonomy \
  -H "Authorization: Bearer YOUR_TOKEN"
{
  "enabled": false,
  "thinking": false
}

Enable autonomy

curl -X POST http://localhost:31337/api/agent/autonomy \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"enabled": true}'

Authentication

Method Path Description
GET /api/auth/status Check if auth is required and whether pairing is enabled
POST /api/auth/pair Submit a pairing code to receive the API token

Status & Runtime

Method Path Description
GET /api/status Get current agent status, name, model, uptime, autonomy state, and pending restart info
GET /api/health Structured subsystem health check (runtime, database, plugins, connectors, readiness)
GET /api/runtime Get runtime details (loaded plugins, services, capabilities)

Example GET /api/status response:

{
  "name": "Eliza",
  "status": "running",
  "model": "anthropic/claude-sonnet-4.6",
  "uptime": 3600,
  "autonomy": { "enabled": true },
  "pendingRestart": false
}

Agent Lifecycle

Method Path Description
POST /api/agent/start Start the agent
POST /api/agent/stop Stop the agent and disable autonomy
POST /api/agent/pause Pause the agent (keep uptime, disable autonomy)
POST /api/agent/resume Resume a paused agent and re-enable autonomy

Agent Admin

Method Path Description
POST /api/agent/restart Restart the agent runtime
POST /api/agent/reset Wipe config, workspace, memory and return to onboarding
POST /api/restart Restart the process (alias used by some callers)
GET /api/agent/self-status Structured self-status summary (capabilities, wallet, plugins, awareness)

Agent Transfer (Export / Import)

Method Path Description
POST /api/agent/export Export agent as a password-encrypted .eliza-agent binary file
GET /api/agent/export/estimate Estimate export file size before downloading
POST /api/agent/import Import agent from a password-encrypted .eliza-agent file

Autonomy

Method Path Description
GET /api/agent/autonomy Get autonomy state (enabled)
POST /api/agent/autonomy Enable or disable autonomy ({ enabled: boolean })

Agent Events

Method Path Description
GET /api/agent/events Get buffered agent events. Params: after (event ID cursor), limit (1-1000, default 200), runId (filter by run), fromSeq (min sequence number)

Onboarding

Method Path Description
GET /api/onboarding/status Check if onboarding is complete
GET /api/onboarding/options Get available onboarding options (providers, styles)
POST /api/onboarding Complete the onboarding wizard

Provider

Method Path Description
POST /api/provider/switch Atomically switch the active AI provider selection and persist canonical routing state

Character

Method Path Description
GET /api/character Get current character data (name, bio, system, style, etc.)
PUT /api/character Update character fields (validated against CharacterSchema)
GET /api/character/random-name Generate a random agent name
POST /api/character/generate AI-assisted generation of bio, system prompt, style, chatExamples, or postExamples
GET /api/character/schema Get the character field schema for UI rendering

Chat & Conversations

Method Path Description
GET /api/conversations List all conversations
POST /api/conversations Create a new conversation
GET /api/conversations/:id/messages Get messages for a conversation
POST /api/conversations/:id/messages Send a message in a conversation
POST /api/conversations/:id/messages/stream Send a message and stream the response in a conversation (SSE)
POST /api/conversations/:id/greeting Generate a greeting message for a conversation
PATCH /api/conversations/:id Update conversation metadata (e.g. title)
DELETE /api/conversations/:id Delete a conversation
Conversations are scoped to the web-chat interface. Each conversation maps to an elizaOS room with a deterministic world ID. Messages from connector channels include additional sender identity fields (`from`, `fromUserName`, `avatarUrl`) when the connector provides them.

Inbox (Canonical Messages)

Method Path Description
GET /api/inbox/messages List recent messages across all connector channels in a canonical feed
GET /api/inbox/chats List connector chat threads (one row per external chat room)
GET /api/inbox/sources List distinct connector source tags the agent has messages for
The inbox aggregates messages from every connected platform (iMessage, Telegram, Discord, WhatsApp, WeChat, Slack, Signal, SMS) into a single time-ordered feed. Dashboard web-chat messages are excluded — those are accessible via the [Conversations API](/rest/conversations).

Config

Method Path Description
GET /api/config Get the current eliza.json configuration
PUT /api/config Update configuration fields
GET /api/config/schema Get the configuration schema for UI rendering

Connectors

Method Path Description
GET /api/connectors List all configured messaging connectors
POST /api/connectors Add or update a connector configuration
DELETE /api/connectors/:name Remove a connector configuration

Plugins

Method Path Description
GET /api/plugins List all plugins with status, config, and validation info
PUT /api/plugins/:id Update plugin configuration (enable/disable, set params)
POST /api/plugins/:id/test Test a plugin's configuration
POST /api/plugins/install Install a plugin from the registry
POST /api/plugins/uninstall Uninstall a user-installed plugin
POST /api/plugins/:id/eject Eject a bundled plugin to user-managed
POST /api/plugins/:id/sync Sync an ejected plugin with its upstream
POST /api/plugins/:id/reinject Reinject a previously ejected plugin
GET /api/plugins/installed List user-installed plugins
GET /api/plugins/ejected List ejected plugins
GET /api/plugins/core List core plugin status
POST /api/plugins/core/toggle Toggle a core plugin on/off

Secrets

Method Path Description
GET /api/secrets Get all plugin-declared sensitive parameters with current set/unset status
PUT /api/secrets Update sensitive environment variables (API keys, tokens)

Skills

Method Path Description
GET /api/skills List all loaded skills
POST /api/skills/refresh Refresh the skills snapshot
GET /api/skills/:id/scan Get security scan report for a skill
POST /api/skills/:id/acknowledge Acknowledge a skill security scan
POST /api/skills/create Create a new skill
POST /api/skills/:id/open Open a skill directory
GET /api/skills/:id/source Get skill source code
PUT /api/skills/:id/source Update skill source code
POST /api/skills/:id/enable Enable a skill (honors scan acknowledgments)
POST /api/skills/:id/disable Disable a skill
DELETE /api/skills/:id Delete a skill

Skills Catalog (Marketplace)

Method Path Description
GET /api/skills/catalog Browse the skills catalog
GET /api/skills/catalog/search Search catalog skills
GET /api/skills/catalog/:slug Get details for a catalog skill
POST /api/skills/catalog/refresh Refresh the catalog cache
POST /api/skills/catalog/install Install a catalog skill
POST /api/skills/catalog/uninstall Uninstall a catalog skill

Skills Marketplace (npm-based)

Method Path Description
GET /api/skills/marketplace/search Search marketplace skills
GET /api/skills/marketplace/installed List installed marketplace skills
POST /api/skills/marketplace/install Install a marketplace skill
POST /api/skills/marketplace/uninstall Uninstall a marketplace skill
GET /api/skills/marketplace/config Get marketplace configuration
PUT /api/skills/marketplace/config Update marketplace configuration

Registry (Plugin Registry)

Method Path Description
GET /api/registry/plugins List all plugins from the elizaOS registry
GET /api/registry/plugins/:name Get details for a specific registry plugin
GET /api/registry/search Search the registry. Params: q (required), limit
POST /api/registry/refresh Force refresh the registry cache

On-Chain Registry (ERC-8004)

Method Path Description
GET /api/registry/status Get on-chain agent registration status
POST /api/registry/register Register agent on-chain
POST /api/registry/update-uri Update the on-chain tokenURI
POST /api/registry/sync Sync agent profile on-chain
GET /api/registry/config Get on-chain registry configuration (chainId, addresses, explorer)

Memory & Context

Method Path Description
POST /api/memory/remember Save a free-text note into the agent's persistent memory
GET /api/memory/search Full-text keyword search over saved memory notes. Params: q (required), limit
GET /api/context/quick Search memory and knowledge, then synthesize a concise answer. Params: q (required), limit

Knowledge

Method Path Description
GET /api/documents/stats Get document and fragment counts
GET /api/documents List knowledge documents. Params: limit, offset
GET /api/documents/:id Get a specific document with content
POST /api/documents Upload a document (base64 content or text)
POST /api/documents/bulk Upload up to 100 documents in a single request
POST /api/documents/url Upload from URL (supports YouTube auto-transcription)
DELETE /api/documents/:id Delete a document and all its fragments
GET /api/documents/search Semantic search. Params: q (required), threshold, limit
GET /api/documents/:documentId/fragments List all fragments for a document

Database

Method Path Description
GET /api/database/status Get database status (provider, connection, table count)
GET /api/database/config Get persisted database configuration
PUT /api/database/config Update database provider configuration
POST /api/database/test Test a PostgreSQL connection
GET /api/database/tables List all database tables with column info
GET /api/database/tables/:table/rows Query rows from a table with pagination, sorting, and search
POST /api/database/tables/:table/rows Insert a new row into a table
PUT /api/database/tables/:table/rows Update a row in a table
DELETE /api/database/tables/:table/rows Delete a row from a table
POST /api/database/query Execute a raw SQL query (read-only by default)

Triggers

Method Path Description
GET /api/triggers List all triggers
POST /api/triggers Create a new trigger
GET /api/triggers/:id Get a trigger by ID
PUT /api/triggers/:id Update a trigger
DELETE /api/triggers/:id Delete a trigger
POST /api/triggers/:id/execute Manually execute a trigger
GET /api/triggers/:id/runs Get run history for a trigger
GET /api/triggers/health Get trigger system health snapshot

Workflows Workflows

Method Path Description
GET /api/workflow/workflows List workflows
GET /api/workflow/status Get workflow integration status (mode, health, platform)

Trajectories

Method Path Description
GET /api/trajectories List and search trajectories with filters
GET /api/trajectories/:id Get trajectory details with LLM calls and provider accesses
GET /api/trajectories/stats Get trajectory statistics
GET /api/trajectories/config Get trajectory logging configuration (enabled/disabled)
PUT /api/trajectories/config Enable or disable trajectory logging
POST /api/trajectories/export Export trajectories (JSON, CSV, ART, or ZIP)
DELETE /api/trajectories Delete trajectories (by IDs or all)

Training & Fine-Tuning

Method Path Description
GET /api/training/status Get training service status
GET /api/training/trajectories List trajectories for training. Params: limit, offset
GET /api/training/trajectories/:id Get trajectory detail for training
GET /api/training/datasets List training datasets
POST /api/training/datasets/build Build a new dataset from trajectories
GET /api/training/jobs List training jobs
POST /api/training/jobs Start a new training job
GET /api/training/jobs/:id Get training job status
POST /api/training/jobs/:id/cancel Cancel a running training job
GET /api/training/models List fine-tuned models
POST /api/training/models/:id/import-ollama Import a model to Ollama
POST /api/training/models/:id/activate Activate a fine-tuned model
POST /api/training/models/:id/benchmark Benchmark a fine-tuned model
GET /api/training/auto/config Get auto-training configuration (thresholds, cooldown)
PUT /api/training/auto/config Update auto-training configuration

Cloud

Method Path Description
POST /api/cloud/login Start Eliza Cloud login flow (returns browser URL and session ID)
GET /api/cloud/login/status Poll login session status. Param: sessionId
GET /api/cloud/status Get cloud connection status, auth state, and billing URL
GET /api/cloud/credits Get cloud credit balance
GET /api/cloud/billing/summary Get cloud billing summary for in-app billing
GET /api/cloud/billing/payment-methods List saved cloud billing payment methods
GET /api/cloud/billing/history List recent cloud billing activity
POST /api/cloud/billing/checkout Create a cloud billing checkout session
POST /api/cloud/billing/crypto/quote Create a cloud billing crypto quote
POST /api/cloud/disconnect Disconnect from Eliza Cloud and clear credentials
GET /api/cloud/agents List cloud agents
POST /api/cloud/agents Create a new cloud agent
POST /api/cloud/agents/:id/provision Provision a cloud agent
POST /api/cloud/agents/:id/shutdown Shutdown and delete a cloud agent
POST /api/cloud/agents/:id/connect Connect to an existing cloud agent
POST /api/cloud/v1/eliza/agents/:id/pairing-token Generate a pairing token for opening a cloud agent's Web UI in a new tab. Returns { success, data: { token, redirectUrl, expiresIn } }
Routes under `/api/cloud/v1/` are forwarded as `/api/v1/` on the cloud backend, distinct from the legacy `/api/cloud/compat/*` mapping. Both `Authorization: Bearer` and `X-Api-Key` headers are accepted for authentication.

Subscription (OAuth Flows)

Method Path Description
GET /api/subscription/status Get status of subscription auth providers
POST /api/subscription/anthropic/start Start Anthropic OAuth flow (returns auth URL)
POST /api/subscription/anthropic/exchange Exchange Anthropic auth code for tokens
POST /api/subscription/anthropic/setup-token Accept an Anthropic setup token directly
POST /api/subscription/openai/start Start OpenAI OAuth flow (returns auth URL)
POST /api/subscription/openai/exchange Exchange OpenAI auth code for tokens
DELETE /api/subscription/:provider Remove subscription credentials for a provider

Apps

Method Path Description
GET /api/apps List available and installed apps
GET /api/apps/search Search for apps. Params: q, limit
GET /api/apps/installed List installed apps
POST /api/apps/launch Launch an app (install plugin if needed)
POST /api/apps/stop Stop a running app
GET /api/apps/info/:name Get app details
GET /api/apps/plugins List non-app plugins from registry
GET /api/apps/plugins/search Search non-app plugins. Params: q, limit
POST /api/apps/refresh Refresh the app registry cache

Hyperscape Integration

Method Path Description
GET /api/apps/hyperscape/embedded-agents List embedded Hyperscape agents
POST /api/apps/hyperscape/embedded-agents Create an embedded Hyperscape agent
POST /api/apps/hyperscape/embedded-agents/:id/(start|stop|pause|resume|command) Control an embedded agent
POST /api/apps/hyperscape/agents/:id/message Send a message to a Hyperscape agent
GET /api/apps/hyperscape/agents/:id/goal Get a Hyperscape agent's current goal
GET /api/apps/hyperscape/agents/:id/quick-actions Get available quick actions for a Hyperscape agent

MCP (Model Context Protocol)

Method Path Description
GET /api/mcp/marketplace/search Search the MCP marketplace. Params: q, limit
GET /api/mcp/marketplace/details/:name Get details for an MCP server
GET /api/mcp/config Get MCP server configuration
POST /api/mcp/config/server Add or update an MCP server config
DELETE /api/mcp/config/server/:name Remove an MCP server config
PUT /api/mcp/config Bulk update MCP configuration
GET /api/mcp/status Get MCP connection status for all configured servers

Models

Method Path Description
GET /api/models List available models. Params: provider (optional), refresh (bust cache)

Core Status

Method Path Description
GET /api/core/status Get elizaOS core version and status

Permissions

Method Path Description
GET /api/permissions Get all system permission states
GET /api/permissions/:id Get a single permission state
GET /api/permissions/shell Get shell access toggle status
PUT /api/permissions/shell Toggle shell access on/off
PUT /api/permissions/state Update permission states from Electrobun RPC
POST /api/permissions/refresh Force refresh all permission states
POST /api/permissions/:id/request Request a specific system permission
POST /api/permissions/:id/open-settings Open system settings for a permission

Custom Actions

Method Path Description
GET /api/custom-actions List all user-defined custom actions
POST /api/custom-actions Create a new custom action
POST /api/custom-actions/generate AI-generate an action definition from a prompt
PUT /api/custom-actions/:id Update an existing custom action
DELETE /api/custom-actions/:id Delete a custom action
POST /api/custom-actions/:id/test Test-run a custom action

Automations

Method Path Description
GET /api/automations Canonical list of all automations (triggers, workflows, workbench tasks)
GET /api/automations/nodes Node catalog — available trigger, action, context, integration, and agent nodes

Workbench

Method Path Description
GET /api/workbench/overview Get workbench overview (tasks, triggers, todos, life-ops, autonomy state)
GET /api/workbench/tasks List workbench tasks
POST /api/workbench/tasks Create a workbench task
GET /api/workbench/tasks/:id Get a single workbench task
PUT /api/workbench/tasks/:id Update a workbench task
DELETE /api/workbench/tasks/:id Delete a workbench task
GET /api/workbench/todos List workbench todos
POST /api/workbench/todos Create or update a workbench to-do item

Automations

Method Path Description
GET /api/automations Canonical list of all automations (triggers + workflows + workbench tasks) with summary counts
GET /api/automations/nodes Node catalog — available trigger, action, context, integration, and agent nodes
GET /api/workflow/workflows List workflows
GET /api/workflow/status Get workflow status (mode, health, platform)

LifeOps

Method Path Description
GET /api/lifeops/overview Aggregated overview of occurrences, goals, and reminders
GET /api/lifeops/definitions List all definitions
POST /api/lifeops/definitions Create a new definition
GET /api/lifeops/definitions/:id Get a single definition
PUT /api/lifeops/definitions/:id Update a definition
GET /api/lifeops/goals List all goals
POST /api/lifeops/goals Create a new goal
GET /api/lifeops/goals/:id Get a single goal
PUT /api/lifeops/goals/:id Update a goal
POST /api/lifeops/occurrences/:id/complete Mark an occurrence as completed
POST /api/lifeops/occurrences/:id/skip Skip an occurrence
POST /api/lifeops/occurrences/:id/snooze Snooze an occurrence

Diagnostics & Logs

Method Path Description
GET /api/logs Get log entries. Filters: source, level, tag, since
GET /api/extension/status Check browser extension relay and path status

Security Audit

Method Path Description
GET /api/security/audit Query audit log. Filters: type, severity, since, limit. Supports SSE streaming with stream=1

Emotes

Method Path Description
GET /api/emotes Get the full emote catalog for 3D avatar animations
POST /api/emote Trigger an emote animation by ID

TTS (Text-to-Speech)

Method Path Description
POST /api/tts/elevenlabs Generate speech audio via ElevenLabs
POST /api/tts/cloud Generate speech audio via Eliza Cloud

Terminal

Method Path Description
POST /api/terminal/run Execute a shell command in the agent workspace

Wallet

Method Path Description
GET /api/wallet/addresses Get EVM and Solana wallet addresses
GET /api/wallet/balances Get token balances across all chains
GET /api/wallet/nfts Get NFTs across EVM and Solana
GET /api/wallet/config Get wallet API key configuration status
PUT /api/wallet/config Update wallet API keys (Alchemy, Helius, etc.)
POST /api/wallet/import Import a private key for EVM or Solana
POST /api/wallet/generate Generate new wallet(s) for EVM, Solana, or both
POST /api/wallet/export Export private keys (requires confirmation)
POST /api/wallet/production-defaults Apply production-ready wallet trading defaults

Wallet Cloud

Method Path Description
POST /api/wallet/primary Set the primary wallet source (local or cloud) for a chain. Gated by ENABLE_CLOUD_WALLET
POST /api/wallet/refresh-cloud Re-query Eliza Cloud for the latest cloud wallet descriptors. Gated by ENABLE_CLOUD_WALLET

Wallet Trading

Method Path Description
POST /api/wallet/trade/preflight Preflight check for BSC trading readiness
POST /api/wallet/trade/quote Get a price quote for a token swap
POST /api/wallet/trade/execute Execute a token trade (returns unsigned tx or executes on-chain)
GET /api/wallet/trade/tx-status Check on-chain status of a trade transaction
GET /api/wallet/trading/profile Get trading P&L profile from the local ledger
POST /api/wallet/transfer/execute Transfer native or ERC-20 tokens on BSC

Wallet Steward Bridge

Method Path Description
GET /api/wallet/steward-status Get Steward bridge connection status
GET /api/wallet/steward-policies Get Steward policy configurations
GET /api/wallet/steward-pending-approvals List pending Steward transaction approvals
POST /api/wallet/steward-approve-tx Approve a pending Steward transaction
POST /api/wallet/steward-deny-tx Deny a pending Steward transaction
GET /api/wallet/steward-tx-records Get Steward transaction history

Drop / Mint

Method Path Description
GET /api/drop/status Get drop/mint service status
POST /api/drop/mint Mint an NFT
POST /api/drop/mint-whitelist Mint with whitelist verification (Merkle proof)

Whitelist Verification

Method Path Description
GET /api/whitelist/status Get whitelist eligibility status for connected wallet
POST /api/whitelist/twitter/message Generate a Twitter verification message for the agent
POST /api/whitelist/twitter/verify Verify a Twitter/X account via tweet URL

Update Management

Method Path Description
GET /api/update/status Get current version, update channel, and available updates
PUT /api/update/channel Switch update channel (stable, beta, nightly)

Share Ingest

Method Path Description
POST /api/ingest/share Ingest shared content from external sources
GET /api/ingest/share Get queued shared content. Param: consume=1 to dequeue

Streaming

Method Path Description
POST /api/stream/live Start streaming using the active destination adapter
POST /api/stream/offline Stop the active stream
GET /api/stream/status Get current stream health and configuration
POST /api/stream/start Start stream with explicit RTMP parameters
POST /api/stream/stop Stop the active FFmpeg process
POST /api/stream/frame Pipe a raw image frame to FFmpeg (pipe capture mode)
POST /api/stream/volume Set audio volume (0–100)
POST /api/stream/mute Mute stream audio
POST /api/stream/unmute Unmute stream audio
GET /api/streaming/destinations List all configured streaming destinations with active status
POST /api/streaming/destination Switch the active streaming destination ({ destinationId })
GET /api/stream/overlay-layout Get overlay layout (optional destination query param)
POST /api/stream/overlay-layout Save overlay layout
GET /api/stream/voice Get voice/TTS configuration
POST /api/stream/voice Save voice/TTS settings
POST /api/stream/voice/speak Trigger TTS on the live stream
GET /api/stream/settings Get visual stream settings. Response includes avatarIndex (1–8) for the agent's VRM avatar
POST /api/stream/settings Save visual stream settings

NFA (Non-Fungible Agent)

Method Path Description
GET /api/nfa/status Get NFA token and on-chain identity status
GET /api/nfa/learnings Get parsed learning entries with Merkle root
NFA endpoints depend on the optional `@elizaos/plugin-bnb-identity` plugin. When the plugin is not installed, `/api/nfa/status` returns `null` for both `nfa` and `identity` fields, and `/api/nfa/learnings` returns an empty entries array with a default Merkle root.

Sandbox

Method Path Description
GET /api/sandbox/platform Get platform info (Docker/container availability)
GET /api/sandbox/status Get sandbox manager status
GET /api/sandbox/events Get sandbox event log (last 100)
GET /api/sandbox/capabilities Detect available sandbox capabilities
POST /api/sandbox/start Start the sandbox container
POST /api/sandbox/stop Stop the sandbox container
POST /api/sandbox/recover Recover a failed sandbox
POST /api/sandbox/docker/start Attempt to start Docker Desktop
POST /api/sandbox/exec Execute a command in the sandbox
GET /api/sandbox/browser Get browser CDP/WS endpoints

Sandbox Screen

Method Path Description
GET /api/sandbox/screen/screenshot Capture a screenshot (returns PNG)
POST /api/sandbox/screen/screenshot Capture a screenshot (returns base64 JSON, optional region)
GET /api/sandbox/screen/windows List visible windows

Sandbox Audio

Method Path Description
POST /api/sandbox/audio/record Record audio (returns base64 WAV). Optional: durationMs
POST /api/sandbox/audio/play Play audio from base64 data. Fields: data, format

Sandbox Computer Use

Method Path Description
POST /api/sandbox/computer/click Perform a mouse click at (x, y)
POST /api/sandbox/computer/type Type text via keyboard
POST /api/sandbox/computer/keypress Send a key press

Sandbox Signing

Method Path Description
POST /api/sandbox/sign Submit a signing request
POST /api/sandbox/sign/approve Approve a pending signing request
POST /api/sandbox/sign/reject Reject a pending signing request
GET /api/sandbox/sign/pending List pending signing approvals
GET /api/sandbox/sign/address Get the signer address