QuantCDN AI Inference API
Chat inference, embeddings, and image generation services
Documentation
Documentation
https://docs.quantcdn.io/
GettingStarted
https://docs.quantcdn.io/api/get-started-content/
Chat inference, embeddings, and image generation services
openapi: 3.0.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:
chatInference_request_toolConfig:
description: Function calling configuration (Claude 3+, Nova Pro)
properties:
tools:
items:
$ref: '#/components/schemas/chatInference_request_toolConfig_tools_inner'
type: array
autoExecute:
default: false
description: 'When true, backend automatically executes tools and feeds results back to AI. For async tools (e.g., image generation), returns executionId for polling. Security: Use allowedTools to whitelist which tools can auto-execute.'
type: boolean
allowedTools:
description: 'Whitelist of tool names that can be auto-executed. Required when autoExecute is true for security. Example: [''get_weather'', ''generate_image'']'
items:
type: string
type: array
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
chatInference_200_response:
example:
response:
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.
requestId: req-abc123
usage:
costCents: 0.42
inputTokens: 25
outputTokens: 150
totalTokens: 175
finishReason: stop
model: amazon.nova-pro-v1:0
properties:
response:
$ref: '#/components/schemas/chatInference_200_response_response'
model:
description: Model used for generation
example: amazon.nova-pro-v1:0
type: string
requestId:
description: Unique request identifier
example: req-abc123
type: string
finishReason:
description: Why the model stopped generating
enum:
- stop
- length
- content_filter
- tool_use
type: string
usage:
$ref: '#/components/schemas/chatInference_200_response_usage'
type: object
getDurableExecutionStatus_200_response_error:
description: Present when status is failed
example:
ErrorType: ErrorType
ErrorMessage: ErrorMessage
properties:
ErrorMessage:
type: string
ErrorType:
type: string
type: object
embeddings_200_response_embeddings:
description: Vector embeddings for the input text(s). Single array for string input, array of arrays for batch input.
oneOf:
- description: Single embedding vector if input was a string
items:
format: float
type: number
type: array
- description: Array of embedding vectors if input was an array
items:
items:
format: float
type: number
type: array
type: array
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
imageGeneration_request_imageVariationParams:
description: Parameters for IMAGE_VARIATION task
properties:
images:
items:
format: byte
type: string
maxItems: 5
minItems: 1
type: array
similarityStrength:
format: float
maximum: 1
minimum: 0.2
type: number
text:
maxLength: 1024
minLength: 1
type: string
negativeText:
maxLength: 1024
minLength: 1
type: string
type: object
chatInferenceStream_request_messages_inner_content:
example: What is the capital of Australia?
oneOf:
- description: Simple text message
type: string
- description: Multimodal content blocks
items:
description: Text, image, video, or document block
type: object
type: array
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:
- $ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner_oneOf'
- $ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner_oneOf_1'
- $ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner_oneOf_2'
- $ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner_oneOf_3'
chatInference_request_messages_inner_content_oneOf_inner_oneOf_2_video:
properties:
format:
enum:
- mp4
- mov
- mkv
- webm
type: string
source:
$ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner_oneOf_2_video_source'
required:
- format
- source
type: object
chatInference_request_messages_inner_content_oneOf_inner_oneOf_3_document_source:
properties:
bytes:
description: Base64-encoded document data
format: byte
type: string
required:
- bytes
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_content_oneOf_inner_oneOf_2_video_source:
properties:
bytes:
description: Base64-encoded video data
format: byte
type: string
required:
- bytes
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
imageGeneration_request_textToImageParams:
description: Parameters for TEXT_IMAGE task
properties:
text:
description: Text prompt
maxLength: 1024
minLength: 1
type: string
negativeText:
description: What NOT to include
maxLength: 1024
minLength: 1
type: string
style:
enum:
- 3D_ANIMATED_FAMILY_FILM
- DESIGN_SKETCH
- FLAT_VECTOR_ILLUSTRATION
- GRAPHIC_NOVEL_ILLUSTRATION
- MAXIMALISM
- MIDCENTURY_RETRO
- PHOTOREALISM
- SOFT_DIGITAL_PAINTING
type: string
conditionImage:
description: Base64-encoded conditioning image
format: byte
type: string
controlMode:
default: CANNY_EDGE
enum:
- CANNY_EDGE
- SEGMENTATION
type: string
controlStrength:
default: 0.7
format: float
maximum: 1
minimum: 0
type: number
type: object
imageGeneration_request:
properties:
modelId:
default: amazon.nova-canvas-v1:0
description: Model to use for image generation
type: string
taskType:
description: Type of image generation task
enum:
- TEXT_IMAGE
- COLOR_GUIDED_GENERATION
- IMAGE_VARIATION
- INPAINTING
- OUTPAINTING
- BACKGROUND_REMOVAL
- VIRTUAL_TRY_ON
type: string
textToImageParams:
$ref: '#/components/schemas/imageGeneration_request_textToImageParams'
colorGuidedGenerationParams:
$ref: '#/components/schemas/imageGeneration_request_colorGuidedGenerationParams'
imageVariationParams:
$ref: '#/components/schemas/imageGeneration_request_imageVariationParams'
inPaintingParams:
$ref: '#/components/schemas/imageGeneration_request_inPaintingParams'
outPaintingParams:
$ref: '#/components/schemas/imageGeneration_request_outPaintingParams'
backgroundRemovalParams:
$ref: '#/components/schemas/imageGeneration_request_backgroundRemovalParams'
virtualTryOnParams:
description: Parameters for VIRTUAL_TRY_ON task
type: object
imageGenerationConfig:
$ref: '#/components/schemas/imageGeneration_request_imageGenerationConfig'
region:
default: us-east-1
description: AWS region for Nova Canvas
enum:
- us-east-1
- ap-northeast-1
- eu-west-1
type: string
required:
- taskType
type: object
chatInference_request_messages_inner_content_oneOf_inner_oneOf_1_image:
properties:
format:
enum:
- png
- jpeg
- gif
- webp
type: string
source:
$ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner_oneOf_1_image_source'
required:
- format
- source
type: object
getDurableExecutionStatus_200_response_result_usage:
description: Token usage and cost for the final synthesis turn
example:
costCents: 5.962134
inputTokens: 0
outputTokens: 6
totalTokens: 1
properties:
inputTokens:
type: integer
outputTokens:
type: integer
totalTokens:
type: integer
costCents:
description: Cost of the final synthesis turn in US cents
format: float
type: number
type: object
getDurableExecutionStatus_200_response:
example:
result:
response:
role: assistant
content: The weather in Sydney is sunny.
usage:
costCents: 5.962134
inputTokens: 0
outputTokens: 6
totalTokens: 1
toolExecutions:
- '{}'
- '{}'
callbackId: Ab9hZXi/YXJuOmF3czpsYW1iZGE...
requestId: XkdVWiEfSwMEPrw=
executionArn: arn:aws:lambda:ap-southeast-2:...
awsStatus: SUCCEEDED
pendingTools:
- input:
location: Sydney
name: get_weather
toolUseId: toolu_bdrk_012KTC8NCG...
- input:
location: Sydney
name: get_weather
toolUseId: toolu_bdrk_012KTC8NCG...
error:
ErrorType: ErrorType
ErrorMessage: ErrorMessage
status: complete
properties:
requestId:
example: XkdVWiEfSwMEPrw=
type: string
executionArn:
example: arn:aws:lambda:ap-southeast-2:...
type: string
status:
enum:
- pending
- running
- waiting_callback
- complete
- failed
example: complete
type: string
awsStatus:
description: Raw AWS Step Functions status
example: SUCCEEDED
type: string
callbackId:
description: Present when status is waiting_callback - use with /chat/callback
example: Ab9hZXi/YXJuOmF3czpsYW1iZGE...
type: string
pendingTools:
description: Present when status is waiting_callback - tools waiting for results
items:
$ref: '#/components/schemas/getDurableExecutionStatus_200_response_pendingTools_inner'
type: array
result:
$ref: '#/components/schemas/getDurableExecutionStatus_200_response_result'
error:
$ref: '#/components/schemas/getDurableExecutionStatus_200_response_error'
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
chatInference_request_messages_inner_content_oneOf_inner_oneOf_3:
properties:
document:
$ref: '#/components/schemas/chatInference_request_messages_inner_content_oneOf_inner_oneOf_3_document'
required:
- document
type: object
chatInference_request_messages_inner_content_oneOf_inner_oneOf:
properties:
text:
example: What's in this image?
type: string
required:
- text
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 prom
# --- 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