> ## 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.

# Create monitor

> Creating with notifyWebhook: true and a webhookUrl enables HMAC-signed webhook delivery and returns the signing secret (monitor.webhookSecret) in this response. Returned only once. Store it securely; it cannot be retrieved later. To recover from a lost secret, rotate. All subsequent reads expose only webhookSecretSet and webhookSecretHint. Supports the Idempotency-Key header.



## OpenAPI

````yaml /openapi/arcmira-v1.json post /v1/monitors
openapi: 3.1.0
info:
  title: Arcmira API
  version: 1.0.0
  contact:
    name: Arcmira
    url: https://arcmira.com
servers:
  - url: https://api.arcmira.com
security: []
paths:
  /v1/monitors:
    post:
      tags:
        - Monitors
      summary: Create monitor
      description: >-
        Creating with notifyWebhook: true and a webhookUrl enables HMAC-signed
        webhook delivery and returns the signing secret (monitor.webhookSecret)
        in this response. Returned only once. Store it securely; it cannot be
        retrieved later. To recover from a lost secret, rotate. All subsequent
        reads expose only webhookSecretSet and webhookSecretHint. Supports the
        Idempotency-Key header.
      operationId: create_monitor
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: Display name (1-100 characters). Required on create.
                icon:
                  type: string
                  description: Kebab-case Lucide icon name. Default "eye".
                color:
                  type: string
                  description: >-
                    Dashboard palette color name. Default "blue"; the valid
                    names are returned as colors[] on GET /v1/monitors.
                notifyEmails:
                  type: array
                  items:
                    type: string
                  description: Email recipients for alert delivery. Default [].
                notifyFrequency:
                  type: string
                  enum:
                    - realtime
                    - hourly
                    - daily
                  description: >-
                    Delivery cadence. Default realtime. Values: realtime (as
                    analysis completes), hourly (hourly digest), daily (daily
                    digest). Free-tier email delivery is coerced to daily
                    regardless of the value sent.
                digestDay:
                  type: string
                  description: >-
                    Digest day of week. Default "monday". Consulted only by
                    weekly digests, which are dashboard-configured today; inert
                    for API-set frequencies.
                digestTime:
                  type: string
                  description: >-
                    Digest send hour as HH:MM (account timezone). Default
                    "09:00". Applies to daily digests.
                notifyWebhook:
                  type: boolean
                  description: >-
                    Enable HMAC-signed webhook delivery (paid plans). When
                    enabled together with webhookUrl, the response returns the
                    signing secret (monitor.webhookSecret) exactly once.
                    PATCHing true also re-enables an auto-disabled webhook and
                    resets its failure counter.
                webhookUrl:
                  type: string
                  description: Destination URL for webhook alert deliveries.
                notifySlack:
                  type: boolean
                  description: >-
                    Enable Slack delivery. Requires a Slack integration
                    connected in the dashboard.
                slackIntegrationId:
                  type: string
                  description: Slack integration id from the dashboard OAuth flow.
                slackChannelId:
                  type: string
                  description: Slack channel id to deliver to.
                isPaused:
                  type: boolean
                  description: >-
                    Paused monitors accept config changes but do not deliver;
                    alerts that would have fired are not queued.
                isCollapsed:
                  type: boolean
                  description: Dashboard display state.
                sortOrder:
                  type: integer
                  description: Dashboard sort position.
              required:
                - name
              additionalProperties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorMutationResponse'
        '201':
          description: >-
            Monitor created. When this request enabled webhook signing,
            monitor.webhookSecret is present, exactly once.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MonitorMutationResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      code:
                        type: string
                      message:
                        type: string
                      param:
                        type: string
                      doc_url:
                        type: string
                      request_id:
                        type: string
                    required:
                      - type
                      - code
                      - message
                      - doc_url
                      - request_id
                required:
                  - error
        '401':
          description: Authentication error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      code:
                        type: string
                      message:
                        type: string
                      param:
                        type: string
                      doc_url:
                        type: string
                      request_id:
                        type: string
                    required:
                      - type
                      - code
                      - message
                      - doc_url
                      - request_id
                required:
                  - error
        '402':
          description: Quota exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      code:
                        type: string
                      message:
                        type: string
                      param:
                        type: string
                      doc_url:
                        type: string
                      request_id:
                        type: string
                    required:
                      - type
                      - code
                      - message
                      - doc_url
                      - request_id
                required:
                  - error
        '403':
          description: Permission error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      code:
                        type: string
                      message:
                        type: string
                      param:
                        type: string
                      doc_url:
                        type: string
                      request_id:
                        type: string
                    required:
                      - type
                      - code
                      - message
                      - doc_url
                      - request_id
                required:
                  - error
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      code:
                        type: string
                      message:
                        type: string
                      param:
                        type: string
                      doc_url:
                        type: string
                      request_id:
                        type: string
                    required:
                      - type
                      - code
                      - message
                      - doc_url
                      - request_id
                required:
                  - error
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      code:
                        type: string
                      message:
                        type: string
                      param:
                        type: string
                      doc_url:
                        type: string
                      request_id:
                        type: string
                    required:
                      - type
                      - code
                      - message
                      - doc_url
                      - request_id
                required:
                  - error
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      code:
                        type: string
                      message:
                        type: string
                      param:
                        type: string
                      doc_url:
                        type: string
                      request_id:
                        type: string
                    required:
                      - type
                      - code
                      - message
                      - doc_url
                      - request_id
                required:
                  - error
        '500':
          description: Server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      code:
                        type: string
                      message:
                        type: string
                      param:
                        type: string
                      doc_url:
                        type: string
                      request_id:
                        type: string
                    required:
                      - type
                      - code
                      - message
                      - doc_url
                      - request_id
                required:
                  - error
      security:
        - bearerAuth: []
        - apiKeyAuth: []
components:
  schemas:
    MonitorMutationResponse:
      type: object
      properties:
        monitor:
          allOf:
            - $ref: '#/components/schemas/Monitor'
            - type: object
              properties:
                trackerCount:
                  type: integer
                  description: >-
                    Number of trackers in the monitor. Always 0 in the create
                    response.
                webhookSecret:
                  type: string
                  description: >-
                    The webhook signing secret ("whsec_..."). Only present when
                    this request NEWLY enabled webhook signing: a create with
                    notifyWebhook: true and a webhookUrl, or a PATCH that turns
                    the webhook on (or sets a URL) where no secret existed
                    before. Returned only once. Store it securely; it cannot be
                    retrieved later. To recover from a lost secret, rotate.
              required:
                - trackerCount
        message:
          type: string
          description: Human-readable confirmation.
      required:
        - monitor
        - message
    Monitor:
      type: object
      properties:
        id:
          type: string
          description: Monitor id.
        name:
          type: string
          description: Monitor name.
        icon:
          type: string
          default: eye
          description: Lucide icon name.
        color:
          type: string
          default: blue
          description: Accent color name.
        isCollapsed:
          type: boolean
          description: True when the monitor is collapsed in the dashboard UI.
        isPaused:
          type: boolean
          description: >-
            Dashboard pause state. Delivery-time pause is enforced per tracker
            today (PATCH /v1/trackers/{id} with paused: true); monitor-level
            pause alone does not stop tracker deliveries.
        sortOrder:
          type: integer
          description: Dashboard sort position.
        notifyEmails:
          type: array
          items:
            type: string
          description: >-
            Email recipients for alert delivery. Empty when email delivery is
            not configured.
        notifyFrequency:
          type: string
          default: realtime
          description: >-
            Delivery cadence. Values: realtime (deliver immediately), hourly
            (hourly digest), daily (daily digest). Free tier is limited to
            daily.
        digestDay:
          type: string
          default: monday
          description: Day of week for digest delivery.
        digestTime:
          type: string
          default: '09:00'
          description: Time of day (HH:MM) for digest delivery.
        notifyWebhook:
          type: boolean
          description: True when webhook delivery is enabled.
        webhookUrl:
          type:
            - string
            - 'null'
          description: Webhook destination URL. Null when no webhook is configured.
        webhookSecretSet:
          type: boolean
          description: >-
            True when a webhook signing secret exists for this monitor. The
            secret itself is never returned on reads; it is returned exactly
            once at enablement or rotation.
        webhookSecretHint:
          type:
            - string
            - 'null'
          description: >-
            Last 4 characters of the current signing secret, for identifying
            which secret you hold. Null until a secret exists.
        webhookFailures:
          type: integer
          default: 0
          description: >-
            Consecutive webhook delivery failures recorded for this monitor.
            Reset by a secret rotation or PATCHing notifyWebhook: true; 10
            consecutive failures auto-disable a webhook. Note: the delivery
            pipeline currently accrues failures on the tracker that fired, so
            this monitor-level counter can lag.
        webhookDisabledAt:
          type:
            - string
            - 'null'
          description: >-
            When the webhook was auto-disabled after repeated failures. Null
            while delivery is enabled. Re-enable by PATCHing notifyWebhook:
            true; rotation alone never re-enables.
        webhookDisabledReason:
          type:
            - string
            - 'null'
          description: Why the webhook was auto-disabled. Null while delivery is enabled.
        notifySlack:
          type: boolean
          description: True when Slack delivery is enabled.
        slackIntegrationId:
          type:
            - string
            - 'null'
          description: >-
            Slack integration used for delivery. Null when Slack is not
            configured.
        slackChannelId:
          type:
            - string
            - 'null'
          description: Slack channel to deliver to. Null when Slack is not configured.
        createdAt:
          type: string
          description: When the monitor was created.
        updatedAt:
          type: string
          description: When the monitor was last updated.
      required:
        - id
        - name
        - isCollapsed
        - isPaused
        - sortOrder
        - notifyEmails
        - notifyWebhook
        - webhookUrl
        - webhookSecretSet
        - webhookSecretHint
        - webhookDisabledAt
        - webhookDisabledReason
        - notifySlack
        - slackIntegrationId
        - slackChannelId
        - createdAt
        - updatedAt
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: arc_sk_*
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````