Skip to main content
Commercial intelligence is Arcmira’s paid-evidence layer: a second extraction pipeline that classifies on-camera commercial activity into paid ad reads, organic endorsements, and lower-signal commercial mentions, then rolls recurring relationships up into per-channel sponsor lists. In API terms it is two endpoint families: GET /v1/recommendations (row-level evidence) and GET /v1/channels/{channel_id}/sponsors (the rollup).
Commercial intelligence requires a Pro+ tier (pro_plus, ultra, teams, enterprise) AND the recommendations:read scope. Lower tiers get 403 recommendations_not_enabled regardless of scope; correctly tiered keys missing the scope get 403 insufficient_scope. Check /v1/merecommendations_api_enabled before calling, and manage plans from Pricing.

When to use

  • You sell sponsorships or negotiate them. Pull a channel’s recurring advertisers before a negotiation: “who already sponsors TBPN, at what cadence, since when?” Never go into a sponsorship negotiation blind.
  • You model competitor spend. Row-level ad reads carry verbatim quotes, promo codes, and offers: “every Ramp ad read across business podcasts this year, with the codes they ran.”
  • You find organic champions. Endorsements are unpaid recommendations from hosts and guests: “which shows organically endorsed Figma after the IPO?”
  • You build advertiser dashboards. Re-expose the classification, confidence, and dispute machinery in your own product.

The two universes

Arcmira runs two independent extraction pipelines: Different prompts, different quality rules, different false-positive profiles. They are deliberately not joined into one result set; /v1/mentions?details=full attaches matching commercial rows to mention rows, but the populations stay distinct.

Classification

Every commercial row carries a mention_class: Quality rules baked into the pipeline: entities with fewer than 3 ad reads on a channel are one-offs, not sponsors (tunable via min_ad_reads); a singleton ad_read with no sponsor language is downgraded to mention; canonical entity merges are followed automatically; rows with conflict_status: "disputed" are excluded unless you pass include_disputed=true.

Recommendations: row-level evidence

Exactly one of entity_id or entity_name is required (the entity-scoped form takes it from the path).
Response row
  • id is the public com_* form: pass it to Community Review to dispute a row.
  • Read start_seconds/end_seconds (integer seconds; 0 means the full episode). The start_timestamp/end_timestamp MM:SS strings are deprecated and will be removed after a changelog-announced sunset.
  • sentiment_score is the raw [-1, 1] number, matching mention rows. The sentiment field carries the same number and is deprecated; read sentiment_score.
  • promo_code and offer are nullable, populated when the extractor found explicit codes or offers in the quote.
  • speaker_role distinguishes host reads from guest recommendations.
  • conflict_status/resolution surface cross-pass classification conflicts; disputed rows are excluded by default.

Channel sponsors: the rollup

{channel_id} is a YouTube channel ID (UC-DRzaGnL_vtBUpCFH5M0tg), not an ent_*.
Response (truncated)
  • channel.id is null when there is no canonical entity for the channel; youtube_channel_id is always present.
  • sponsor_status is null for entities not in the known-advertiser registry; when present, status is active, lapsed, ended, or uncertain.
  • meta.count is the returned page size, not a global total.
Pivot from a sponsor of interest to its row-level evidence:

Discovery and teasers

  • GET /v1/entities/search?has_recommendations_data=true restricts discovery to entities with commercial signal (free).
  • Entity reads on organization/product entities include a recommendations_summary aggregate for entitled callers (totals, unique shows, first/last seen, channels_as_sponsor). Zero rows.
  • Channel reads include a teaser under recommendations_summary: recommendations_summary.sponsor_count is visible to every caller (a discoverability signal); recommendations_summary.top_sponsors appears only with Pro+ and recommendations:read.

Billing

Every row returned by /v1/recommendations and every sponsor in /v1/channels/{id}/sponsors bills at 10 rows (versus 1 for a standard mention row). recommendations_summary blocks and teasers cost zero rows. details=full on mentions charges the mention row plus 10 rows per attached commercial item. See Usage, limits & billing.

Community Review

Commercial rows are exactly where you should push back: a false paid read hurts a brand, a missed one hurts a negotiation. Dispute rows by com_* ID, sponsors by ent_* + channel, for free:
Reason codes: false_positive_ad_read, false_positive_endorsement, missed_ad_read, missed_endorsement, wrong_classification, wrong_entity, other. Commercial review uses the same access as the data (Pro+ + recommendations:read); nothing auto-applies. Full catalog: Community Review.

Errors

Next