Skip to main content
API calls draw on the same monthly credits as the rest of Spyglass. There’s no separate API plan and no per-call fee — you’re charged per row returned.

Rates

The count field in every response is exactly what you were charged for. If count is 12, you paid for 12 rows.

Bounding a call

Every endpoint takes a cap, and the defaults are not the maximums:
A media call at limit: 1500 costs $1.50. The cap is high on purpose so bulk exports are possible — set limit deliberately rather than leaving it to chance.

What you’re never charged for

A request that fails validation, authentication, or the credit check costs nothing. Specifically, every 400, 401, 402, 403, 404, 405, 413 and 429 is free. Only work that ran is billed.

The one-row minimum

Three calls run a language model before they touch the database:
  • POST /brands/{id}/media — both modes
  • POST /brands/search with mode: "smart"
These bill a minimum of one row even when nothing matches, because the model ran either way. A smart search returning zero brands still costs $0.0025. mode: "ids" and mode: "brand_name" don’t run a model, and cost nothing when they match nothing.

Running out

When the team’s monthly credits are exhausted, calls return 402 out_of_credits and stop doing work. Nothing is queued or partially charged — add credits or wait for the renewal, and the same request will succeed.

Insights costs more than it looks

maxDaysBack narrows the weekly bucket series, but not totals — and totals is what you’re charged for. It always covers the brand’s full clustering run. Use limit to bound the charge; maxDaysBack only changes the shape of the time series.