AWS Bedrock HTTP request and Model listings

My use case:

I’m trying to integrate Claude 3.7 Sonnet (anthropic.claude-3-7-sonnet-20250219) into an n8n workflow using the AWS Bedrock invoke endpoint directly:

POST https://bedrock-runtime.us-east-1.amazonaws.com/model/anthropic.claude-3-7-sonnet-20250219/invoke

This model is visible and working in my AWS account — I can access it via the AWS Console and run requests. However, it doesn’t appear in the model dropdown in n8n’s built-in Bedrock node.

Since I couldn’t select it natively, I tried using the HTTP Request node to call the endpoint manually. That’s where I ran into a second problem: the request needs to be SigV4 signed, and the HTTP Request node doesn’t support generating these dynamic headers.

I considered generating the Authorization header manually, but it’s tied to each request’s body, date, region, etc., and needs to be signed using the AWS secret key — so you can’t hardcode it.

I’m now working around this by setting up a small Lambda function to sign and forward the request, but it would be great to handle this entirely within n8n.


Any resources to support this?


Are you willing to work on this?

Yes — if there’s any guidance on how to extend the Bedrock node or integrate SigV4 signing in a Function node, I’d be happy to help build or test a solution.

Also, is the list of models in the Bedrock node hardcoded or cached? I have access to Claude 3.7 Sonnet in my AWS account, but it’s not visible in n8n.

Would really appreciate any insights or suggestions!

Thanks,
Chetan

I think this was somewhat discussed in this thread, but there wasn’t a full concensus. According to the bedrock documentation, many of the models (including the Claude 3.7 and 4 models) have Cross-region inference, and so you must specify the aws region in the id (I found the list here: Supported Regions and models for inference profiles - Amazon Bedrock).

  • If US region: us.anthropic.claude-3-7-sonnet-20250219-v1:0
  • If EU region: eu.anthropic.claude-3-7-sonnet-20250219-v1:0
  • Anywhere else: apac.anthropic.claude-3-7-sonnet-20250219-v1:0


I’m in Seoul, so I had to change the input field to “Expression” and use the APAC region (apac.anthropic.claude-sonnet-4-20250514-v1:0) and although it still shows an error, it works.

Of course, ideally this would all be handled by the node natively.