> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arcmira.com/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://docs.arcmira.com/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.

# Changelog

> Product updates and release notes for the Arcmira API.

<Update label="July 2026" description={<div className="changelog-month-index"><div><a href="#segment-rewrites">Segment rewrites</a></div><div><a href="#numeric-seconds-timestamps-on-evidence-rows">Numeric-seconds timestamps on evidence rows</a></div><div><a href="#webhook-secret-lifecycle-on-v1">Webhook secret lifecycle on v1</a></div><div><a href="#community-review-across-every-surface">Community Review across every surface</a></div><div><a href="#monitors-api-rename">Monitors API rename</a></div><div><a href="#transcripts-and-transcriptions-v1-2-0">Transcripts and Transcriptions</a></div></div>} rss={{ title: "July 2026", description: "Segment rewrites, numeric-seconds timestamps on evidence rows, webhook secret lifecycle on v1, Community Review across every surface, the Monitors API rename, and Transcripts and Transcriptions v1.2.0." }}>
  ## Segment rewrites

  Transcript corrections gain a structural primitive: `segment_rewrite` on `POST /v1/videos/{video_id}/corrections` replaces any run of segments with new ones. Merge mangled ASR lines, split them, or delete the range with an empty `replacements` array. Timestamps repair automatically; pin `start`/`end` per replacement where the exact time matters. Anchored like line edits, free like every correction, withdrawable via `DELETE /v1/corrections/segment-rewrites/{id}`.

  [Read the Transcripts coding agent reference →](/transcripts-for-coding-agents#corrections)

  ## Numeric-seconds timestamps on evidence rows

  Mention and recommendation timestamps are now numeric. All changes are additive; nothing was removed or renamed.

  * **New fields**: mention rows, recommendation rows, and `details=full` enrichment items carry `start_seconds` / `end_seconds` (integer seconds; `0` means the full episode, no specific moment; null when the source string is null). Webhook alert payloads gain `appearance.timestampSeconds`.
  * **Sentiment consistency**: recommendation rows gain `sentiment_score`, the same raw `[-1, 1]` number mention rows already expose.
  * **Deprecations**: the `start_timestamp` / `end_timestamp` `MM:SS` strings and the recommendation `sentiment` number are deprecated in the OpenAPI spec. They keep working until a dated removal is announced here, per the [versioning and deprecation policy](/requests#versioning-and-deprecation). Migrate reads to the seconds fields and `sentiment_score`.

  [Read the Search coding agent reference →](/search-for-coding-agents#response-schema)

  ## Webhook secret lifecycle on v1

  Pure-API consumers can now verify webhook signatures end to end, with zero-downtime secret rotation.

  * **One-time secret return**: monitor create/PATCH responses include `monitor.webhookSecret` exactly once, when the response newly enables webhook signing. Reads expose `webhookSecretSet` and `webhookSecretHint` only.
  * **Rotation with overlap**: `POST /v1/monitors/{id}/webhook-secret/rotate` returns a fresh secret once with `previousSecretExpiresAt`. For 24 hours, deliveries carry both `X-Arcmira-Signature` (new) and `X-Arcmira-Signature-Previous` (old).
  * **Explicit re-enable**: rotation never re-enables an auto-disabled webhook; `PATCH { "notifyWebhook": true }` is the deliberate re-enable step and clears the failure counter.

  [Read the Monitors coding agent reference →](/monitors-for-coding-agents#webhooks)

  ## Community Review across every surface

  Every result-bearing surface now accepts typed feedback, and submissions are readable back.

  * **New feedback types** on `POST /v1/feedback`: `monitor_alert` (dispute a fired alert by row ID), `appearances` (`person_not_present`, `wrong_person`, `wrong_appearance_role`), and `search` (single-result resolutions, with `observed_rank`).
  * **Readback**: `GET /v1/feedback/{feedback_id}` returns your submission with per-correction review status, from `pending_review` through `applied` and `reverted`.
  * **Typed `suggested_change`**: documented as a union per `issue_type` in the OpenAPI spec; existing loose submissions continue to validate.
  * **Alert public IDs**: alert history rows carry `mention_id` (`men_*`) and `entity_id` (`ent_*`), joining directly against mention rows and entity reads.

  [Read the Community Review catalog →](/feedback)

  ## Monitors API rename

  The API resource is now **Monitors**: `/v1/monitors` endpoints, scope `monitors:write`, and payload fields `monitorId`, `monitor_id`, and `monitor_name`. Prior resource names for this surface are retired; rows minted before the rename keep resolving.

  [Read the Monitors guide →](/monitors)

  ## Transcripts and Transcriptions (v1.2.0)

  Premium transcripts arrived: diarized, speaker-identified, entity-annotated, and community-correctable.

  * **Read**: `GET /v1/transcripts/{video_id}` with permanent per-video unlocks (`?unlock=true`), priced in rows per 15-minute block.
  * **Generate**: `POST /v1/transcriptions` submits any public YouTube video; poll with `Retry-After`, `etaSeconds`, and `nextPollSeconds`.
  * **Correct**: unified `POST /v1/videos/{video_id}/corrections` covers line edits, speaker edits, speaker identifications, and entity tags, with idempotent replay, per-video sequence numbers (`412` with `expectedSeq`), and anchor validation (`409` with `currentRevision`).
  * Transcript surfaces are premium-only: videos without a premium analysis return a preliminary scan with detected entity counts instead of segments.

  [Read the Transcripts guide →](/transcripts)
</Update>

<Update label="June 2026" description={<div className="changelog-month-index"><div><a href="#community-review">Community Review</a></div></div>} rss={{ title: "June 2026", description: "Community Review: structured feedback became the documented path for correcting the index." }}>
  ## Community Review

  Structured feedback became the documented path for correcting the index.

  * `POST /v1/feedback` accepts notes, corrections, merge suggestions, and classification review requests against the exact query you ran.
  * Public submissions create review items only; accepted changes are applied by reviewers, and submitter reputation accrues to the account and API key over time.
  * Commercial submissions use the same access as the data being reviewed: **Pro+** plus `recommendations:read`.

  [Read the Community Review catalog →](/feedback)
</Update>

<Update label="May 2026" description={<div className="changelog-month-index"><div><a href="#commercial-intelligence-v1-1-0">Commercial intelligence</a></div><div><a href="#entity-and-mentions-surface-v1-0-1">Entity and mentions surface</a></div></div>} rss={{ title: "May 2026", description: "Commercial intelligence v1.1.0 went live for Pro+ plans, plus the entity and mentions surface v1.0.1." }}>
  ## Commercial intelligence (v1.1.0)

  The commercial evidence layer went live for Pro+ plans.

  * **Recommendations API**: `GET /v1/recommendations` and `GET /v1/entities/{id}/recommendations`, filtered by `mention_class` (`ad_read` / `endorsement` / `mention` / `all`), `channel_id`, `min_confidence`, dates, and `include_disputed`. Public IDs use the `com_*` scheme.
  * **Channel sponsors**: `GET /v1/channels/{channel_id}/sponsors` with `min_ad_reads` (default 3) and `status` filters, built on the recurring-sponsor rules behind Arcmira's internal advertiser dashboards.
  * **Entity discovery**: `GET /v1/entities/search`, fuzzy, ranked, free, with `has_recommendations_data`.
  * **Mention enrichment**: `GET /v1/mentions?details=full` attaches matching commercial rows (verbatim quotes, promo codes, offers, confidence).
  * **Summaries and teasers**: `recommendations_summary` on entity reads; `sponsor_count` visible to every caller on channel reads.
  * **Gating**: new `recommendations:read` scope, `recommendations_api_enabled` on `/v1/me`, and error codes `recommendations_not_enabled`, `invalid_feedback_request`, `channel_not_found`, `recommendation_not_found`. Commercial rows bill at a premium per-row rate.

  [Read the Commercial intelligence guide →](/commercial-intelligence)

  ## Entity and mentions surface (v1.0.1)

  * `GET /v1/entities/lookup` resolves a name (and optional `type`) to a canonical `ent_<id>`, following merge chains; `merged_from_id` marks aliases.
  * `GET /v1/entities/{id}`, `GET /v1/entities/{id}/mentions`, and `GET /v1/mentions` with entity, channel, sentiment, appearance, date, and free-text filters.
  * Non-person appearance routes return `400 appearances_person_only`; only `/v1/people/{slug}/appearances` is documented.
  * `X-Request-Id`, `X-Arcmira-Version`, and `RateLimit-*` headers stable across all v1 responses.

  [Read the Search guide →](/search)
</Update>

<Update label="April 2026" description={<div className="changelog-month-index"><div><a href="#initial-public-api-surface-v1-0-0">Initial public API surface</a></div></div>} rss={{ title: "April 2026", description: "Initial public API surface v1.0.0: search, entity reads, monitors, trackers, and scoped API keys." }}>
  ## Initial public API surface (v1.0.0)

  The first public release of the Arcmira API.

  * Search and entity reads; person appearances and per-entity related lists.
  * Monitors and trackers CRUD with idempotency, plus `/alerts` recent delivery history.
  * Cursor pagination (`data` / `has_more` / `next_cursor`), a stable error envelope, and `X-Request-Id` correlation.
  * Scoped API keys: `read`, `monitors:write`, `trackers:write`.

  [Read the Quickstart →](/)
</Update>
