Download TikTok Video (RapidAPI) keeps showing forbidden

Describe the problem/error/question

Download TikTok Video (RapidAPI) keeps showing forbidden, even though I’ve added my info in the Custom Auth section, in this format:
{
“x-rapidapi-key”: “APIKEY”,
“x-rapidapi-host”: “tiktok-download-video1.p.rapidapi.com
}

What is the error message (if any)?

403 - You are not subscribed to this API.

However, on Rapidapi.com, I see that I am subscribed to it and I see a “test endpoint” green button. Clicking on it, I get a success.

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Weird, in the Error Details → Request, I see the following. Note the “YOUR_API_KEY” is not filled in. Wonder why?

{
“errorMessage”: “Forbidden - perhaps check your credentials?”,
“errorDescription”: “You are not subscribed to this API.”,
“errorDetails”: {
“rawErrorMessage”: [
“403 - "{\"message\":\"You are not subscribed to this API.\"}"”
],
“httpCode”: “403”
},
“n8nDetails”: {
“nodeName”: “Download TikTok Video (RapidAPI)”,
“nodeType”: “n8n-nodes-base.httpRequest”,
“nodeVersion”: 4.2,
“itemIndex”: 0,
“time”: “5/26/2025, 9:18:22 PM”,
“n8nVersion”: “1.93.0 (Cloud)”,
“binaryDataMode”: “filesystem”,
“stackTrace”: [
“NodeApiError: Forbidden - perhaps check your credentials?”,
" at ExecuteContext.execute (/usr/local/lib/node_modules/n8n/node_modules/n8n-nodes-base/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js:615:21)“,
" at processTicksAndRejections (node:internal/process/task_queues:95:5)”,
" at WorkflowExecute.runNode (/usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:696:27)“,
" at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:930:51”,
" at /usr/local/lib/node_modules/n8n/node_modules/n8n-core/dist/execution-engine/workflow-execute.js:1266:20"
]
}
}

The “Request” section returns this:

{ “headers”: { “x-rapidapi-host”: “tiktok-download-video1.p.rapidapi.com”, “x-rapidapi-key”: “YOUR_API_KEY”, “accept”: “application/json,text/html,application/xhtml+xml,application/xml,text/;q=0.9, image/;q=0.8, /;q=0.7” }, “method”: “GET”, “uri”: “https://tiktok-download-video1.p.rapidapi.com/getVideo?url=https://www.tiktok.com/@chase_ai_/video/7504815669532282154”, “gzip”: true, “rejectUnauthorized”: true, “followRedirect”: true, “resolveWithFullResponse”: true, “followAllRedirects”: true, “timeout”: 300000, “encoding”: null, “json”: false, “useStream”: true }

If you see this. It probably means you didn’t provide your api key?

How you fill api key? From header auth or just paste in the request node.

Provide some screenshots but remembered to hide the api key string.

I put it in the custom auth page via the JSON “x-rapidapi-key” field:


From my test

Custom auth can not be used like this

My solution is put the x-rapidapi-key into Header Auth

In this setting then everything will be fine.


Another problem is your $json.message.text

It start with s://. Missing http?