Developers
Public API
Add MetaPresence voice and video conversations to your app. Create an API key in the dashboard, start a session, then join the LiveKit room with the returned token.
Authentication
Send your key on every request (server-to-server recommended):
Authorization: Bearer mp_live_xxxxxxxx # or X-API-Key: mp_live_xxxxxxxx
Quickstart
# 1) Start a voice conversation
curl -X POST https://api.metapresence.co/public-api/v1/conversation/start \
-H "Authorization: Bearer $MP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"avatar_id": "AVT12AB3C",
"persona_id": "PRS45DE6F",
"conversation_type": "voice",
"language": "en"
}'
# Response includes: token, wsUrl, roomName, conversationId
# 2) Join with livekit-client (browser or Node)
# 3) End and meter usage
curl -X POST https://api.metapresence.co/public-api/v1/conversation/end \
-H "Authorization: Bearer $MP_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "conversation_id": "<uuid>" }'Video (live avatars)
For curated live video avatars, pass the avatar id and matching face id:
| Name | avatar_id | rtf_face_id |
|---|---|---|
| Madison | rtf-madison | 5fc23ea5-8175-4a82-aaaf-cdd8c88543dc |
| Kate | rtf-kate | d2a5c7c6-fed9-4f55-bcb3-062f7cd20103 |
| Tina | rtf-tina | cace3ef7-a4c4-425d-a8cf-a5358eb0c427 |
| Hank | rtf-hank | dd10cb5a-d31d-4f12-b69f-6db3383c006e |
| Zahra | rtf-zahra | afdb6a3e-3939-40aa-92df-01604c23101c |
| Mark | rtf-mark | 804c347a-26c9-4dcf-bb49-13df4bed61e8 |
curl -X POST https://api.metapresence.co/public-api/v1/conversation/start \
-H "Authorization: Bearer $MP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"avatar_id": "rtf-kate",
"conversation_type": "video",
"rtf_face_id": "d2a5c7c6-fed9-4f55-bcb3-062f7cd20103",
"language": "en"
}'Endpoints
GET /public-api/v1/health— health (no auth)GET /public-api/v1/avatars— list avatarsGET /public-api/v1/personas— list personasPOST /public-api/v1/conversation/start— mint LiveKit tokenPOST /public-api/v1/conversation/end— end + usageGET /public-api/v1/conversations/:id— statusGET /public-api/v1/usage— plan usage
Limits and security
- Plan minute limits and optional per-key caps are enforced on start.
- Per-key rate limits apply per minute and per hour.
- Optional
allowed_originson the key block browser Origin misuse. - Usage metering uses server elapsed time when the session ends.
- Keep API keys on your backend. Do not embed production keys in client apps.