# AI Providers

Endpoints for viewing AI providers and configuring per-scope API keys. Providers are catalog entries synced from models.dev. Use scope='global' for platform-wide configuration (requires AIProviders permissions) or a group TypeId for group-specific configuration (requires GroupAIProviders permissions).

## List AI providers

 - [GET /api/v1/ai-providers](https://docs.wellesley.social/openapi/ai-providers/paths/~1api~1v1~1ai-providers/get.md): Returns all catalog AI providers with scoped configuration state (configured, hasApiKey, etc.).

RBAC:
- requires ANY of AIProviders.Read, GroupAIProviders.Read

## Get an AI provider

 - [GET /api/v1/ai-providers/{providerId}](https://docs.wellesley.social/openapi/ai-providers/paths/~1api~1v1~1ai-providers~1%7Bproviderid%7D/get.md): Returns a single AI provider by ID with scoped configuration state.

RBAC:
- requires ANY of AIProviders.Read, GroupAIProviders.Read

## List agents using scoped provider configuration

 - [GET /api/v1/ai-providers/{providerId}/agents](https://docs.wellesley.social/openapi/ai-providers/paths/~1api~1v1~1ai-providers~1%7Bproviderid%7D~1agents/get.md): Returns AI agents that currently use scoped models linked to this provider in the given scope.

RBAC:
- requires ANY of AIProviders.Manage, GroupAIProviders.Manage

## Remove scoped configuration for a provider

 - [DELETE /api/v1/ai-providers/{providerId}/configure](https://docs.wellesley.social/openapi/ai-providers/paths/~1api~1v1~1ai-providers~1%7Bproviderid%7D~1configure/delete.md): Removes the scoped provider record and scoped model records for the scope. Agents that were using those models are automatically disabled.

RBAC:
- requires ANY of AIProviders.Manage, GroupAIProviders.Manage

## Configure a provider for a scope

 - [PUT /api/v1/ai-providers/{providerId}/configure](https://docs.wellesley.social/openapi/ai-providers/paths/~1api~1v1~1ai-providers~1%7Bproviderid%7D~1configure/put.md): Sets or updates the API key and auth configuration for a provider in the given scope. Creates a scoped provider record if one doesn't exist.

RBAC:
- requires ANY of AIProviders.Manage, GroupAIProviders.Manage

## List models for this provider

 - [GET /api/v1/ai-providers/{providerId}/models](https://docs.wellesley.social/openapi/ai-providers/paths/~1api~1v1~1ai-providers~1%7Bproviderid%7D~1models/get.md): Returns all AI models for the specified provider with scoped enablement state.

RBAC:
- requires ANY of AIModels.Read, GroupAIModels.Read

