Skip to content

Feature Request: Support HTTP/HTTPS image URLs in Converse API ImageSource #684

@faithfulalabi

Description

@faithfulalabi

Summary

The Bedrock Converse API's ImageSource type currently supports only two source types: inline bytes (base64-encoded) and s3Location. There is no support for passing HTTP/HTTPS image URLs directly, unlike the Anthropic Messages API (type: "image" with source.type: "url") and OpenAI's Chat Completions API (type: "image_url" with a URL string).

Problem

When building multi-provider LLM applications, image inputs often originate as HTTP/HTTPS URLs (e.g., CDN-hosted product images, user-uploaded content). With the current Bedrock Converse API, callers must:

  1. Download the image from the URL
  2. Base64-encode the bytes
  3. Pass them inline in the request

Or alternatively:

  1. Download the image
  2. Upload it to S3
  3. Reference the S3 location

This adds latency, increases payload size (base64 encoding inflates data by ~33%), and requires additional application logic that isn't needed with other providers. It also makes it harder to build provider-agnostic LLM clients since Bedrock requires a fundamentally different image input path.

Expected behavior

Support a url source type in ImageSource, allowing callers to pass an HTTP/HTTPS URL directly:

{
  "image": {
    "format": "png",
    "source": {
      "url": "https://example.com/images/photo.png"
    }
  }
}

This would bring Bedrock in line with:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions