Zure Text-to-Speech API with the HTTP Request node in n8n

Hi everyone :waving_hand:

I’m trying to use the Azure Text-to-Speech API with the HTTP Request node in n8n, but I keep getting a 400 - Bad Request error.

Here’s my setup:

  • Method: POST
  • URL: https://eastus.tts.speech.microsoft.com/cognitiveservices/v1
  • Content-Type: application/ssml+xml
  • Body: Raw SSML (confirmed valid)
  • Output format: audio-48khz-192kbitrate-mono-mp3

Headers I used:

  • Ocp-Apim-Subscription-Key: :white_check_mark: set with valid key
  • X-Microsoft-OutputFormat: :white_check_mark:
  • User-Agent: n8n-client
  • Content-Type: application/ssml+xml

I tried both using “Generic Credential (Header Auth)” and also “None” with manual headers — still getting 400.

What’s the correct way to authenticate Azure Speech in n8n or configure credentials to allow multiple headers?

Thanks in advance :folded_hands:

:paperclip: Here’s some screenshots of my node setup: