Can't get the audio file in the answer of my HTTP request

The problem

I am using ElevenLabs API with my paid plan to generate an audio file with some text and parameters.

Calling the API works and I get an answer but the audio file should be in response, and for now I can’t get the file in the answer for the next part of the workflow.

That is the only thing I get :


[
{
"response": 
[
{
"headers": 
{
"date": 
"Wed, 13 Aug 2025 12:12:12 GMT",
"server": 
"uvicorn",
"request-id": 
"4Xjmq63aGXafqoACTjJt",
"access-control-expose-headers": 
"request-id, history-item-id, character-cost, regeneration-count, generation-info, current-concurrent-requests, maximum-concurrent-requests",
"history-item-id": 
"3ugJ4JAErJR0PftPAs3V",
"current-concurrent-requests": 
"1",
"maximum-concurrent-requests": 
"2",
"character-cost": 
"4",
"tts-latency-ms": 
"622",
"content-type": 
"audio/mpeg",
"access-control-allow-origin": 
"*",
"access-control-allow-headers": 
"*",
"access-control-allow-methods": 
"POST, PATCH, OPTIONS, DELETE, GET, PUT",
"access-control-max-age": 
"600",
"strict-transport-security": 
"max-age=31536000; includeSubDomains",
"x-trace-id": 
"fcd34d89280724951ca411a07eb31def",
"x-region": 
"us-central1",
"vary": 
"Accept-Encoding",
"via": 
"1.1 google, 1.1 google",
"alt-svc": 
"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000",
"connection": 
"close",
"transfer-encoding": 
"chunked"
},
"statusCode": 
200,
"statusMessage": 
"OK"
}
]
}
]

There should be a audio file in the data field of the response from the API. When I try the exact same request with Postman or any other tool I get the audio file in the response without any problem.

My workflow

This is the two tools for ElevenLabs API. The first request for getting the list of all available voices works as expected.

{
“nodes”: [
{
“parameters”: {
“toolDescription”: “Makes an HTTP request to ElevenLabs to get all the available voices for audio generation.”,
“url”: “https://api.elevenlabs.io/v2/voices”,
“authentication”: “genericCredentialType”,
“genericAuthType”: “httpHeaderAuth”,
“options”: {}
},
“type”: “n8n-nodes-base.httpRequestTool”,
“typeVersion”: 4.2,
“position”: [
128,
-176
],
“id”: “ea560a98-fdbb-460d-80a1-a6d81f4bf00e”,
“name”: “Get ElevenLabs Voices list”,
“credentials”: {
“httpHeaderAuth”: {
“id”: “DsYzQ5f6br03wN0W”,
“name”: “Header xi-api-key ElevenLabs”
}
}
},
{
“parameters”: {
“toolDescription”: “Makes an HTTP request to ElevenLabs API to generate the audio for a given text and returns the generated audio file. You should complete the url for the request by giving the right elevenlabs voice_id for {voice_id} in the url.\n\nYou have to always make one request for each word/sentence of the list and another one for their translation separately.”,
“method”: “POST”,
“url”: “={{ /n8n-auto-generated-fromAI-override/ $fromAI(‘URL’, `URL to use: https://api.elevenlabs.io/v1/text-to-speech/{voice_id}\\\\n\\\\nYou have to provide the voice_id of the selected voice in the URL ({voice_id}).`, ‘string’) }}”,
“authentication”: “genericCredentialType”,
“genericAuthType”: “httpHeaderAuth”,
“sendBody”: true,
“bodyParameters”: {
“parameters”: [
{
“name”: “text”,
“value”: “={{ /n8n-auto-generated-fromAI-override/ $fromAI(‘parameters0_Value’, `The text you will give for generating the audio file. You have to always make one request for each word/sentence of the list and another one for their translation separately.`, ‘string’) }}”
},
{
“name”: “model_id”,
“value”: “eleven_multilingual_v2”
}
]
},
“options”: {
“response”: {
“response”: {
“fullResponse”: true,
“responseFormat”: “file”,
“outputPropertyName”: “={{ /n8n-auto-generated-fromAI-override/ $fromAI(‘Put_Output_in_Field’, ``, ‘string’) }}”
}
}
}
},
“type”: “n8n-nodes-base.httpRequestTool”,
“typeVersion”: 4.2,
“position”: [
272,
-176
],
“id”: “d355f57f-1c5d-4f4d-8663-1e10fba803dc”,
“name”: “ElevenLabs Text to Speech audio Generation request”,
“credentials”: {
“httpHeaderAuth”: {
“id”: “DsYzQ5f6br03wN0W”,
“name”: “Header xi-api-key ElevenLabs”
}
}
}
],
“connections”: {
“Get ElevenLabs Voices list”: {
“ai_tool”: [

]
},
“ElevenLabs Text to Speech audio Generation request”: {
“ai_tool”: [

]
}
},
“pinData”: {},
“meta”: {
“instanceId”: “43e2077acc9bbde49c11f1271f7b72c3d32917d94521b9096cd5ebb8ea76c2fb”
}
}

Can someone help me to get my audio file in the answer of the request so that my AI Agent can upload it in my Google Drive ?

Thank you in advance for the help, I am pretty new with n8n automations.

Information on your n8n setup

  • n8n version: 1.105.3
  • Database (default: SQLite): Supabase (Postgresql)
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app): Installed with Coolify Panel
  • Operating system: Linux (VPS)

Hi Emerick and welcome to the community,

One quick tip when I am receiving files from an API when using the HTTP request node:

In the node options, add the Response option and set the Response Format to file (and optionally set Put output in field with a name to use in subsequent nodes - the default is data).

I use this to obtain call recordings from a commercial service and works fine (my next node takes the binary file and saves it to SharePoint using another HTTP Request node).

Let me know if this helps.

Simon

Will try this asap. Thank you very much for the answer

I just saw that I already did that, and it does not seem to change anything unfortunately.

AFAIK, you can’t use tools for getting file, and you need to use HTTP Request as a main node, not a tools node.

Will try to crate a subworkflow with an HTTP Request node that is called by the AI as a tool, this could be my problem. Will let you know if this works. Thank you so much

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.