ReddGrowReddGrow Docs
AI Observability as a Service

Error Reference

All error responses returned by the AEO API, with causes and remediation steps.

Error Reference

Error response shape

All errors follow this structure:

{ "statusCode": 401, "message": "Invalid API key" }

The statusCode matches the HTTP status code. The message describes the specific error.


Error codes

StatusMeaningWhen it happens
400Bad requestMissing required parameters. Most common on explain endpoints that require brand_id, and on sources/detail which requires the scope parameter. Check the message field for the specific missing param.
401UnauthorizedThe x-api-key header is missing, the key value is invalid, or the key has been revoked.
402Payment requiredThe API key is valid, but the organization is not on the Pro plan. Upgrade at app.reddgrow.ai/settings/billing
404Not foundThe requested resource (prompt, run, brand, or topic) does not exist, or exists but belongs to a different organization. The API does not distinguish between "not found" and "not yours" to avoid enumeration.
429Too many requestsRate limit exceeded — 60 req/min or 1,000 req/hour. See Rate Limits for retry guidance.
500Server errorAn unexpected error on the ReddGrow infrastructure. If this persists, contact support.

Common causes and fixes

400 on visibility/explain

brand_id is a required query parameter on this endpoint. Include it explicitly:

# Wrong — brand_id missing
curl "https://api.reddgrow.ai/v1/aeo/visibility/explain" -H "x-api-key: rg_..."

# Correct
curl "https://api.reddgrow.ai/v1/aeo/visibility/explain?brand_id=42" -H "x-api-key: rg_..."

400 on sources/detail

The scope parameter is required. Valid values are domain and url.

curl "https://api.reddgrow.ai/v1/aeo/sources/detail?scope=domain&target=example.com" \
  -H "x-api-key: rg_..."

401 on every request

Check that:

  1. The x-api-key header name is spelled correctly (lowercase, hyphenated)
  2. The key value starts with rg_
  3. The key has not been revoked in Settings → API Keys

404 on a prompt or run you just created

The resource exists only after it's been persisted. If you're calling GET /v1/aeo/prompts/:id immediately after POST /v1/aeo/prompts, add a small delay or check the id returned in the POST response matches what you're querying.

If you're certain the resource exists, verify the API key belongs to the same organization that created it. Resources are org-scoped — a key from Org A cannot access resources created by Org B.