Every API here is available over the APIs.io API and to AI agents over MCP.
{"openapi":"3.1.0","info":{"title":"Eden AI API V3","version":"3.0.0"},"paths":{"/v3/info":{"get":{"tags":["info"],"summary":"List Features","description":"List all available features and their subfeatures.\n\nReturns features that exist in both the registry (technically supported)\nand database (have available providers).","operationId":"list_features_v3_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturesListResponse"}}}}}}},"/v3/info/{feature}":{"get":{"tags":["info"],"summary":"List Subfeatures","description":"List all subfeatures for a specific feature.\n\nArgs:\n feature: Feature name (e.g., 'text', 'image', 'ocr', 'translation')\n\nReturns:\n Feature info with display names and list of subfeatures.","operationId":"list_subfeatures_v3_info__feature__get","parameters":[{"name":"feature","in":"path","required":true,"schema":{"type":"string","title":"Feature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/info/{feature}/{subfeature}":{"get":{"tags":["info"],"summary":"Get Feature Info","description":"Get detailed information for a specific feature/subfeature.\n\nArgs:\n feature: Feature name (e.g., 'text', 'image', 'ocr', 'translation')\n subfeature: Subfeature name (e.g., 'ai_detection', 'ocr', 'generation')\n format: Schema output format (simplified or json_schema)\n\nReturns:\n - Feature and subfeature display names\n - Input schema\n - Output schema\n - Available providers and their models","operationId":"get_feature_info_v3_info__feature___subfeature__get","parameters":[{"name":"feature","in":"path","required":true,"schema":{"type":"string","title":"Feature"}},{"name":"subfeature","in":"path","required":true,"schema":{"type":"string","title":"Subfeature"}},{"name":"format","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SchemaFormat","description":"Schema format: 'simplified' for flat readable format, 'json_schema' for full Pydantic JSON Schema","default":"simplified"},"description":"Schema format: 'simplified' for flat readable format, 'json_schema' for full Pydantic JSON Schema"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubfeatureDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/chat/completions":{"post":{"tags":["Chat"],"summary":"Chat Completions","description":"OpenAI-compatible chat completions endpoint (v3).","operationId":"chat_completions_v3_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmCompletionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/responses":{"post":{"tags":["Responses"],"summary":"Create Response","description":"Create a model response.","operationId":"create_response_v3_responses_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsesBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LLMResponseObject"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/responses/{response_id}":{"get":{"tags":["Responses"],"summary":"Retrieve Response","description":"Retrieve a stored model response by ID.","operationId":"retrieve_response_v3_responses__response_id__get","security":[{"AuthBearer":[]}],"parameters":[{"name":"response_id","in":"path","required":true,"schema":{"type":"string","title":"Response Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LLMResponseObject"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Responses"],"summary":"Delete Response","description":"Delete a stored model response by ID.","operationId":"delete_response_v3_responses__response_id__delete","security":[{"AuthBearer":[]}],"parameters":[{"name":"response_id","in":"path","required":true,"schema":{"type":"string","title":"Response Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponseObject"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/moderations":{"post":{"tags":["Moderations"],"summary":"Create Moderation","description":"OpenAI-compatible content moderation endpoint.","operationId":"create_moderation_v3_moderations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/moderations/models":{"get":{"tags":["Moderations"],"summary":"List Moderation Models","description":"List available moderation models.","operationId":"list_moderation_models_v3_moderations_models_get","parameters":[{"name":"view","in":"query","required":false,"schema":{"enum":["endpoints","models"],"type":"string","description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider.","default":"endpoints","title":"View"},"description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ListModelsResponse"},{"$ref":"#/components/schemas/ListModelsWithEndpointsResponse"}],"title":"Response List Moderation Models V3 Moderations Models Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/embeddings":{"post":{"tags":["Embeddings"],"summary":"Create Embeddings","description":"OpenAI-compatible embeddings endpoint.","operationId":"create_embeddings_v3_embeddings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingsBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/embeddings/models":{"get":{"tags":["Embeddings"],"summary":"List Embeddings Models","description":"List available embeddings models.","operationId":"list_embeddings_models_v3_embeddings_models_get","parameters":[{"name":"view","in":"query","required":false,"schema":{"enum":["endpoints","models"],"type":"string","description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider.","default":"endpoints","title":"View"},"description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ListModelsResponse"},{"$ref":"#/components/schemas/ListModelsWithEndpointsResponse"}],"title":"Response List Embeddings Models V3 Embeddings Models Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/v1/messages":{"post":{"tags":["Anthropic Messages"],"summary":"Create Anthropic Message","description":"Anthropic Messages API — native pass-through via litellm.","operationId":"create_anthropic_message_v3_v1_messages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicMessagesBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicMessagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/v1/messages/count_tokens":{"post":{"tags":["Anthropic Messages"],"summary":"Count Anthropic Tokens","description":"Count input tokens for an Anthropic-format request without running the model.","operationId":"count_anthropic_tokens_v3_v1_messages_count_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicCountTokensBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnthropicCountTokensResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/images/generations":{"post":{"tags":["Images"],"summary":"Image Generations","description":"OpenAI-compatible image generation endpoint.","operationId":"image_generations_v3_images_generations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageGenerationBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/images/edits":{"post":{"tags":["Images"],"summary":"Image Edits","description":"OpenAI-compatible image-edit endpoint.\n\nAccepts either ``application/json`` (gpt-image-style ``images: [{file_id|image_url}]``)\nor ``multipart/form-data`` (OpenAI SDK classic shape: ``image[]`` UploadFile,\noptional ``mask`` UploadFile, plus text fields). Content-Type drives dispatch.","operationId":"image_edits_v3_images_edits_post","requestBody":{"content":{"application/json":{"schema":{"properties":{"routing":{"anyOf":[{"$ref":"#/components/schemas/ProviderRoutingPreferences"},{"type":"null"}],"description":"How to pick between the providers that serve the requested model. Applies when `model` is a model name with no provider prefix (e.g. 'gpt-5.5'); ignored for a concrete 'provider/model' id, which already names its provider. With model='@edenai' the platform chooses the model too: `quality_cost` steers that choice, and the provider fields apply whenever the chosen model is a provider-less name."},"model":{"type":"string","title":"Model","description":"provider/model, e.g. 'openai/gpt-image-2'"},"prompt":{"type":"string","maxLength":32000,"minLength":1,"title":"Prompt"},"n":{"anyOf":[{"type":"integer","maximum":10.0,"minimum":1.0},{"type":"null"}],"title":"N"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","description":"Provider-specific size string. OpenAI accepts '1024x1024', '1536x1024', '1024x1536', 'auto'. Vertex Imagen accepts square or aspect-ratio strings. Validation is delegated to the provider."},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User","description":"End-user identifier for abuse tracking."},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Arbitrary metadata attached to the request."},"extra_headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Extra Headers","description":"Additional HTTP headers forwarded to the provider API. Credential headers (Authorization, x-api-key, ...) are rejected."},"images":{"items":{"$ref":"#/components/schemas/ImageRef"},"type":"array","maxItems":16,"minItems":1,"title":"Images","description":"One or more input images. Each entry references one image via exactly one of `file_id` (an Eden upload id) or `image_url` (https URL or base64 data URL). The first image is the canvas; subsequent images are inpaint references."},"mask":{"anyOf":[{"$ref":"#/components/schemas/ImageRef"},{"type":"null"}],"description":"Optional mask image (PNG with transparent pixels marking the regions to edit). Same shape as an `images[]` entry."}},"additionalProperties":true,"type":"object","required":["model","prompt","images"],"title":"ImageEditJsonBody","description":"OpenAI-compatible ``POST /v1/images/edits`` JSON request body.\n\nReferences:\n- OpenAI's current /v1/images/edits JSON form for gpt-image-* takes\n ``images: [{file_id | image_url}, ...]`` and an optional ``mask:\n {file_id | image_url}``.\n- ``image_url`` accepts an https URL or a ``data:image/...;base64,...`` URL."}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageResponse"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/images/models":{"get":{"tags":["Images"],"summary":"List Image Models","description":"List image-generation / image-edit models available in the caller's region.","operationId":"list_image_models_v3_images_models_get","parameters":[{"name":"view","in":"query","required":false,"schema":{"enum":["endpoints","models"],"type":"string","description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider.","default":"endpoints","title":"View"},"description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ListModelsResponse"},{"$ref":"#/components/schemas/ListModelsWithEndpointsResponse"}],"title":"Response List Image Models V3 Images Models Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/audio/transcriptions":{"post":{"tags":["Audio"],"summary":"Audio Transcriptions","description":"OpenAI-compatible speech-to-text endpoint.\n\nAccepts either ``multipart/form-data`` (OpenAI SDK shape: a ``file`` upload\nplus text fields) or ``application/json`` (``file_id`` / ``file_url`` plus\ntext fields). Content-Type drives dispatch.","operationId":"audio_transcriptions_v3_audio_transcriptions_post","requestBody":{"content":{"application/json":{"schema":{"properties":{"routing":{"anyOf":[{"$ref":"#/components/schemas/ProviderRoutingPreferences"},{"type":"null"}],"description":"How to pick between the providers that serve the requested model. Applies when `model` is a model name with no provider prefix (e.g. 'gpt-5.5'); ignored for a concrete 'provider/model' id, which already names its provider. With model='@edenai' the platform chooses the model too: `quality_cost` steers that choice, and the provider fields apply whenever the chosen model is a provider-less name."},"model":{"type":"string","title":"Model","description":"provider/model, e.g. 'openai/whisper-1'"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language","description":"ISO-639-1 language code of the input audio (e.g. 'en'). Omit to let the provider auto-detect where supported."},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","description":"Optional text to guide the model's style or continue a prior audio segment's context."},"response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Format","description":"Transcript format: 'json', 'text', 'srt', 'verbose_json', or 'vtt'. Provider support varies; forwarded as-is."},"timestamp_granularities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Timestamp Granularities","description":"Timestamp granularities to populate with 'verbose_json' (['word'] and/or ['segment'])."},"temperature":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Temperature","description":"Sampling temperature between 0 and 1."},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User","description":"End-user identifier for abuse tracking."},"file_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Id","description":"Id of a file previously uploaded to Eden AI."},"file_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Url","description":"An https URL or a base64 data URL pointing at the audio."}},"type":"object","required":["model"],"title":"TranscriptionJsonBody","description":"JSON request body, references the audio by ``file_id`` or ``file_url``.\n\nExactly one of ``file_id`` (an Eden upload id) or ``file_url`` (an https URL\nor a ``data:audio/...;base64,...`` URL) must be set."}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptionResponse"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/audio/transcriptions/models":{"get":{"tags":["Audio"],"summary":"List Transcription Models","description":"List speech-to-text models available in the caller's region.","operationId":"list_transcription_models_v3_audio_transcriptions_models_get","parameters":[{"name":"view","in":"query","required":false,"schema":{"enum":["endpoints","models"],"type":"string","description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider.","default":"endpoints","title":"View"},"description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ListModelsResponse"},{"$ref":"#/components/schemas/ListModelsWithEndpointsResponse"}],"title":"Response List Transcription Models V3 Audio Transcriptions Models Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/audio/speech":{"post":{"tags":["Audio"],"summary":"Audio Speech","description":"OpenAI-compatible text-to-speech endpoint.\n\nAccepts a JSON body (``model``, ``input``, ``voice`` plus optional\n``response_format`` / ``speed`` / ``instructions``) and returns raw audio\nbytes; ``cost`` and ``provider`` are returned in the ``x-edenai-*`` response\nheaders.","operationId":"audio_speech_v3_audio_speech_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SpeechBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}},"audio/mpeg":{"schema":{"type":"string","format":"binary"}},"audio/ogg":{"schema":{"type":"string","format":"binary"}},"audio/aac":{"schema":{"type":"string","format":"binary"}},"audio/flac":{"schema":{"type":"string","format":"binary"}},"audio/wav":{"schema":{"type":"string","format":"binary"}},"audio/pcm":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/audio/speech/models":{"get":{"tags":["Audio"],"summary":"List Speech Models","description":"List text-to-speech models available in the caller's region.","operationId":"list_speech_models_v3_audio_speech_models_get","parameters":[{"name":"view","in":"query","required":false,"schema":{"enum":["endpoints","models"],"type":"string","description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider.","default":"endpoints","title":"View"},"description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ListModelsResponse"},{"$ref":"#/components/schemas/ListModelsWithEndpointsResponse"}],"title":"Response List Speech Models V3 Audio Speech Models Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/models":{"get":{"tags":["Models"],"summary":"List Models","description":"List available LLM models with extended metadata.\n\nThe default is deliberately today's payload: routing by model name is additive, so a client\nthat has never heard of `view` must keep getting exactly what it got before.","operationId":"list_models_v3_models_get","parameters":[{"name":"view","in":"query","required":false,"schema":{"enum":["endpoints","models"],"type":"string","description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider.","default":"endpoints","title":"View"},"description":"How to group the listing. 'endpoints' (default) is one entry per provider/model id, unchanged. 'models' is one entry per routable model name with its provider endpoints nested underneath — send that name as `model` to let Eden AI choose the provider."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ListModelsResponse"},{"$ref":"#/components/schemas/ListModelsWithEndpointsResponse"}],"title":"Response List Models V3 Models Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/universal-ai":{"post":{"tags":["universal-ai"],"summary":"Universal Ai","description":"Universal AI endpoint for synchronous non-LLM AI features.\n\nModel format: feature/subfeature/provider[/model]\n\nSupported features:\n- text/ai_detection, text/moderation, etc.\n- ocr/ocr, ocr/identity_parser, etc.\n- image/generation, image/background_removal, etc.\n\nFor async features (e.g., audio/speech_to_text_async), use POST /v3/universal-ai/async.\n\nRequest body:\n- model: Model string in format feature/subfeature/provider[/model]\n- input: Feature-specific input parameters\n- fallbacks: Optional list of fallback provider strings (max 3)\n- provider_params: Optional provider-specific parameters\n- show_original_response: Include raw provider response (default: false)\n\nExample:\n```json\n{\n \"model\": \"text/ai_detection/openai/gpt-4\",\n \"input\": {\"text\": \"Analyze this text\"}\n}\n```","operationId":"universal_ai_v3_universal_ai_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniversalAIBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniversalAIResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AuthBearer":[]}]}},"/v3/universal-ai/async":{"post":{"tags":["universal-ai","universal-ai"],"summary":"Create Async Job","description":"Create an async job for long-running AI operations.\n\nModel format: feature/subfeature/provider[/model]\n\nSupported async features:\n- audio/speech_to_text_async\n\nRequest body:\n- model: Model string in format feature/subfeature/provider[/model]\n- input: Feature-specific input parameters\n- fallbacks: Optional list of fallback provider strings (max 3)\n- webhook_receiver: Optional URL to receive job completion notification\n- user_webhook_parameters: Optional custom parameters for webhook payload\n\nReturns 202 Accepted with job info for polling.","operationId":"create_async_job_v3_universal_ai_async_post","security":[{"AuthBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniversalAIAsyncBody"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniversalAIAsyncResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["universal-ai","universal-ai"],"summary":"List Async Jobs","description":"List async jobs for the authenticated user.","operationId":"list_async_jobs_v3_universal_ai_async_get","security":[{"AuthBearer":[]}],"parameters":[{"name":"feature","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by feature","title":"Feature"},"description":"Filter by feature"},{"name":"subfeature","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by subfeature","title":"Subfeature"},"description":"Filter by subfeature"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum number of items per page","default":100,"title":"Limit"},"description":"Maximum number of items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniversalAIAsyncJobListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/universal-ai/async/{job_id}":{"get":{"tags":["universal-ai","universal-ai"],"summary":"Get Async Job","description":"Get details for a specific async job.","operationId":"get_async_job_v3_universal_ai_async__job_id__get","security":[{"AuthBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniversalAIAsyncResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["universal-ai","universal-ai"],"summary":"Delete Async Job","description":"Delete an async job. Users can only delete their own jobs.\n\nA job that is still ``processing`` cannot be deleted (409): it has a charged\nprovider job in flight that must complete — settling or refunding — first;\nhard-deleting it would orphan that charge. Terminal jobs delete normally.","operationId":"delete_async_job_v3_universal_ai_async__job_id__delete","security":[{"AuthBearer":[]}],"parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Async Job V3 Universal Ai Async Job Id Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/universal-ai/collections":{"post":{"tags":["collections"],"summary":"Create Collection","description":"Create a collection on a provider.\n\nThe model string is fixed at creation: items added here and\n/v3/universal-ai calls against this collection all run on its provider.\nReturns the collection id to use in item operations and inference calls.","operationId":"create_collection_v3_universal_ai_collections_post","security":[{"AuthBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCollectionRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["collections"],"summary":"List Collections","description":"List the user's collections.\n\nServed from the gateway's ownership store, never from a provider scan\n(the provider listing is cross-tenant on shared accounts). Free, and —\nlike the other gateway resource reads — not registered in the request\nhistory.","operationId":"list_collections_v3_universal_ai_collections_get","security":[{"AuthBearer":[]}],"parameters":[{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by 'feature/subfeature' or 'feature/subfeature/provider'","title":"Model"},"description":"Filter by 'feature/subfeature' or 'feature/subfeature/provider'"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-indexed)","default":1,"title":"Page"},"description":"Page number (1-indexed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum number of items per page","default":100,"title":"Limit"},"description":"Maximum number of items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCollectionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v3/universal-ai/collections/{collection_id}":{"get":{"tags":["collections"],"summary":"Get Collection","description":"Get one of the user's collections. Free, gateway-side only, and — like\nthe other gateway resource reads — not registered in the request history.","operationId":"get_collection_v3_universal_ai_collections__collection_id__get","security":[{"AuthBearer":[]}],"parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Collection Id"}}],"responses":{"2
# --- truncated at 32 KB (124 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eden-ai/refs/heads/main/openapi/_original/eden-ai-v3-openapi.json