QuantCDN AI Inference API

Chat inference, embeddings, and image generation services

Operations 6

POST /api/v3/organizations/{organisation}/ai/chat Chat inference via API Gateway (buffered responses) with multimodal support #
POST /api/v3/organizations/{organisation}/ai/chat/stream Chat inference via streaming endpoint (true HTTP streaming) with multimodal support #
POST /api/v3/organizations/{organisation}/ai/embeddings Generate text embeddings for semantic search and RAG applications #
POST /api/v3/organizations/{organisation}/ai/image-generation Generate images with Amazon Nova Canvas #
GET /api/v3/organizations/{organisation}/ai/chat/executions/{identifier} Get Durable Execution Status #
POST /api/v3/organizations/{organisation}/ai/chat/callback Submit Client Tool Results (Callback) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/quantcdn-ai-inference-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

quantcdn-ai-inference-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Unified API for QuantCDN Admin and QuantCloud Platform services
  title: QuantCDN AI Agents AI Inference API
  version: 4.15.8
servers:
- description: QuantCDN Public Cloud
  url: https://dashboard.quantcdn.io
- description: QuantGov Cloud
  url: https://dash.quantgov.cloud
security:
- BearerAuth: []
tags:
- description: Chat inference, embeddings, and image generation services
  name: AI Inference
paths:
  /api/v3/organizations/{organisation}/ai/chat:
    post:
      description: "Sends requests to the AI API Gateway endpoint which buffers responses. Supports text, images, videos, and documents via base64 encoding.\n     *\n     * **Execution Modes:**\n     * - **Sync Mode** (default): Standard JSON response, waits for completion (200 response)\n     * - **Async Mode**: Set `async: true` for long-running tasks with polling (202 response)\n     *\n     * **Async/Durable Mode (`async: true`):**\n     * - Returns immediately with `requestId` and `pollUrl` (HTTP 202)\n     * - Uses AWS Lambda Durable Functions for long-running inference\n     * - Supports client-executed tools via `waiting_callback` state\n     * - Poll `/ai/chat/executions/{requestId}` for status\n     * - Submit client tool results via `/ai/chat/callback`\n     * - Ideal for complex prompts, large contexts, or client-side tools\n     *\n     * **Multimodal Support:**\n     * - **Text**: Simple string content\n     * - **Images**: Base64-encoded PNG, JPEG, GIF, WebP (up to 25MB)\n     * - **Videos**: Base64-encoded MP4, MOV, WebM, etc. (up to 25MB)\n     * - **Documents**: Base64-encoded PDF, DOCX, CSV, etc. (up to 25MB)\n     *\n     * **Supported Models (Multimodal):**\n     * - **Claude 4.5 Series**: Sonnet 4.5, Haiku 4.5, Opus 4.5 (images, up to 20 per request)\n     * - **Claude 3.5 Series**: Sonnet v1/v2 (images, up to 20 per request)\n     * - **Amazon Nova**: Lite, Pro, Micro (images, videos, documents)\n     *\n     * **Usage Tips:**\n     * - Use base64 encoding for images/videos < 5-10MB\n     * - Place media before text prompts for best results\n     * - Label multiple media files (e.g., 'Image 1:', 'Image 2:')\n     * - Maximum 25MB total payload size\n     *\n     * **Response Patterns:**\n     * - **Text-only**: Returns simple text response when no tools requested\n     * - **Single tool**: Returns `toolUse` object when AI requests one tool\n     * - **Multiple tools**: Returns `toolUse` array when AI requests multiple tools\n     * - **Auto-execute sync**: Automatically executes tool and returns final text response\n     * - **Auto-execute async**: Returns toolUse with `executionId` and `status` for polling"
      operationId: chatInference
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chatInference_request'
        description: Chat request with optional multimodal content blocks
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                response:
                  role: assistant
                  content: The capital of Australia is Canberra.
                model: amazon.nova-lite-v1:0
                requestId: req-abc123
                finishReason: stop
                usage:
                  inputTokens: 12
                  outputTokens: 8
                  totalTokens: 20
                  costCents: 0.18
              schema:
                $ref: '#/components/schemas/chatInference_200_response'
          description: Chat inference completed (buffered response, sync mode)
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chatInference_202_response'
          description: 'Async execution started (when `async: true` in request)'
        '500':
          description: Failed to perform chat inference
      summary: Chat inference via API Gateway (buffered responses) with multimodal support
      tags:
      - AI Inference
  /api/v3/organizations/{organisation}/ai/chat/stream:
    post:
      description: "Streams responses from the AI streaming subdomain using Server-Sent Events (SSE). Tokens are streamed in real-time as they are generated.\n     *\n     * **Execution Modes:**\n     * - **Streaming Mode** (default): Real-time SSE token-by-token responses\n     * - **Async Mode**: Set `async: true` for long-running tasks with polling (202 response)\n     *\n     * **Async/Durable Mode (`async: true`):**\n     * - Returns immediately with `requestId` and `pollUrl` (HTTP 202)\n     * - Uses AWS Lambda Durable Functions for long-running inference\n     * - Supports client-executed tools via `waiting_callback` state\n     * - Poll `/ai/chat/executions/{requestId}` for status\n     * - Submit client tool results via `/ai/chat/callback`\n     *\n     * **Multimodal Support:**\n     * - **Text**: Simple string content\n     * - **Images**: Base64-encoded PNG, JPEG, GIF, WebP (up to 25MB)\n     * - **Videos**: Base64-encoded MP4, MOV, WebM, etc. (up to 25MB)\n     * - **Documents**: Base64-encoded PDF, DOCX, CSV, etc. (up to 25MB)\n     *\n     * **Supported Models (Multimodal):**\n     * - **Claude 4.5 Series**: Sonnet 4.5, Haiku 4.5, Opus 4.5 (images, up to 20 per request)\n     * - **Claude 3.5 Series**: Sonnet v1/v2 (images, up to 20 per request)\n     * - **Amazon Nova**: Lite, Pro, Micro (images, videos, documents)\n     *\n     * **Usage Tips:**\n     * - Use base64 encoding for images/videos < 5-10MB\n     * - Place media before text prompts for best results\n     * - Label multiple media files (e.g., 'Image 1:', 'Image 2:')\n     * - Maximum 25MB total payload size\n     * - Streaming works with all content types (text, image, video, document)"
      operationId: chatInferenceStream
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/chatInferenceStream_request'
        description: Chat request with optional multimodal content blocks
        required: true
      responses:
        '200':
          content:
            text/event-stream:
              example: 'id: chunk-0

                event: start

                data: {"requestId":"abc123","model":"amazon.nova-lite-v1:0","streaming":true}


                id: chunk-1

                event: content

                data: {"delta":"Hello","complete":false}


                id: chunk-2

                event: content

                data: {"delta":" there!","complete":false}


                id: chunk-3

                event: done

                data: {"complete":true,"usage":{"inputTokens":8,"outputTokens":15,"totalTokens":23}}'
              schema:
                description: 'Server-Sent Events stream with chunks of generated text. Format: id, event, data lines separated by newlines.'
                type: string
          description: Streaming response (text/event-stream, sync mode)
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/chatInference_202_response'
          description: 'Async execution started (when `async: true` in request)'
        '500':
          description: Failed to perform streaming inference
      summary: Chat inference via streaming endpoint (true HTTP streaming) with multimodal support
      tags:
      - AI Inference
  /api/v3/organizations/{organisation}/ai/embeddings:
    post:
      description: "Generates vector embeddings for text content using embedding models. Used for semantic search, document similarity, and RAG applications.\n     *\n     * **Features:**\n     * - Single text or batch processing (up to 100 texts)\n     * - Configurable dimensions (256, 512, 1024, 8192 for Titan v2)\n     * - Optional normalization to unit length\n     * - Usage tracking for billing\n     *\n     * **Use Cases:**\n     * - Semantic search across documents\n     * - Similarity matching for content recommendations\n     * - RAG (Retrieval-Augmented Generation) pipelines\n     * - Clustering and classification\n     *\n     * **Available Embedding Models:**\n     * - amazon.titan-embed-text-v2:0 (default, supports 256-8192 dimensions)\n     * - amazon.titan-embed-text-v1:0 (1536 dimensions fixed)"
      operationId: embeddings
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            example:
              input: The Australian government announced new climate policy
              modelId: amazon.titan-embed-text-v2:0
              dimensions: 1024
              normalize: true
            schema:
              $ref: '#/components/schemas/embeddings_request'
        description: Embedding request with single or multiple texts
        required: true
      responses:
        '200':
          content:
            application/json:
              example:
                embeddings:
                - 0.0215
                - 0.0008
                - 0.0312
                - -0.0087
                - 0.0273
                model: amazon.titan-embed-text-v2:0
                dimension: 1024
                usage:
                  inputTokens: 8
                  totalTokens: 8
              schema:
                $ref: '#/components/schemas/embeddings_200_response'
          description: Embeddings generated successfully
        '400':
          description: Invalid request parameters
        '403':
          description: Access denied
        '500':
          description: Failed to generate embeddings
      summary: Generate text embeddings for semantic search and RAG applications
      tags:
      - AI Inference
  /api/v3/organizations/{organisation}/ai/image-generation:
    post:
      description: "Generates images using Amazon Nova Canvas image generation model.\n     *\n     * **Region Restriction:** Nova Canvas is ONLY available in:\n     * - `us-east-1` (US East, N. Virginia)\n     * - `ap-northeast-1` (Asia Pacific, Tokyo)\n     * - `eu-west-1` (Europe, Ireland)\n     * ❌ NOT available in `ap-southeast-2` (Sydney)\n     *\n     * **Supported Task Types:**\n     * - **TEXT_IMAGE**: Basic text-to-image generation\n     * - **TEXT_IMAGE with Conditioning**: Layout-guided generation using edge detection or segmentation\n     * - **COLOR_GUIDED_GENERATION**: Generate images with specific color palettes\n     * - **IMAGE_VARIATION**: Create variations of existing images\n     * - **INPAINTING**: Fill masked areas in images\n     * - **OUTPAINTING**: Extend images beyond their borders\n     * - **BACKGROUND_REMOVAL**: Remove backgrounds from images\n     * - **VIRTUAL_TRY_ON**: Try on garments/objects on people\n     *\n     * **Quality Options:**\n     * - **standard**: Faster generation, lower cost\n     * - **premium**: Higher quality, slower generation\n     *\n     * **Timeout:** Image generation can take up to 5 minutes"
      operationId: imageGeneration
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            example:
              taskType: TEXT_IMAGE
              textToImageParams:
                text: A serene mountain landscape at sunset with snow-capped peaks
                negativeText: blurry, low quality, distorted
                style: PHOTOREALISM
              imageGenerationConfig:
                width: 1024
                height: 1024
                quality: premium
                numberOfImages: 1
                cfgScale: 7
              region: us-east-1
            schema:
              $ref: '#/components/schemas/imageGeneration_request'
        description: Image generation request
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/imageGeneration_200_response'
          description: Image(s) generated successfully
        '400':
          description: Invalid request parameters
        '403':
          description: Access denied
        '500':
          description: Failed to generate images
      summary: Generate images with Amazon Nova Canvas
      tags:
      - AI Inference
  /api/v3/organizations/{organisation}/ai/chat/executions/{identifier}:
    get:
      description: "Poll the status of an async/durable chat execution.\n     *\n     * **When to use:** After starting chat inference with `async: true`, poll this endpoint\n     * to check execution status and retrieve results when complete.\n     *\n     * **Identifier:** Accepts either:\n     * - `requestId` (recommended): The short ID returned from the async request\n     * - `executionArn`: The full AWS Lambda durable execution ARN (must be URL-encoded)\n     *\n     * **Statuses:**\n     * - `pending`: Execution is starting (retry shortly)\n     * - `running`: Execution is in progress\n     * - `waiting_callback`: Execution paused, waiting for client tool results\n     * - `complete`: Execution finished successfully\n     * - `failed`: Execution failed with error\n     *\n     * **Client Tool Callback:**\n     * When status is `waiting_callback`, submit tool results via `POST /ai/chat/callback`.\n     *\n     * **Polling Recommendations:**\n     * - Start with 1 second delay, exponential backoff up to 30 seconds\n     * - Stop polling after 15 minutes (consider failed)"
      operationId: getDurableExecutionStatus
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      - description: Either the requestId from async response, or full executionArn (URL-encoded)
        example: XkdVWiEfSwMEPrw=
        explode: false
        in: path
        name: identifier
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getDurableExecutionStatus_200_response'
          description: Execution status retrieved
        '404':
          description: Execution not found
        '403':
          description: Access denied
        '500':
          description: Failed to retrieve execution status
      summary: Get Durable Execution Status
      tags:
      - AI Inference
  /api/v3/organizations/{organisation}/ai/chat/callback:
    post:
      description: "Submit tool execution results to resume a suspended durable execution.\n     *\n     * **When to use:** When polling the execution status returns `waiting_callback`, use this endpoint\n     * to submit the results of client-executed tools. The execution will then resume.\n     *\n     * **Flow:**\n     * 1. Start async chat with client-executed tools (`autoExecute: []` or tools not in autoExecute list)\n     * 2. Poll status until `waiting_callback`\n     * 3. Execute tools locally using `pendingTools` from status response\n     * 4. Submit results here with the `callbackId`\n     * 5. Poll status until `complete`\n     *\n     * **Important:** Each `callbackId` can only be used once. After submission, poll the execution\n     * status to see the updated state."
      operationId: submitToolCallback
      parameters:
      - description: The organisation ID
        explode: false
        in: path
        name: organisation
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/submitToolCallback_request'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/submitToolCallback_200_response'
          description: Callback submitted successfully, execution will resume
        '400':
          description: Invalid request (missing callbackId or toolResults)
        '404':
          description: Callback not found or already processed
        '403':
          description: Access denied
        '500':
          description: Failed to submit callback
      summary: Submit Client Tool Results (Callback)
      tags:
      - AI Inference
components:
  schemas:
    submitToolCallback_request:
      properties:
        callbackId:
          description: The callbackId from the waiting_callback status response
          example: Ab9hZXi/YXJuOmF3czpsYW1iZGE...
          type: string
        toolResults:
          description: Results of client-executed tools
          items:
            $ref: '#/components/schemas/submitToolCallback_request_toolResults_inner'
          type: array
      required:
      - callbackId
      - toolResults
      type: object
    chatInference_request:
      properties:
        messages:
          description: Array of chat messages. Content can be a simple string or an array of content blocks for multimodal input.
          items:
            $ref: '#/components/schemas/chatInference_request_messages_inner'
          minItems: 1
          type: array
        modelId:
          description: Model ID. Use Nova models for multimodal support.
          example: amazon.nova-lite-v1:0
          type: string
        temperature:
          default: 0.7
          maximum: 2
          minimum: 0
          type: number
        maxTokens:
          default: 4096
          description: Max tokens. Claude 4.5 supports up to 64k.
          maximum: 65536
          minimum: 1
          type: integer
        topP:
          maximum: 1
          minimum: 0
          type: number
        stream:
          description: Ignored in buffered mode, always returns complete response
          type: boolean
        systemPrompt:
          description: Optional custom system prompt. When tools are enabled, this is prepended with tool usage guidance.
          type: string
        stopSequences:
          description: Custom stop sequences
          items:
            type: string
          maxItems: 4
          type: array
        responseFormat:
          $ref: '#/components/schemas/chatInference_request_responseFormat'
        toolConfig:
          $ref: '#/components/schemas/chatInference_request_toolConfig'
        sessionId:
          description: Optional session ID for conversation continuity. Omit to use stateless mode, include to continue an existing session.
          format: uuid
          type: string
        async:
          default: false
          description: Enable async/durable execution mode. When true, returns 202 with pollUrl instead of waiting for completion. Use for long-running inference, client-executed tools, or operations >30 seconds.
          type: boolean
        allowedTools:
          description: Top-level convenience alias for toolConfig.allowedTools. Whitelists which tools can be auto-executed.
          example:
          - get_weather
          - generate_image
          items:
            type: string
          type: array
        guardrails:
          $ref: '#/components/schemas/chatInference_request_guardrails'
        longContext:
          default: false
          description: Enable 1M context window support regardless of token estimation. Use when sending large payloads (>200K tokens).
          type: boolean
      required:
      - messages
      - modelId
      type: object
    chatInference_200_response_response_toolUse_oneOf_result:
      description: Tool execution result (only present when status='complete' for sync auto-executed tools). For async tools, poll /tools/executions/{executionId}
      example:
        s3Urls:
        - s3Urls
        - s3Urls
        images:
        - images
        - images
      properties:
        images:
          description: Base64 data URIs for images
          items:
            type: string
          type: array
        s3Urls:
          description: Signed S3 URLs for downloads
          items:
            type: string
          type: array
      type: object
    chatInference_request_messages_inner_content:
      example: What is the capital of Australia?
      oneOf:
      - description: Simple text message
        type: string
      - description: Multimodal content blocks (text, image, video, document)
        items:
          $ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner'
        type: array
    submitToolCallback_request_toolResults_inner:
      properties:
        toolUseId:
          description: The toolUseId from pendingTools
          example: toolu_bdrk_012KTC8NCG...
          type: string
        result:
          description: The result of executing the tool
          example:
            temperature: 24C
            conditions: Sunny
          type: object
      required:
      - result
      - toolUseId
      type: object
    getDurableExecutionStatus_200_response_result:
      description: Present when status is complete
      example:
        response:
          role: assistant
          content: The weather in Sydney is sunny.
        usage:
          costCents: 5.962134
          inputTokens: 0
          outputTokens: 6
          totalTokens: 1
        toolExecutions:
        - '{}'
        - '{}'
      properties:
        response:
          $ref: '#/components/schemas/getDurableExecutionStatus_200_response_result_response'
        usage:
          $ref: '#/components/schemas/getDurableExecutionStatus_200_response_result_usage'
        toolExecutions:
          items:
            type: object
          type: array
      type: object
    getDurableExecutionStatus_200_response_result_response:
      example:
        role: assistant
        content: The weather in Sydney is sunny.
      properties:
        role:
          example: assistant
          type: string
        content:
          example: The weather in Sydney is sunny.
          type: string
      type: object
    chatInference_request_toolConfig_tools_inner_toolSpec:
      properties:
        name:
          type: string
        description:
          type: string
        inputSchema:
          $ref: '#/components/schemas/chatInference_request_toolConfig_tools_inner_toolSpec_inputSchema'
      type: object
    chatInference_request_messages_inner:
      properties:
        role:
          enum:
          - user
          - assistant
          - system
          type: string
        content:
          $ref: '#/components/schemas/chatInference_request_messages_inner_content'
      required:
      - content
      - role
      type: object
    chatInference_request_messages_inner_content_oneOf_inner_oneOf_1_image_source:
      properties:
        bytes:
          description: Base64-encoded image data
          format: byte
          type: string
      required:
      - bytes
      type: object
    chatInference_request_messages_inner_content_oneOf_inner_oneOf:
      properties:
        text:
          example: What's in this image?
          type: string
      required:
      - text
      type: object
    chatInference_200_response_response:
      description: Assistant's response message. May contain text content and/or tool use requests.
      example:
        role: assistant
        toolUse:
          result:
            s3Urls:
            - s3Urls
            - s3Urls
            images:
            - images
            - images
          input:
            location: Sydney
          executionId: exec_abc123def456
          name: get_weather
          toolUseId: abc123
          status: pending
        content: I'll help you with that.
      properties:
        role:
          enum:
          - assistant
          example: assistant
          type: string
        content:
          description: Text response content
          example: I'll help you with that.
          type: string
        toolUse:
          $ref: '#/components/schemas/chatInference_200_response_response_toolUse'
      type: object
    imageGeneration_request_inPaintingParams:
      description: Parameters for INPAINTING task
      properties:
        image:
          format: byte
          type: string
        maskImage:
          format: byte
          type: string
        maskPrompt:
          type: string
        text:
          maxLength: 1024
          minLength: 1
          type: string
        negativeText:
          type: string
      type: object
    chatInference_request_messages_inner_content_oneOf_inner_oneOf_2:
      properties:
        video:
          $ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner_oneOf_2_video'
      required:
      - video
      type: object
    imageGeneration_200_response:
      example:
        images:
        - images
        - images
        error: error
        maskImage: maskImage
      properties:
        images:
          description: Array of base64-encoded generated images
          items:
            format: byte
            type: string
          type: array
        maskImage:
          description: Base64-encoded mask image (for virtual try-on)
          format: byte
          type: string
        error:
          description: Error message if any images were blocked by content moderation
          type: string
      required:
      - images
      type: object
    chatInference_request_responseFormat:
      description: Structured JSON output (Claude 3.5 Sonnet v1/v2, Nova Pro)
      properties:
        type:
          enum:
          - json
          type: string
        jsonSchema:
          description: JSON Schema defining expected structure
          type: object
      type: object
    embeddings_request:
      properties:
        input:
          $ref: '#/components/schemas/embeddings_request_input'
        modelId:
          default: amazon.titan-embed-text-v2:0
          description: Embedding model to use
          example: amazon.titan-embed-text-v2:0
          type: string
        dimensions:
          default: 1024
          description: 'Output embedding dimensions. Titan v2 supports: 256, 512, 1024, 8192'
          enum:
          - 256
          - 512
          - 1024
          - 8192
          example: 1024
          type: integer
        normalize:
          default: true
          description: Normalize embeddings to unit length (magnitude = 1.0)
          example: true
          type: boolean
      required:
      - input
      type: object
    imageGeneration_request_colorGuidedGenerationParams:
      description: Parameters for COLOR_GUIDED_GENERATION task
      properties:
        colors:
          items:
            pattern: ^#[0-9A-Fa-f]{6}$
            type: string
          maxItems: 10
          minItems: 1
          type: array
        referenceImage:
          format: byte
          type: string
        text:
          maxLength: 1024
          minLength: 1
          type: string
        negativeText:
          maxLength: 1024
          minLength: 1
          type: string
      type: object
    embeddings_200_response:
      example:
        embeddings:
        - 0.8008282
        - 0.8008282
        usage:
          inputTokens: 6
          totalTokens: 1
        model: amazon.titan-embed-text-v2:0
        dimension: 1024
      properties:
        embeddings:
          $ref: '#/components/schemas/embeddings_200_response_embeddings'
        model:
          description: Model used to generate embeddings
          example: amazon.titan-embed-text-v2:0
          type: string
        dimension:
          description: Dimensionality of each embedding vector
          example: 1024
          type: integer
        usage:
          $ref: '#/components/schemas/embeddings_200_response_usage'
      required:
      - dimension
      - embeddings
      - model
      - usage
      type: object
    imageGeneration_request_backgroundRemovalParams:
      description: Parameters for BACKGROUND_REMOVAL task
      properties:
        image:
          format: byte
          type: string
      type: object
    chatInference_request_guardrails:
      description: AWS Bedrock guardrails configuration for content filtering and safety.
      properties:
        guardrailIdentifier:
          description: Guardrail identifier from AWS Bedrock
          type: string
        guardrailVersion:
          description: Guardrail version
          type: string
        trace:
          description: Enable guardrail trace output
          enum:
          - enabled
          - disabled
          type: string
      type: object
    chatInference_200_response_response_toolUse_oneOf:
      description: Single tool request
      example:
        result:
          s3Urls:
          - s3Urls
          - s3Urls
          images:
          - images
          - images
        input:
          location: Sydney
        executionId: exec_abc123def456
        name: get_weather
        toolUseId: abc123
        status: pending
      properties:
        toolUseId:
          example: abc123
          type: string
        name:
          example: get_weather
          type: string
        input:
          example:
            location: Sydney
          type: object
        executionId:
          description: Present for async tools with autoExecute
          example: exec_abc123def456
          type: string
        status:
          description: Execution status (pending/running/complete/failed) - present for async tools with autoExecute
          example: pending
          type: string
        result:
          $ref: '#/components/schemas/chatInference_200_response_response_toolUse_oneOf_result'
      type: object
    chatInference_202_response:
      example:
        requestId: XkdVWiEfSwMEPrw=
        pollUrl: /ai/chat/executions/XkdVWiEfSwMEPrw%3D
        sessionId: session-1769056496430
        message: Execution started. Poll the status endpoint for updates.
        status: queued
      properties:
        requestId:
          description: Unique request identifier for polling
          example: XkdVWiEfSwMEPrw=
          type: string
        sessionId:
          description: Session ID for conversation continuity
          example: session-1769056496430
          type: string
        status:
          description: Initial execution status
          enum:
          - queued
          example: queued
          type: string
        message:
          description: Human-readable status message
          example: Execution started. Poll the status endpoint for updates.
          type: string
        pollUrl:
          description: URL to poll for execution status
          example: /ai/chat/executions/XkdVWiEfSwMEPrw%3D
          type: string
      required:
      - pollUrl
      - requestId
      - status
      type: object
    chatInferenceStream_request:
      properties:
        messages:
          description: Array of chat messages. Content can be a simple string or an array of content blocks for multimodal input.
          items:
            $ref: '#/components/schemas/chatInferenceStream_request_messages_inner'
          minItems: 1
          type: array
        modelId:
          description: Model ID. Use Nova models for multimodal support.
          example: amazon.nova-lite-v1:0
          type: string
        temperature:
          default: 0.7
          maximum: 2
          minimum: 0
          type: number
        maxTokens:
          default: 4096
          description: Max tokens. Claude 4.5 supports up to 64k.
          maximum: 65536
          minimum: 1
          type: integer
        topP:
          maximum: 1
          minimum: 0
          type: number
        systemPrompt:
          description: Optional custom system prompt. When tools are enabled, this is prepended with tool usage guidance.
          type: string
        stopSequences:
          description: Custom stop sequences

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/quantcdn/refs/heads/main/openapi/quantcdn-ai-inference-api-openapi.yml