Skip to main content
Arcmira bills premium usage by rows, not by API calls. Rows are the unit of indexed content surfaced to your account: mention and appearance rows, related-entity rows, commercial rows, transcript blocks. API and web usage share the same row pool. A row counted for a web request is not counted again via the API. There is no separate API tier; heavy automation uses rows faster than browsing.

What counts as a row

  • Mention / appearance rows returned in a list: one row each. The first 5 rows of each distinct pull are free, and repeating the exact same request within 7 days is not re-billed.
  • Related-entity rows on aggregated views: one row each, same 5-row allowance.
  • Commercial rows (/v1/recommendations, /v1/channels/{id}/sponsors, details=full enrichment items): 10 rows each, because the commercial pipeline is more expensive to run and curate. No free allowance.
  • Transcripts: 75 rows per 15-minute block of video, minimum one block, unlock permanent per account. See Transcripts.
  • Free: /v1/me, /v1/health, /v1/openapi.json, search, lookup, discovery search (including its recommendations_summary), recommendations_summary aggregate blocks, teasers, and all Community Review submissions and corrections.
Practical consequences: a 40-sponsor list costs 400 rows, ten times a 40-mention page; details=full charges the mention row plus 10 rows per attached commercial item, so omit it when you don’t need the overlay; searches are free but the rows you then fetch are not.

Checking usage

current_spend_cents reflects on-demand spend in the current period; it stays 0 until you exceed the allotment with on-demand enabled. /v1/me is free: check it before large pulls.

Exceeding your monthly allotment

Toggle on-demand usage and set a hard spend cap in Settings → Billing.

Rate limits

Separate from rows: every key is throttled per minute over a fixed 60-second window (the counter resets on the minute boundary). Each key has its own bucket; mint separate keys per agent, environment, or job from Dashboard → API Keys. Per-key overrides are common for high-throughput integrations: ask via support. Every authenticated response (including errors past the key check) carries the bucket state: Throttle errors are 429 rate_limit_exceeded; quota exhaustion is 402 quota_exceeded. They are different problems with different fixes.

Backoff pattern

Per-key tracking

Each key tracks lifetime total_requests, total_rows_used, and total_cost_cents, visible in Dashboard → API Keys. Separate keys per integration make usage, rate limits, and Community Review reputation easy to attribute.

Reducing costs

  • Cache resolved ent_* IDs; don’t re-run lookups.
  • Pass entity_id instead of entity_name so no resolution rides inside metered requests.
  • Scope pulls with date_from / date_to.
  • Pull larger pages (up to limit=100) when iterating: rows cost the same, the request count drops.
  • Quote transcripts before unlocking (meta.quote is free) and check usage.rows_remaining first.