AI Providers
Several SyteOps features call AI models — LinkCentral keyword enrichment and cross-link scoring, Content Pipelines drafting, GEO readiness analysis, content ingest mapping, social content generation, and more. SyteOps supports six providers and lets each feature pick its own provider, model, and token budget so you can match the model to the job.
Supported providers
| Provider | Typical use | Notable features |
|---|---|---|
| OpenAI | General chat and reasoning models (GPT-4o, GPT-5, o-series) | Mature API; broad model catalog |
| Anthropic | Claude family (Opus, Sonnet, Haiku) | Strong instruction-following; long context |
| OpenRouter (recommended) | Aggregated access to models from most major providers | One key unlocks every listed model — including Perplexity Sonar |
| Gemini | Google's Gemini 1.5 / 2.x / 3.x families | Long context; native Google integration |
| Perplexity | Sonar models with built-in web search | Real-time web context for destination-site lookups |
Why OpenRouter is the recommended default: one API key gives you access to models from every other provider. If you're not sure which provider to use for a given feature, start with OpenRouter and pick a model from the provider you prefer.
Perplexity's web-search exclusivity: the Context AI step in LinkCentral keyword enrichment requires a model that can perform web search. Only Perplexity and OpenRouter can serve those models. SyteOps automatically filters the Context AI provider dropdown to show only providers that can access them.
Where API keys live
- Open the System / API tab in SyteOps settings
- Find the API Keys tile
- Paste each provider's key into the matching field
- Click Save Changes
All five keys are encrypted at rest. They are never displayed in plaintext after save — you see a masked value.
Test a saved key: each tile has a Test key button (shown once a key is saved). It makes a quick live call to the provider and reports back — "Key valid — N models available", or the provider's error message if the key is rejected. Useful for providers that don't expose a balance you can sanity-check against.
Other service keys
Some services SyteOps talks to are not AI providers, so their keys live further down the same System / API tab, with the other service credentials rather than in the API Keys tile:
- Erlin API Key — for Erlin AI, an AI-search visibility service. Generate the key in Erlin under Settings → Accounts → MCP; it begins with
ek_live_. The field simply stores the key — nothing in SyteOps contacts Erlin yet.
Like the provider keys, it is encrypted at rest, masked after save, and excluded from configuration exports.
Per-provider default model and token limit
Each provider tile on the API Keys card has its own Preferred model and Max tokens fields, right below the key field:
- Enter and save the provider's API key.
- Click Fetch Models to load that provider's live model list, then pick a model (or choose Custom to type a model ID by hand).
- Set Max tokens, or click the refresh (↻) button to snap it to the selected model's maximum.
These give you a single, provider-level default — handy when you want every automation that uses a provider to share the same model and token ceiling. Each field also has a copy icon that copies its FlowMattic variable (wrapped in {{ }}) so you can drop it straight into a workflow:
{{syteops_std_systm_openai_model_001_preferred}}/{{syteops_std_systm_openai_model_001_max_tokens}}- …and the matching
anthropic,openrouter,gemini, andperplexityvariables.
The model and token-limit fields appear on a provider tile once that provider's key is saved (so the model list has a key to load with).
Used as a fallback: when a feature that runs AI in SyteOps (e.g. LinkCentral cross-linking and keyword matching) has no model of its own set, it falls back to the matching provider's default model and token limit here — so you can set a sensible default once per provider instead of per feature.
Per-feature provider and model selection
Each AI-using feature stores its own provider, model, and max-tokens values. You can point different features at different providers — for example, a cheap keyword model via OpenRouter and a reasoning model via Anthropic for content drafting.
Features that have per-feature AI configuration:
- LinkCentral — three independent AI areas (Cross-Link, Keyword, Context). See the LinkCentral integration page for detail.
- Content — AI-suggested categories, tags, and meta descriptions for content sources and the Review Portal. See Content Pipelines.
- GEO — AI readiness analysis that scores how well a post is positioned for AI answer engines. See Content Pipelines.
- Ingest — proposes how an inbound content-source payload maps to your post fields when you set up a new content source. See Content Pipelines.
- Social — AI-generated social posts from your published content.
- Image SEO — Generate SEO with AI in the Review Portal. It writes an image's alt text, title, and caption from the picture itself rather than the surrounding words. It uses that provider's key on System / API, not SyteHero (SyteHero is Modify with AI). This area must point at a model that accepts image input; a text-only model is refused rather than asked to guess, so the provider list here shows a provider that cannot take an image as unselectable. See Review & Publish Your Post.
There are two ways to set per-feature AI configuration:
- From the feature's own settings card — for example the AI Models group on the Content Pipelines → Review Portal view, which is where the Content, GEO, Ingest, Social and Image SEO areas are set, or the Enrichment Settings section on the System / API tab for LinkCentral.
- From the integration or module tile — click Configure AI Provider on the integration card (Integrations tab) or the dropdown on the Modules tab. A modal opens with provider, model, and max-tokens fields. Saving the modal writes directly via AJAX — you don't need to navigate to the feature's settings tab first.
Not every feature offers both routes: the Configure AI Provider modal appears only on tiles that carry that control, so features whose controls already render on their own settings card — Content, GEO, Ingest, Image SEO, and Social among them — are set there.
Live balance display
Each provider's card on the API Keys tile shows your current balance (or credit/usage, depending on what the provider returns):
- The balance row only appears once you've saved a key for that provider — providers with no key entered don't show a balance (and won't surface a balance-lookup error).
- Click the refresh icon to re-fetch the balance.
- If a provider doesn't expose a balance endpoint, the field shows "—".
Use this to catch low-balance states before an enrichment run or content-pipeline batch exhausts your credit.
Provider branding modal
Clicking the plugin logo in the top corner of the settings screen opens a small information panel with:
- Link to the provider's primary documentation
- Link to the provider's pricing / models page
- The SyteOps-side field the provider's key maps to (useful when you're verifying keys by provider)
Model max-tokens behavior
- When you select a model, SyteOps auto-populates the Max Tokens field with the model's maximum output size (when the provider exposes per-model metadata).
- A hint below the field reads "Model maximum: X tokens" so you can see the ceiling without opening provider docs.
- The refresh (↻) button next to the Max Tokens field resets the value to the model's maximum.
- If you use a custom model ID (a model not in the dropdown), the max-tokens ceiling falls back to the provider's default.
Model recommendations by use-case
| Use-case | Model class | Examples |
|---|---|---|
| Keyword generation (LinkCentral Keyword AI) | Fast, lightweight chat | GPT-5.4 Mini, GPT-4o Mini, Claude Haiku |
| Cross-link relevance scoring | Standard chat | Same as keyword, or a step up like GPT-5.4 |
| Web-search context (LinkCentral Context AI) | Search-enabled (Sonar family) | Sonar, Sonar Pro |
| Drafting / longer-form content | Capable chat or reasoning | Claude Sonnet, GPT-5, Gemini 2.5 Pro |
| Structured extraction / classification | Fast, lightweight chat | Haiku, Mini variants |
Reasoning / thinking modes add latency. For short tasks like keyword generation, a plain chat model is typically better.
Troubleshooting
"Models not loading" in the model dropdown
- Confirm the provider's API key is saved (the field should show a masked value, not be empty).
- Click Fetch Models on the AI area to force a refresh of the cache.
- Provider model caches are cleared automatically on plugin update; other providers refresh on demand.
"Balance shows —"
- The provider either doesn't expose a balance endpoint, or the response format changed. Try the per-provider refresh icon.
- Check the provider dashboard directly as a fallback.
"Perplexity doesn't appear as a Context AI provider"
- The Context AI dropdown is filtered to Perplexity-capable providers (Perplexity, OpenRouter). If you selected a different provider for Keyword AI, the Context AI dropdown still shows only the eligible providers — this is by design.
Related
- LinkCentral Integration — three-area AI configuration (Cross-Link, Keyword, Context)
- Content Pipelines — AI-suggested categories, tags, and meta descriptions for content
- Troubleshooting — AI provider-specific troubleshooting