Delete an AI credential
Permanently removes the stored API key for the given provider. Any subsequent Magic Dust requests that require this provider will fail until a new credential is stored. **Required scope:** `ai:write`
Authorization
BearerAuth Security scheme for OpenAPI endpoints. Validates both JWT tokens and API keys.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/v1/ai/credentials/string"{ "deleted": true}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}{ "code": "string", "message": "string", "request_id": "string", "details": [ { "field": "string", "message": "string" } ]}Upsert an AI credential
Creates or replaces the API key for the specified AI provider. If a credential for the same provider already exists, it is overwritten. The stored key is encrypted at rest and is never returned by any GET endpoint. **Required scope:** `ai:write`
List available AI models
Returns every model Eddytor can call, grouped by provider, with the API identifier to pass as the `model` field in Magic Dust requests. Each model is tagged with the default use cases it serves (`general`, `fast`, `complex`). This is a static catalog — it does not depend on which providers you have configured (see `GET /v1/ai/credentials` for that). **Required scope:** `ai:read`