API Reference
Team & Tenants
Manage your organization (tenant): team members and roles, preferences, data retention, usage, and onboarding state.
Overview
A tenant is your organization. Every user, bot, key, and conversation belongs to exactly one tenant, and all data is isolated per tenant. Roles are owner, admin, and agent:
| Role | Can do |
|---|---|
owner | Everything, plus transfer ownership and deactivate the org. One per tenant. |
admin | Invite/update/remove members (not the owner), manage bots, keys, billing. |
agent | Operational access — handle conversations; no team or billing management. |
cm_ API key. Inviting members, changing roles, and deactivating the org are not exposed to API keys.Invite a member
Omit password and the invitee sets their own via the reset-password OTP flow:
curl https://api.callmissed.com/api/v1/users \
-H "Authorization: Bearer <jwt_access_token>" \
-H "Content-Type: application/json" \
-d '{"email": "agent@acme.com", "full_name": "Sam Rivera", "role": "agent"}'{
"id": "u1234567-89ab-cdef-0123-456789abcdef",
"tenant_id": "a0b1c2d3-4455-6677-8899-aabbccddeeff",
"email": "agent@acme.com",
"full_name": "Sam Rivera",
"phone_number": null,
"role": "agent",
"is_active": true,
"created_at": "2026-06-06T12:10:00Z",
"updated_at": "2026-06-06T12:10:00Z"
}Only the owner can invite or promote someone to owner; admins cannot. Ownership transfer goes through the owner-only PATCH /api/v1/users/:id/role.
/api/v1/users AuthList team members
/api/v1/users AuthInvite a user to the tenant (password optional — omit it and the invitee sets one via the reset-password OTP flow)
Request Body
emailstringfull_namestringroleadmin | agent (default agent)passwordstring (optional, min 8)/api/v1/users/:user_id AuthUpdate a member's name, role, or active status
Request Body
full_namestringroleadmin | agentis_activeboolean/api/v1/users/:user_id/role AuthOwner-only: change role or transfer ownership
Request Body
roleowner | admin | agent/api/v1/users/:user_id AuthRemove a team member
/api/v1/tenants/me AuthGet tenant profile (name, plan, created_at)
/api/v1/tenants/me AuthUpdate the organization name
Request Body
namestring/api/v1/tenants/me/deactivate AuthOwner-only: soft-delete the organization (requires slug confirmation)
Request Body
confirmstring (tenant slug)/api/v1/tenants/me/preferences AuthGet email, web-search, and locale preferences
/api/v1/tenants/me/preferences AuthUpdate tenant preferences
Request Body
email_notificationsbooleanweb_search_defaultauto | shorter | detailedlocalestring/api/v1/tenants/me/retention AuthGet the data retention policy (TTL for logs, deliveries, audit)
/api/v1/tenants/me/retention AuthSet the data retention policy in days
Request Body
api_logs_daysnumberwebhook_deliveries_daysnumberaudit_events_daysnumber/api/v1/tenants/me/usage AuthBot, conversation, and message counts
/api/v1/tenants/me/analytics AuthConversation analytics (daily, by channel, by bot)
Query Parameters
daysnumber (1-90, default 30)/api/v1/tenants/me/api-usage AuthAPI call stats grouped by service and key
Query Parameters
daysnumber (1-90)/api/v1/tenants/me/onboarding AuthGet onboarding checklist state