Discussions
500 Internal Server Error when calling /talks endpoint from n8n
I’m integrating D-ID’s POST /talks API inside an n8n workflow, and I keep getting a 500 response with this payload:
500 - "{\"kind\":\"UnknownError\",\"description\":\"Internal Server Error\"}"
When I send the exact same request via curl or Postman, it works normally and returns the expected talk_id and URLs. However, from within the n8n HTTP Request node it fails every time.
Request Details
• Endpoint: https://api.d-id.com/talks
• Method: POST
• Headers in n8n:
• accept: application/json
• x-api-key-external: "{"elevenlabs": "sk_xyz…"}"
• Auth: Basic auth with API key
• Body (raw JSON):
{
"source_url": "<https://i.imgur.com/DFMqnsu.png">,
"script": {
"type": "text",
"subtitles": "false",
"provider": { "type": "elevenlabs", "voice_id": "tUVMjP56ZNYXlKLsRXbo" },
"input": "Bart, are you running for office or crafting a Netflix series?…",
"ssml": "true"
},
"config": {
"fluent": "false",
"driver_expressions": [
{ "expression": "serious", "start_frame": 0, "intensity": 0.8 }
],
"output_resolution": 1080
}
}
• n8n node settings that I’ve tried:
• Response Format: JSON
• Body Content Type: Raw, JSON, Form
• With and without Content-Type: application/json header
Expected vs. Actual
• Expected: HTTP 200 with JSON containing talk_id and asset URLs.
• Actual: HTTP 500 with body {"kind":"UnknownError","description":"Internal Server Error"}
Questions
• Is there any special requirement on the body encoding or headers for /talks when called from server-side clients like n8n?
• Has anyone run into this exact “UnknownError” on POST /talks and discovered a workaround?
• Are there any hidden n8n quirks (e.g. how it streams requests) that could trigger this failure?
Thanks in advance for any pointers!