> ## Documentation Index
> Fetch the complete documentation index at: https://arcmira.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Arcmira has three API capabilities: Search (entities, mentions, appearances, commercial intelligence), Monitors (trackers plus alert delivery), and Transcripts (read, generate, correct). Community Review is the cross-surface correction layer.
> Discover pages at https://arcmira.com/docs/llms.txt, then fetch the matching page's .md export. Each capability has a self-contained '<capability> for coding agents' page; prefer it.
> Auth: Authorization: Bearer arc_sk_... or x-api-key: arc_sk_... (x-api-key wins if both are sent). Never put keys in browser code. Check GET /v1/me for tier, scopes, and remaining rows before metered pulls.
> Search: resolve names with GET /v1/entities/lookup and pin ent_* IDs before pulling metered rows. Only person entities have appearances. Mention and recommendation rows carry canonical numeric timestamps in start_seconds/end_seconds (integer seconds; 0 means full episode); the MM:SS string fields are deprecated. Commercial routes need Pro+ tier AND the recommendations:read scope and bill 10 rows per row.
> Monitors: a tracker watches one entity; a monitor groups trackers with shared delivery (email, Slack, HMAC-signed webhooks). Create trackers with POST /v1/trackers, then attach by id: POST /v1/monitors/{id}/trackers { trackerIds: [...] }. Each fired alert occurrence debits 100 rows. Poll GET /v1/monitors/{id}/alerts?n= for recent deliveries. Send Idempotency-Key on every POST/PATCH.
> Transcripts: switch on the access field (unlocked, locked, premium_pending, not_transcribed, unauthenticated). Honor Retry-After when polling POST /v1/transcriptions jobs. Corrections (POST /v1/videos/{video_id}/corrections; kinds line_edit, speaker_reassign, speaker_identify, add_person, entity_tag, segment_rewrite) cost 0 rows; anchored kinds need revision + anchor.contentHash (djb2 base-36); handle 409 (re-anchor) and 412 (expectedSeq). segment_rewrite replaces an inclusive segment range with new segments (empty replacements array deletes; timestamps repaired server-side).
> Community Review is free (0 rows) and surface-typed: POST /v1/feedback with a type matching the surface you called, the reproducing query, and corrections targeting public IDs (ent_*, men_*, com_*). Nothing auto-applies. Do not send untyped notes.
> Errors: switch on error.code, follow doc_url, quote X-Request-Id to support. Honor Retry-After on 429. Retries of POST/PATCH must reuse the same Idempotency-Key; replays return Idempotency-Replayed: true.
> Teams Admin API: GET /v1/team/members, /v1/team/spend, /v1/team/usage-events (cursor-paginated, 90-day bound) are read-only and require a team-scoped API key created by a team admin; personal keys get 403 team_key_required.

# Members, roles, and seat types

> Team roles and permissions, seat types, the four ways members join, domain controls, and removal semantics.

Teams use roles for permissions and seat types for usage. The two are independent, with one exception: the Unpaid Admin role always carries the free seat.

## Roles

**Members** are the default role.

* Full product access through their seat's included rows
* Can invite new members (Standard-seat Members only)
* See the team member table on the Overview tab, without spend columns
* No access to team settings, billing, or member management

**Admins** manage the team.

* Full product access through their seat, plus every admin capability: invite and remove members, change roles and seat types, configure domains and SSO, manage billing and spending controls, view full team analytics

**Unpaid Admins** manage the team without using a paid seat, for IT, security, or finance staff who never touch the product.

* Free, not billable
* Same administrative capabilities as Admins
* No product access and no included rows

The team owner (whoever created the team) holds a permanent Admin-level role that cannot be changed or removed.

## Seat types

| Seat                            | Price            | Assignable to      |
| ------------------------------- | ---------------- | ------------------ |
| Standard: 5,000 rows/month      | \$40/user/month  | Members and Admins |
| Premium: 25,000 rows/month (5x) | \$120/user/month | Members and Admins |
| Free: no product access         | \$0              | Unpaid Admins only |

### Change a seat type

Admins change seat types from the member's row on the Members tab.

* **Standard to Premium** applies immediately; billing prorates for the rest of the cycle.
* **Premium to Standard** applies at the next renewal; the member keeps Premium usage until then.

## Role comparison

| Capability                                       |           Member           | Admin | Unpaid Admin |
| ------------------------------------------------ | :------------------------: | :---: | :----------: |
| Use Arcmira (search, monitors, transcripts, API) |             Yes            |  Yes  |      No      |
| Invite members                                   | Standard-seat Members only |  Yes  |      Yes     |
| Remove members                                   |             No             |  Yes  |      Yes     |
| Change roles and seat types                      |             No             |  Yes  |      Yes     |
| Configure domains and SSO                        |             No             |  Yes  |      Yes     |
| Manage billing and seats                         |             No             |  Yes  |      Yes     |
| Set spending controls                            |             No             |  Yes  |      Yes     |
| View team analytics with spend columns           |             No             |  Yes  |      Yes     |
| View the member usage table                      |             Yes            |  Yes  |      Yes     |
| Create team-scoped API keys                      |             No             |  Yes  |      Yes     |
| Requires a paid seat                             |             Yes            |  Yes  |      No      |

## Add a member

Four ways in:

1. **Email invitation.** Click **Invite Members** on the Members tab and enter email addresses. Recipients get an email with an accept link. Invites expire after 7 days and can be revoked from the pending list.
2. **Invite link.** Copy the invite link from the invite modal and share it. Joining through the link takes a Standard seat and the Member role.
3. **SSO.** Once [SSO](/docs/teams/sso) is configured, users signing in through your identity provider are enrolled automatically.
4. **Domain matching.** With a verified domain and domain matching enabled, users whose email matches see a "Join your team" prompt on their own dashboard and join self-serve, as Standard-seat Members.

New members are billed prorated for the remaining days of the cycle at their seat's rate.

<Warning>
  Invite links do not expire on their own, and anyone holding the link can join. Rotate or revoke the link from the invite modal, or control access with [domain restrictions](#domain-settings) or [SSO](/docs/teams/sso) instead.
</Warning>

## Remove a member

Admins remove members from the member's row on the Members tab. On removal:

* If the member consumed included rows this cycle, the seat stays billed until the end of the billing cycle, then releases. Otherwise the seat releases immediately with a prorated credit on the next invoice.
* The member's team-scoped API keys are revoked.
* Their access tier reverts to whatever they carry personally: a personal subscription if they kept one, free otherwise.
* Admins can additionally revoke the removed member's active sessions from the same menu.

A previously removed member who rejoins gets their membership revived rather than duplicated.

## Change a role

Admins change roles from the member's row. Every team keeps at least one Admin and at least one paid member at all times; changes that would violate this are rejected. Moving someone to or from Unpaid Admin also switches them to or from the free seat and adjusts billing from the change date.

## Domain settings

Two domain-based controls live in **Dashboard → Settings → Domains**. Both require at least one verified domain (DNS TXT record; see [SSO prerequisites](/docs/teams/sso#prerequisites) for the record format).

### Domain matching

Anyone with a verified, matching email domain can join your team from their own dashboard, no invite needed. Teammates self-serve instead of waiting on an admin.

### Restrict invites to verified domains

Invitations to email addresses outside your verified domains are blocked. This prevents accidental or unauthorized additions and keeps membership inside your organization.
