---
title: "Create meeting invite"
method: POST
path: "/v1/meetings/invites"
tags: ["Meetings"]
---

# Create meeting invite

`POST /v1/meetings/invites`

Invite a persona to join a Google Meet, Zoom, or Microsoft Teams meeting.

Provide exactly one of `personaId` for a saved persona, or `personaConfig`
for a runtime persona configuration. The runtime persona configuration is
used to start the meeting session but is not stored on the meeting invite.

The invite is created in `pending` status. `displayName` is normalized to
include an AI disclosure suffix before the persona joins the meeting.

By default the persona joins immediately. Provide `joinAt` to schedule
the join for a future time; scheduling at least 10 minutes ahead
reserves the persona a guaranteed place on the call, which is the most
reliable way to join meetings that are planned in advance.

## Request body

- CreateMeetingInviteRequest — unresolved $ref

## Response `201`

Successfully created meeting invite

- MeetingInvite — A meeting invite created for a persona.
  - `id` string, uuid, required — Unique identifier for the meeting invite.
  - `provider` 'google_meet' | 'zoom' | 'microsoft_teams', required — Meeting provider inferred from the meeting URL.
  - `meetingUrl` string, uri, required — Normalized meeting URL.
  - `displayName` string, required — Display name used in the meeting.
  - `status` 'pending' | 'active' | 'cancelled' | 'ended' | 'failed', required — Current invite status.
  - `createdAt` string, date-time, required — Time the invite was created.
  - `joinAt` string, date-time, nullable, required — Scheduled time the persona joins the meeting, or null when the persona was asked to join immediately.
  - `groupCall` boolean, required — Whether group-call turn-taking is enabled for this invite (respond only when addressed by name; silent join).
  - `sessionId` string, nullable, required — Engine session ID once the meeting session has started, otherwise null.
  - `region` 'eu' | 'us-east' | 'us-west' | 'null', nullable, required — Region the persona joined the call from. May differ from the requested region when the invite was served by another region for availability. Additional region values may be introduced over time; treat unrecognized values as informational rather than an error.
  - `joinState` 'joining' | 'waiting_room' | 'in_call' | 'media_denied' | 'media_granted' | 'media_active' | 'left' | 'done' | 'error' | 'null', nullable, required — Latest observed call-participation detail for the persona, updated asynchronously as the persona connects, waits for admission, joins, and leaves. Null until the first update arrives. Values may be added over time; treat unrecognized values as informational.
  - `statusReason` string, nullable, required — Reason attached to a terminal participation state — for example `removed_by_host`, `meeting_ended`, `not_admitted`, `join_denied`, `meeting_link_invalid`, `meeting_not_started`, `idle_timeout`, `left_call`, or `provider_error`. Null while the invite is in progress. Values may be added over time; treat unrecognized values as informational.

## Other responses

- `400` — Bad request - invalid JSON, request validation failed, or an unsupported meeting URL.
- `401` — Unauthorized - missing or invalid API key.
- `403` — Forbidden - API key lacks the required permission, the saved persona is not available to the authenticated organization, or the invite requests strict region enforcement (`regionPolicy: 'strict'`) but session region selection is not enabled for the organization.
- `422` — Unprocessable Entity - the meeting service rejected the invite (customer-correctable).
- `429` — Too Many Requests - create invite rate limit exceeded.
- `500` — Server error.
- `502` — Bad Gateway - meeting service is unavailable.
- `503` — Service Unavailable - meeting invites are disabled, not configured, or temporarily at capacity. Capacity responses include a Retry-After header.

---

[API](https://skmtc.net/anam/apis/anam-ai-api.md) · [All operations](https://skmtc.net/anam/apis/anam-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/anam/anam-ai-api/revisions/dae97e8eb063/schema)
