viralquery

Troubleshooting

Common issues when an agent uses ViralQuery.

Every error response is JSON with an error field.

401 unauthorized

The bearer key is missing, malformed, revoked, or expired. Send Authorization: Bearer sk_viralquery_... and never put the key in a URL or prompt.

402 subscription_required

The key has no active subscription. Start monthly or annual checkout through Get an API key.

No workspace

Call POST /v1/workspace with a description, Apple App Store link, HTTPS website, or a combination of those fields before writing rules or starting a scroll. The tenant owns one stable workspace, but its research brief and subject are editable with PUT /v1/workspace. Re-posting a different subject with POST returns 409 workspace_already_set; use PUT for an intentional change.

A scroll is already running

Only one scroll can be queued or running for the workspace. Poll GET /v1/scrolls?id=... until it reaches completed, failed, or cancelled. A second create attempt returns 409 scroll_active_limit.

Research capacity is at 100%

Call GET /v1/usage and inspect usage.daily.usedPct. Research uses a daily AI budget, not monthly scroll slots, and the daily percentage resets at 00:00 UTC. Wait for the reset before starting more research; reads remain bounded and do not consume the AI budget.

429 rate_limited

The request-rate guard rejected a burst of calls. Honor the Retry-After response header, wait that many seconds, and retry with backoff. Do not translate this error into a scroll count.

This is expected until the workspace has at least two completed scrolls. ViralQuery does not invent a trend from one observation.

Subscription claim returns pending

Finish Stripe checkout, then poll POST /v1/subscribe/claim with the same claimToken. already_claimed means the key was already shown once; use the email recovery flow to rotate it.

On this page