{
	"schema": 1,
	"version": "2026-08-19",
	"notes": {
		"purpose": "Hosts watched for outgoing requests. Every entry is the documented API endpoint of a generative AI provider, or an endpoint read directly from the source of the plugin that calls it. Nothing here is inferred from a naming convention.",
		"hosts": "Exact host match, case-insensitive.",
		"host_suffixes": "Matches when the request host ends with this string. Used only where a provider issues per-tenant or per-region subdomains. Every suffix must be specific enough that it cannot match an unrelated service.",
		"path_prefix": "Optional. When present the rule only fires if the request path also starts with this string. Required for any host that serves non-AI traffic as well, so that blocking AI does not break the rest of that service.",
		"group": "'provider' = a direct AI API, blocked by default when the mode is set to block. 'proxy' = a WordPress plugin's own AI endpoint, off by default because these hosts are reached by plugins the user is paying for and the failure is theirs to choose.",
		"default": "Whether this entry is watched out of the box."
	},
	"providers": [
		{
			"id": "openai",
			"label": "OpenAI",
			"group": "provider",
			"default": true,
			"hosts": [ "api.openai.com" ],
			"host_suffixes": [ ".openai.azure.com" ],
			"docs": "https://platform.openai.com/docs/api-reference"
		},
		{
			"id": "anthropic",
			"label": "Anthropic",
			"group": "provider",
			"default": true,
			"hosts": [ "api.anthropic.com" ],
			"docs": "https://docs.claude.com/en/api/overview"
		},
		{
			"id": "google",
			"label": "Google",
			"group": "provider",
			"default": true,
			"hosts": [ "generativelanguage.googleapis.com", "aiplatform.googleapis.com" ],
			"host_suffixes": [ "-aiplatform.googleapis.com" ],
			"docs": "https://ai.google.dev/api"
		},
		{
			"id": "xai",
			"label": "xAI",
			"group": "provider",
			"default": true,
			"hosts": [ "api.x.ai" ],
			"docs": "https://docs.x.ai/docs/api-reference"
		},
		{
			"id": "mistral",
			"label": "Mistral",
			"group": "provider",
			"default": true,
			"hosts": [ "api.mistral.ai" ],
			"docs": "https://docs.mistral.ai/api/"
		},
		{
			"id": "cohere",
			"label": "Cohere",
			"group": "provider",
			"default": true,
			"hosts": [ "api.cohere.com", "api.cohere.ai" ],
			"docs": "https://docs.cohere.com/reference/about"
		},
		{
			"id": "perplexity",
			"label": "Perplexity",
			"group": "provider",
			"default": true,
			"hosts": [ "api.perplexity.ai" ],
			"docs": "https://docs.perplexity.ai/api-reference"
		},
		{
			"id": "groq",
			"label": "Groq",
			"group": "provider",
			"default": true,
			"hosts": [ "api.groq.com" ],
			"docs": "https://console.groq.com/docs/api-reference"
		},
		{
			"id": "deepseek",
			"label": "DeepSeek",
			"group": "provider",
			"default": true,
			"hosts": [ "api.deepseek.com" ],
			"docs": "https://api-docs.deepseek.com/"
		},
		{
			"id": "together",
			"label": "Together AI",
			"group": "provider",
			"default": true,
			"hosts": [ "api.together.xyz", "api.together.ai" ],
			"docs": "https://docs.together.ai/reference"
		},
		{
			"id": "openrouter",
			"label": "OpenRouter",
			"group": "provider",
			"default": true,
			"hosts": [ "openrouter.ai" ],
			"path_prefix": "/api/",
			"docs": "https://openrouter.ai/docs/api-reference/overview"
		},
		{
			"id": "huggingface",
			"label": "Hugging Face",
			"group": "provider",
			"default": true,
			"hosts": [ "router.huggingface.co", "api-inference.huggingface.co" ],
			"docs": "https://huggingface.co/docs/inference-providers/index"
		},
		{
			"id": "replicate",
			"label": "Replicate",
			"group": "provider",
			"default": true,
			"hosts": [ "api.replicate.com" ],
			"docs": "https://replicate.com/docs/reference/http"
		},
		{
			"id": "stability",
			"label": "Stability AI",
			"group": "provider",
			"default": true,
			"hosts": [ "api.stability.ai" ],
			"docs": "https://platform.stability.ai/docs/api-reference"
		},
		{
			"id": "elevenlabs",
			"label": "ElevenLabs",
			"group": "provider",
			"default": true,
			"hosts": [ "api.elevenlabs.io" ],
			"docs": "https://elevenlabs.io/docs/api-reference/introduction"
		},
		{
			"id": "yoast-ai",
			"label": "Yoast SEO AI",
			"group": "proxy",
			"default": false,
			"hosts": [ "ai.yoa.st" ],
			"source": "wordpress-seo/src/ai/http-request/infrastructure/api-client.php:24 — private $base_url = 'https://ai.yoa.st/api/v1'",
			"warning": "Dedicated AI host. Blocking it stops Yoast's AI suggestions and nothing else Yoast does."
		},
		{
			"id": "elementor-ai",
			"label": "Elementor AI",
			"group": "proxy",
			"default": false,
			"hosts": [ "my.elementor.com" ],
			"path_prefix": "/api/v2/ai/",
			"source": "elementor/modules/ai/connect/ai.php:14 — const API_URL = 'https://my.elementor.com/api/v2/ai/'",
			"warning": "This host also carries Elementor's licence checks and template library. The path prefix is what keeps those working; a host-wide block here would break Elementor Pro."
		}
	]
}
