Skip to main content
Lists the AI models available for AI Visibility tracking for a team, each with its isActive state and a canEnable flag reflecting your plan. Enabling a model lets SnowSEO run that LLM (e.g. an OpenAI, Anthropic, Google, or Perplexity model) against your tracked prompts on future AI-visibility refreshes. Some models are plan-gated: canEnable is true only when the model has no plan restriction (planId is null) or its planId matches your team’s active plan.
Every request is team-scoped — pass the teamId of the brand you’re managing. Toggling a model or changing the cadence takes effect on the next AI-visibility refresh.
See also the AI Visibility overview and Track Prompts for managing the prompts these models run against.

Enable or Disable a Model

PATCH /ai-models/{modelId} Turns one AI visibility model on or off for a team. Body: teamId (required) and isActive (required boolean). Enabling a plan-gated model is rejected with 403 when your team’s active plan does not include it, and 404 if the model doesn’t exist. Returns { "success": true }.

Get Refresh Interval

GET /ai-models/refresh-interval Returns the team’s effective AI-visibility refresh cadence, in days. Requires teamId. Response:
  • planFloor — the minimum cadence (fewest days between refreshes) your plan allows.
  • allowedIntervals — the selectable cadences for your plan, drawn from the ladder 30, 15, 7, 3, 1 days and filtered to values >= the floor.
  • customInterval — the team’s custom override, or null when none is set.
  • effectiveInterval — the cadence actually used: the custom value when set (clamped to at least the floor), otherwise the plan floor.

Set Refresh Interval

PATCH /ai-models/refresh-interval Sets or clears the team’s custom refresh cadence. Body: teamId (required) and interval (integer days, or null to clear the override and follow the plan floor). The value must be one of the plan’s allowedIntervals; anything else returns 403. Lower numbers refresh more often. Returns the same planFloor, allowedIntervals, customInterval, and effectiveInterval fields as the GET route, plus success: true.