HTTP Request node truncates URL path (removes /api/v4/) in version 2.9.2

Hello,

I’m experiencing an issue where the HTTP Request node (v4.4) automatically removes the “/api/v4/” segment from the URL.

Because of this truncation, the API returns a 404 error: “The resource you are requesting could not be found”. This happens even if the URL is hardcoded as a string.

Is there a way to prevent this automatic URL normalization in this version?

Workflow snippet:{
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "https://firdavs8550017.amocrm.ru/api/v4/chats/messages",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "=[\n  {\n    \"chat_id\": \"{{ $node[\"Edit Fields\"].json.chat_id }}\",\n    \"text\": \"{{ $node[\"Edit Fields1\"].json.text_to_send }}\",\n    \"msgid\": \"{{ Math.random().toString(36).substring(7) }}\",\n    \"scope\": \"external\"\n  }\n]",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.4,
      "position": [
        848,
        -384
      ],
      "id": "04250680-680a-4e56-82c3-9ad3a31f1edb",
      "name": "HTTP Request"
    }
  ],
  "connections": {},
  "pinData": {},
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "2a5ffa91f1d12848b5d9b8f6ac5cf4c295db799ffaaf2f486de87b19694e0197"
  }
}

Hey @Firdavs_Pulotov,
Welcome to the community!

this is a real behavior in n8n v2.9.2 with the HTTP Request node removing the /api/v4/ segment from the URL, and not just a “typo” or body issue. Multiple users have encountered this exact problem where the node strips the versioned path from a hardcoded URL when sending the request.

there isn’t a built-in setting in n8n 2.9.2 to stop the HTTP Request node from removing “/api/v4/“URL path. This is a behavior/bug in that version where the HTTP Request node’s internal URL handling strips versioned subpaths when making the request, even if the URL is hardcoded.

Try any of these:

  1. Use an expression that builds the URL piece by piece (e.g., {{ “https://your-domain.ru” + “/api/v4/chats/messages” }}), which can bypasses the internal normalization so the full path gets preserved.
  2. Call the API with a Proxy node or external service (e.g., Cloudflare Worker or internal API layer) that forwards the full path.
  3. Downgrade to a version before 2.9.2 where this behavior isn’t present.

Let me know if it helps

Hi @Firdavs_Pulotov

Your request lacks authentication (OAuth2 Bearer token required for amoCRM v4 API). Without it, amoCRM redirects to a generic page, stripping /api/v4/, and n8n ends up at a 404.

In your HTTP Request node, set Follow Redirects to false to see the real error.
and change your Authentication setting to Predefined Credential TypeamoCRM API (or add a Bearer token header).

Hi @Firdavs_Pulotov, welcome to our community!
This usually happens when you are using a credential with a Base URL configured. If the Base URL already includes api/v4 and you also put the full URL in the node, n8n rebuilds the final request and can override or strip part of the path. Check your credential settings and, if a Base URL is defined, use only the relative path in the node. If not, remove the Base URL and keep the full URL directly in the HTTP Request node.