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

# List recurring channel sponsors

> Rollup of recurring sponsors for a YouTube channel, ordered by ad read count. Requires the recommendations:read scope on a plan with Recommendations API access. Sponsors with fewer than min_ad_reads ad reads (default 3) are excluded; status filters against the curated known-advertisers dataset.



## OpenAPI

````yaml /openapi/arcmira-v1.json get /v1/channels/{channel_id}/sponsors
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/channels/{channel_id}/sponsors:
    get:
      tags:
        - Recommendations
      summary: List recurring channel sponsors
      description: >-
        Rollup of recurring sponsors for a YouTube channel, ordered by ad read
        count. Requires the recommendations:read scope on a plan with
        Recommendations API access. Sponsors with fewer than min_ad_reads ad
        reads (default 3) are excluded; status filters against the curated
        known-advertisers dataset.
      operationId: list_channel_sponsors
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 3
          required: false
          name: min_ad_reads
          in: query
        - schema:
            type: string
            enum:
              - active
              - lapsed
              - ended
              - uncertain
          required: false
          name: status
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 100
          required: false
          name: limit
          in: query
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelSponsorsResponse'
        '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:
    ChannelSponsorsResponse:
      type: object
      properties:
        channel:
          type: object
          properties:
            id:
              type:
                - string
                - 'null'
              description: >-
                Public entity id ("ent_{n}") of the channel. Null when the
                channel has media in the index but no entity record yet.
            youtube_channel_id:
              type: string
              description: YouTube channel id as supplied in the request path.
            name:
              type:
                - string
                - 'null'
              description: Channel name. Null when no entity record exists.
          required:
            - id
            - youtube_channel_id
            - name
        sponsors:
          type: array
          items:
            $ref: '#/components/schemas/ChannelSponsor'
          description: Recurring sponsors ordered by ad read count (descending).
        meta:
          type: object
          properties:
            min_ad_reads:
              type: integer
              description: The min_ad_reads threshold applied (default 3).
            count:
              type: integer
              description: Number of sponsors returned.
          required:
            - min_ad_reads
            - count
      required:
        - channel
        - sponsors
        - meta
    ChannelSponsor:
      type: object
      properties:
        entity:
          allOf:
            - $ref: '#/components/schemas/EntityRef'
            - description: The sponsoring entity.
        ad_reads:
          type: integer
          description: >-
            Number of ad_read recommendation rows for this sponsor on the
            channel.
        videos:
          type: integer
          description: Number of distinct videos containing those ad reads.
        first_seen:
          type:
            - string
            - 'null'
          description: >-
            Publish timestamp of the earliest video with an ad read. Null when
            unknown.
        last_seen:
          type:
            - string
            - 'null'
          description: >-
            Publish timestamp of the most recent video with an ad read. Null
            when unknown.
        sponsor_status:
          type:
            - object
            - 'null'
          properties:
            status:
              type: string
              description: >-
                Curated sponsorship status from the known-advertisers dataset.
                Values: active (currently sponsoring), lapsed (no recent ad
                reads), ended (relationship known to have ended), uncertain
                (signal too weak to classify).
            ad_count:
              type:
                - integer
                - 'null'
              description: Curated ad count from the known-advertisers dataset.
            first_ad_date:
              type:
                - string
                - 'null'
              description: Curated first-ad date. Null when not recorded.
            last_ad_date:
              type:
                - string
                - 'null'
              description: Curated last-ad date. Null when not recorded.
          required:
            - status
            - ad_count
            - first_ad_date
            - last_ad_date
          description: >-
            Curated known-advertiser record for this sponsor/channel pair. Null
            unless the pair exists in the curated dataset.
      required:
        - entity
        - ad_reads
        - videos
        - first_seen
        - last_seen
        - sponsor_status
    EntityRef:
      type: object
      properties:
        id:
          type: string
          description: Public entity id in the form "ent_{n}".
        name:
          type: string
          description: Canonical entity name.
        type:
          type: string
          description: >-
            Entity type. Values: person (an individual), organization (a company
            or institution; legacy rows may read company or brand), product (a
            product or service), topic (a subject or theme), channel (a media
            source such as a YouTube channel), unknown (type was never
            classified).
      required:
        - id
        - name
        - type
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: arc_sk_*
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````