openapi: 3.2.0 info: title: Dedalus Models API description: 'MCP gateway for AI agents. Mix-and-match any model with any tool from our marketplace. ## Authentication Use Bearer token or X-API-Key header authentication: ``` Authorization: Bearer your-api-key-here ``` ``` x-api-key: your-api-key-here ``` ## Available Endpoints - **GET /v1/models**: list available models - **POST /v1/chat/completions**: Chat completions with MCP tools - **GET /health**: Service health check' version: 0.0.1 servers: - url: https://api.dedaluslabs.ai description: Official Dedalus API tags: - name: Models paths: /v1/models: get: tags: - Models summary: List Models description: 'List available models. Retrieve the complete list of models available to your organization, including models from OpenAI, Anthropic, Google, xAI, Mistral, Fireworks, and DeepSeek. Returns: ListModelsResponse: List of available models across all supported providers' operationId: list_models_v1_models_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListModelsResponse' security: - Bearer: [] x-codeSamples: - lang: typescript label: Typescript source: 'const client = new Dedalus(); const result = await client.models.list();' - lang: python label: Python source: 'client = Dedalus() result = client.models.list()' - lang: go label: Go source: 'client := dedalus.NewClient() result, err := client.Models.List(ctx context.Context)' /v1/models/{model_id}: get: tags: - Models summary: Retrieve Model description: 'Retrieve a model. Retrieve detailed information about a specific model, including its capabilities, provider, and supported features. Args: model_id: The ID of the model to retrieve (e.g., ''openai/gpt-4'', ''anthropic/claude-3-5-sonnet-20241022'') user: Authenticated user obtained from API key validation Returns: Model: Information about the requested model Raises: HTTPException: - 401 if authentication fails - 404 if model not found or not accessible with current API key - 500 if internal error occurs Requires: Valid API key with ''read'' scope permission Example: ```python import dedalus_sdk client = dedalus_sdk.Client(api_key="your-api-key") model = client.models.retrieve("openai/gpt-4") print(f"Model: {model.id}") print(f"Owner: {model.owned_by}") ``` Response: ```json { "id": "openai/gpt-4", "object": "model", "created": 1687882411, "owned_by": "openai" } ```' operationId: retrieve_model_v1_models__model_id__get security: - Bearer: [] parameters: - name: model_id in: path required: true schema: type: string title: Model Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/Model' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-codeSamples: - lang: typescript label: Typescript source: 'const client = new Dedalus(); const result = await client.models.retrieve(modelID);' - lang: python label: Python source: 'client = Dedalus() result = client.models.retrieve(model_id)' - lang: go label: Go source: 'client := dedalus.NewClient() result, err := client.Models.Get(ctx, modelID string)' components: schemas: ModelProviderRoute: properties: endpoint: $ref: '#/components/schemas/Endpoint' description: Dedalus endpoint path upstream_api: $ref: '#/components/schemas/UpstreamAPI' description: Provider API used for this endpoint type: object required: - endpoint - upstream_api title: ModelProviderRoute description: One endpoint -> upstream routing entry exposed by `/v1/models`. Provider: type: string enum: - openai - anthropic - google - xai - deepseek - mistral - groq - fireworks - cohere - together - cerebras - perplexity - moonshot title: Provider description: Supported LLM providers. ModelProviderInfo: properties: routing: items: $ref: '#/components/schemas/ModelProviderRoute' type: array title: Routing description: Per-endpoint upstream routing metadata status: $ref: '#/components/schemas/ModelStatus' description: Availability status type: object required: - routing - status title: ModelProviderInfo description: Typed provider metadata surfaced to SDKs. ModelStatus: type: string enum: - enabled - disabled - preview - deprecated title: ModelStatus description: Model availability status. Endpoint: type: string enum: - /v1/chat/completions - /v1/responses - /v1/embeddings - /v1/images/generations - /v1/audio/speech - /v1/audio/transcriptions - /v1/moderations title: Endpoint description: API endpoints we expose. Model: properties: id: type: string title: Id description: Unique model identifier with provider prefix (e.g., 'openai/gpt-4') provider: $ref: '#/components/schemas/Provider' description: Provider that hosts this model created_at: type: string format: date-time title: Created At description: When the model was released (RFC 3339) display_name: anyOf: - type: string - type: 'null' title: Display Name description: Human-readable model name description: anyOf: - type: string - type: 'null' title: Description description: Model description version: anyOf: - type: string - type: 'null' title: Version description: Model version identifier capabilities: anyOf: - $ref: '#/components/schemas/ModelCapabilities' - type: 'null' description: Normalized model capabilities defaults: anyOf: - $ref: '#/components/schemas/ModelDefaults' - type: 'null' description: Provider-declared default parameters provider_info: anyOf: - $ref: '#/components/schemas/ModelProviderInfo' - type: 'null' description: Typed provider-specific metadata provider_declared_generation_methods: anyOf: - items: type: string type: array - type: 'null' title: Provider Declared Generation Methods description: Provider-specific generation method names (None = not declared) type: object required: - id - provider - created_at title: Model description: 'Unified model metadata across all providers. Combines provider-specific schemas into a single, consistent format. Fields that aren''t available from a provider are set to None.' HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ModelDefaults: properties: temperature: anyOf: - type: number - type: 'null' title: Temperature description: Default temperature setting top_p: anyOf: - type: number - type: 'null' title: Top P description: Default top_p setting top_k: anyOf: - type: integer - type: 'null' title: Top K description: Default top_k setting max_output_tokens: anyOf: - type: integer - type: 'null' title: Max Output Tokens description: Default maximum output tokens type: object title: ModelDefaults description: Provider-declared default parameters for model generation. ListModelsResponse: properties: object: type: string const: list title: Object description: Response object type default: list data: items: $ref: '#/components/schemas/Model' type: array title: Data description: List of available models type: object required: - data title: ListModelsResponse description: Response for /v1/models endpoint. ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError ModelCapabilities: properties: text: anyOf: - type: boolean - type: 'null' title: Text description: Supports text generation vision: anyOf: - type: boolean - type: 'null' title: Vision description: Supports image understanding image_generation: anyOf: - type: boolean - type: 'null' title: Image Generation description: Supports image generation audio: anyOf: - type: boolean - type: 'null' title: Audio description: Supports audio processing tools: anyOf: - type: boolean - type: 'null' title: Tools description: Supports function/tool calling structured_output: anyOf: - type: boolean - type: 'null' title: Structured Output description: Supports structured JSON output streaming: anyOf: - type: boolean - type: 'null' title: Streaming description: Supports streaming responses thinking: anyOf: - type: boolean - type: 'null' title: Thinking description: Supports extended thinking/reasoning input_token_limit: anyOf: - type: integer - type: 'null' title: Input Token Limit description: Maximum input tokens output_token_limit: anyOf: - type: integer - type: 'null' title: Output Token Limit description: Maximum output tokens type: object title: ModelCapabilities description: Normalized model capabilities across all providers. UpstreamAPI: type: string enum: - openai/chat/completions - openai/responses - openai/embeddings - openai/images - openai/audio/speech - openai/audio/transcriptions - anthropic/messages - google/generateContent - google/embedContent - xai/chat/completions - openai-compatible title: UpstreamAPI description: Upstream provider API types. securitySchemes: Bearer: type: http scheme: bearer