---
title: "Converse with model (Bedrock format)"
method: POST
path: "/bedrock/model/{modelId}/converse"
tags: ["Bedrock Integration"]
---

# Converse with model (Bedrock format)

`POST /bedrock/model/{modelId}/converse`

Sends messages to a model using AWS Bedrock Converse API format.

## Path parameters

- `modelId` string, required

## Request body

- BedrockConverseRequest
  - `messages` BedrockMessage[] — Array of messages for the conversation
    - `role` 'user' | 'assistant', required
    - `content` BedrockContentBlock[], required
      - `text` string
      - `image` object
        - `format` 'jpeg' | 'png' | 'gif' | 'webp'
        - `source` object
          - `bytes` string, byte
      - `document` object
        - `format` 'pdf' | 'csv' | 'doc' | 'docx' | 'xls' | 'xlsx' | 'html' | 'txt' | 'md'
        - `name` string
        - `source` object
          - `bytes` string, byte
          - `text` string — Plain text content (for text-based documents)
      - `toolUse` object
        - `toolUseId` string
        - `name` string
        - `input` object
      - `toolResult` object
        - `toolUseId` string
        - `content` BedrockContentBlock[]
        - `status` 'success' | 'error'
      - `guardContent` object
        - `text` object
          - `text` string
          - `qualifiers` string[]
      - `reasoningContent` object
        - `reasoningText` object
          - `text` string
          - `signature` string
      - `json` object — JSON content for tool call results
      - `cachePoint` object
        - `type` 'default'
  - `system` object[] — System messages/prompts
    - `text` string
    - `guardContent` object
      - `text` object
        - `text` string
        - `qualifiers` string[]
    - `cachePoint` object
      - `type` 'default'
  - `inferenceConfig` object
    - `maxTokens` integer
    - `temperature` number
    - `topP` number
    - `stopSequences` string[]
  - `toolConfig` object
    - `tools` object[]
      - `toolSpec` object
        - `name` string
        - `description` string
        - `inputSchema` object
          - `json` object
      - `cachePoint` object
        - `type` 'default'
    - `toolChoice` object
      - `auto` object
      - `any` object
      - `tool` object
        - `name` string
  - `guardrailConfig` object
    - `guardrailIdentifier` string
    - `guardrailVersion` string
    - `trace` 'enabled' | 'disabled'
  - `additionalModelRequestFields` object — Model-specific parameters
  - `additionalModelResponseFieldPaths` string[]
  - `performanceConfig` object
    - `latency` 'standard' | 'optimized'
  - `promptVariables` object
  - `requestMetadata` object
  - `serviceTier` object
    - `type` 'reserved' | 'priority' | 'default' | 'flex'
  - `fallbacks` string[]

## Response `200`

Successful response

- BedrockConverseResponse
  - `output` object
    - `message` BedrockMessage
      - `role` 'user' | 'assistant', required
      - `content` BedrockContentBlock[], required
        - `text` string
        - `image` object
          - `format` 'jpeg' | 'png' | 'gif' | 'webp'
          - `source` object
            - `bytes` string, byte
        - `document` object
          - `format` 'pdf' | 'csv' | 'doc' | 'docx' | 'xls' | 'xlsx' | 'html' | 'txt' | 'md'
          - `name` string
          - `source` object
            - `bytes` string, byte
            - `text` string — Plain text content (for text-based documents)
        - `toolUse` object
          - `toolUseId` string
          - `name` string
          - `input` object
        - `toolResult` object
          - `toolUseId` string
          - `content` BedrockContentBlock[]
          - `status` 'success' | 'error'
        - `guardContent` object
          - `text` object
            - `text` string
            - `qualifiers` string[]
        - `reasoningContent` object
          - `reasoningText` object
            - `text` string
            - `signature` string
        - `json` object — JSON content for tool call results
        - `cachePoint` object
          - `type` 'default'
  - `stopReason` 'end_turn' | 'tool_use' | 'max_tokens' | 'stop_sequence' | 'guardrail_intervened' | 'content_filtered'
  - `usage` object
    - `inputTokens` integer
    - `outputTokens` integer
    - `totalTokens` integer
    - `cacheReadInputTokens` integer
    - `cacheWriteInputTokens` integer
  - `metrics` object
    - `latencyMs` integer
  - `additionalModelResponseFields` object
  - `trace` object
  - `performanceConfig` object
    - `latency` 'standard' | 'optimized'
  - `serviceTier` object
    - `type` 'reserved' | 'priority' | 'default' | 'flex'

## Other responses

- `400` — Bad request
- `500` — Internal server error

---

[API](https://skmtc.net/getbifrost/apis/bifrost-api.md) · [All operations](https://skmtc.net/getbifrost/apis/bifrost-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getbifrost/bifrost-api/versions/f8cab88f64ea/schema)
