Skip to content

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

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions