AnswerixAI Docs AnswerixAI Docs AI Search Visibility, GEO & AEO platform

Environment variables

Full reference for every AnswerixAI-specific variable in .env.

On this page 9

One .env file configures the whole application. The standard Laravel variables (APP_*, DB_*, MAIL_*, QUEUE_CONNECTION, …) behave exactly as documented in the Laravel docs; the tables below cover the AnswerixAI-specific ones.

Core platform

Variable Required Description
IS_CLOUD false (default) for self-hosted — all features unlocked, no Stripe needed. true only for a billed cloud deployment.
DAILY_CRON_SCHEDULE Cron expression for the daily tracking run (default 0 6 * * *).
CRON_SECRET cloud only Shared secret guarding the internal /api/internal/* endpoints. Generate with openssl rand -hex 32.
ANSWERIX_ENCRYPTION_KEY optional AES-256-GCM master key for bring-your-own Anthropic keys (agent chat). Generate with openssl rand -base64 32.

AI providers

You need at least one provider key for tracking and suggestions to work.

Variable Required Description
OPENAI_API_KEY optional* OpenAI key (ChatGPT tracking via the Responses API, sentiment)
ANTHROPIC_API_KEY optional* Anthropic key (Claude tracking, agent chat on self-hosted)
GEMINI_API_KEY optional* Google AI Studio Gemini key
DEFAULT_SUGGESTION_MODEL Default LLM for AI suggestions (default google/gemini-3-flash-preview)
TOPIC_SUGGESTION_MODEL LLM for topic suggestions
PROMPT_SUGGESTION_MODEL LLM for prompt suggestions
COMPETITOR_SUGGESTION_MODEL LLM for competitor suggestions
AUDIT_LLM_MODEL LLM for the Site Audit's LLM-judged signals + recommendations
READABILITY_LLMS_MODEL LLM for AI-readability (llms.txt) generation

Web-engine scraping (Cloro)

Variable Required Description
CLORO_API_KEY ✅ for web engines Cloro API key — scrapes AI engines without public APIs (ChatGPT web, Google AI Overview/Mode, Copilot, Perplexity web, Grok)
CLORO_WEBHOOK_URL optional Public URL Cloro calls back (https://your-host/cloro/callback); when unset, results are polled inline
CLORO_WEBHOOK_SECRET optional HMAC secret for verifying Cloro callbacks
PLATFORM_PROVIDER Scraper backend selector (default cloro)

Prompt volumes (Google Ads API)

Free API, but credentials take a few steps — see the setup guide.

Variable Required Description
GOOGLE_ADS_DEVELOPER_TOKEN volumes Google Ads developer token
GOOGLE_ADS_CLIENT_ID / GOOGLE_ADS_CLIENT_SECRET volumes OAuth client credentials
GOOGLE_ADS_REFRESH_TOKEN volumes OAuth refresh token
GOOGLE_ADS_CUSTOMER_ID volumes 10-digit customer ID, no dashes
GOOGLE_ADS_LOGIN_CUSTOMER_ID optional Only when the account sits under a manager (MCC) account
AI_VOLUME_MULTIPLIER Estimated AI search adoption rate (default 0.15 = 15% of Google volume)

Site Audit (headless Chrome fallback)

Variable Required Description
BROWSERSHOT_NODE_BINARY optional Path to node when the queue worker's PATH lacks it (e.g. /usr/bin/node)
BROWSERSHOT_NPM_BINARY optional Path to npm
BROWSERSHOT_CHROME_PATH optional Custom Chrome path; blank = Puppeteer's bundled Chromium

Stripe (cloud mode only)

Variable Required Description
STRIPE_SECRET_KEY cloud Stripe secret key (platform account; agencies override per-whitelabel in config/whitelabel.php)
STRIPE_WEBHOOK_SECRET cloud Stripe webhook signing secret
STRIPE_STARTER_MONTHLY_PRICE_ID / STRIPE_GROWTH_MONTHLY_PRICE_ID cloud Price IDs for the two plans

OAuth sign-in (optional)

Variable Description
GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET GitHub OAuth app credentials
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET Google OAuth credentials

Buttons degrade gracefully when unset — see the OAuth setup guide.

Realtime (Laravel Reverb)

Variable Description
BROADCAST_CONNECTION reverb to enable realtime tracking.complete / content.generated events
REVERB_APP_ID / REVERB_APP_KEY / REVERB_APP_SECRET Reverb app credentials
REVERB_HOST / REVERB_PORT / REVERB_SCHEME Where the Reverb server listens
VITE_REVERB_* Browser-side mirrors (default to the server values)

When Reverb isn't configured, the dashboard silently falls back to polling — nothing breaks.

Tips for production

  • Never commit .env — it holds every secret the app has.
  • Rotate CRON_SECRET and API keys quarterly as a hygiene practice.
  • Use a different database per environment (dev / staging / prod). Don't share databases across environments.
  • After changing .env on a cached production app, run php artisan config:cache to pick the values up.

Continue: Upgrading →