# AI Models Endpoints for searching AI models and managing per-scope enablement. Models are catalog entries synced from models.dev. Use scope parameter with enable/disable endpoints to manage models per-scope. ## Search AI models - [GET /api/v1/ai-models](https://docs.wellesley.social/openapi/ai-models/paths/~1api~1v1~1ai-models/get.md): Search and filter AI models with pagination. Returns models matching all specified criteria with scoped enablement state. Searching for embedding models with specific vector dimension: For embedding models, the maxOutputTokens field in the model limits represents the embedding vector dimension (e.g., 1536 for OpenAI ada-002, 3072 for text-embedding-3-large). To find embedding models with a specific vector size, combine: - capabilities=EMBEDDINGS - filter to embedding models only - minMaxOutputTokens and maxMaxOutputTokens set to the desired dimension Example: To find embedding models with 1536-dimensional vectors: ?scope=global&capabilities=EMBEDDINGS&minMaxOutputTokens=1536&maxMaxOutputTokens=1536 RBAC: - requires ANY of AIModels.Read, GroupAIModels.Read ## Get an AI model - [GET /api/v1/ai-models/{modelId}](https://docs.wellesley.social/openapi/ai-models/paths/~1api~1v1~1ai-models~1%7Bmodelid%7D/get.md): Returns a single AI model by ID with scoped enablement state. RBAC: - requires ANY of AIModels.Read, GroupAIModels.Read ## List agents using scoped model configuration - [GET /api/v1/ai-models/{modelId}/agents](https://docs.wellesley.social/openapi/ai-models/paths/~1api~1v1~1ai-models~1%7Bmodelid%7D~1agents/get.md): Returns AI agents that currently reference this model's scoped configuration in the given scope. RBAC: - requires ANY of AIModels.Manage, GroupAIModels.Manage ## Remove scoped model configuration - [DELETE /api/v1/ai-models/{modelId}/configure](https://docs.wellesley.social/openapi/ai-models/paths/~1api~1v1~1ai-models~1%7Bmodelid%7D~1configure/delete.md): Removes scoped model enablement/configuration row for the model in the specified scope. RBAC: - requires ANY of AIModels.Manage, GroupAIModels.Manage ## Disable a model in a scope - [PUT /api/v1/ai-models/{modelId}/disable](https://docs.wellesley.social/openapi/ai-models/paths/~1api~1v1~1ai-models~1%7Bmodelid%7D~1disable/put.md): Disables a model in the specified scope. RBAC: - requires ANY of AIModels.Manage, GroupAIModels.Manage ## Enable a model in a scope - [PUT /api/v1/ai-models/{modelId}/enable](https://docs.wellesley.social/openapi/ai-models/paths/~1api~1v1~1ai-models~1%7Bmodelid%7D~1enable/put.md): Enables a model for use in the specified scope. Requires the provider to be configured with a valid API key in that scope. RBAC: - requires ANY of AIModels.Manage, GroupAIModels.Manage ## Get model migration path - [GET /api/v1/ai-models/{modelId}/migration-path](https://docs.wellesley.social/openapi/ai-models/paths/~1api~1v1~1ai-models~1%7Bmodelid%7D~1migration-path/get.md): Returns the chain of models from the given model to the final active successor. Catalog-only, no scope needed. RBAC: - requires ANY of AIModels.Read, GroupAIModels.Read ## Resolve an AI model - [GET /api/v1/ai-models/{modelId}/resolve](https://docs.wellesley.social/openapi/ai-models/paths/~1api~1v1~1ai-models~1%7Bmodelid%7D~1resolve/get.md): Resolves a model by following the successor chain if deprecated. Returns the active model that should be used. Catalog-only, no scope needed. RBAC: - requires ANY of AIModels.Read, GroupAIModels.Read