ERROR GUIDE · UPDATED JULY 2026

TradingView webhook error 415.

Your alert fires, nothing opens on MT5, and the server log shows HTTP 415 Unsupported Media Type. The good news: a 415 never reaches your broker — it is a format problem between TradingView and the webhook endpoint, and it takes minutes to fix once you know where to look.

BBenjamin SF · Founder Published Jul 26, 2026 Read 6 min
Quick answer

A 415 error means the server received your alert but cannot read its format. Paste only the raw JSON into the alert’s Message field — no extra text, no curly quotes from Word or Telegram — and check the webhook URL points to the API endpoint.

The 60-second diagnosis

MATCH YOUR SYMPTOM TO THE CAUSE BEFORE CHANGING ANYTHING

415 on every alert since day one
Wrong URL. The webhook points to a web page instead of the API endpoint — the classic cause is a URL missing its /wh/ path or pasted from the wrong place.
415 started after you edited the message
The message is no longer raw JSON. Curly (smart) quotes or extra text slipped in when you copied it from Word, Notes or Telegram.
415 only on some alerts
One alert differs from the rest. A label, comment or placeholder around the JSON in that specific Message field breaks the payload.
415 only from your office network
A middleman is rewriting the request. Corporate proxy, VPN or antivirus “web protection” altering headers or the body in transit.
Tester passes but live alerts fail
The live message is not what you tested. Re-paste the exact JSON from your source into the alert and compare character by character.

A 415 is answered by the webhook server, not by MetaTrader 5. If you also see trade errors inside MT5 (invalid stops, no money, market closed), those are broker-side and have different codes — this guide only covers the 415.

The fixes, in order of frequency

START WITH FIX 1 — IT SOLVES MOST 415s WE SEE IN SUPPORT

1. Make the Message field raw JSON (most common)

TradingView sends the alert with Content-Type: application/json only when the Message body parses as JSON. The moment anything makes it invalid — a curly quote, a greeting line, a trailing comment — it goes out as plain text and a strict endpoint answers 415. Word, Google Docs, Notes and Telegram all silently convert straight quotes " into curly ones, which JSON does not accept.

  • In TradingView, open the alert panel (clock icon), right-click your alert and choose Edit (or Settings).
  • Select everything in the Message field and delete it — including invisible spaces before the first { and after the last }.
  • Paste the JSON copied directly from a plain-text source (our docs, your code editor or the Pine Script itself) — never from a chat app or word processor.
  • Check every quote is a straight ". A valid SignalForge payload looks like {"action":"buy","symbol":"EURUSD","lot":0.10,"sl":1.0820,"tp":1.0890}.
  • Save the alert and fire a test. If you use alert() in Pine, remember the dialog must be re-saved and set to “Any alert() function call” after editing the script.

2. Point the URL at the API endpoint, not a web page

If every single alert has failed with 415 since you set this up, suspect the URL before the message. A webhook URL must hit the API endpoint — if pasting it into a browser shows you a web page, a login screen or a docs article, it is the wrong address. The usual slip is dropping the /wh/ segment (or your token) when copying it.

  • Copy the webhook URL fresh from your SignalForge dashboard or from the docs — it must contain /wh/ and your personal token.
  • Paste it into the alert’s Webhook URL field with no spaces or line breaks around it.
  • Keep https:// and the full domain exactly as provided — do not “clean it up” by hand.
  • Save and send a test alert. A correct endpoint with valid JSON answers 200, not 415.

3. Rule out a proxy, VPN or WAF rewriting the request

Rare, but real: corporate proxies, VPNs and antivirus suites with “web protection” inspect and sometimes rewrite HTTPS requests, changing headers or the body on the way. The alert leaves TradingView perfectly valid and arrives corrupted — 415.

  • Send the same payload through the free webhook tester. If the tester passes but TradingView on your network fails, the problem is between you and the server.
  • Temporarily disable the VPN or the antivirus web filter and re-test.
  • On a managed office network, ask IT to whitelist api.signalforge-ai.com.
  • If you front your own endpoint with Cloudflare or another WAF, check its transform rules and WAF event log for the blocked requests.
When it is NOT your broker

A 415 is decided before any trading logic runs: the server rejected the request format, so no order ever reached MetaTrader 5 and your broker never saw anything. EA inputs (F7), the AutoTrading button (Ctrl+E) and symbol mapping (Ctrl+U) are all irrelevant for this error — do not touch them. The fix lives in the alert message or the webhook URL. The full payload schema, field by field, is in the docs, and you can validate your exact message in the webhook tester before going live.

FAQ

WHAT 415 IS, WHAT IT IS NOT, AND HOW TO PREVENT IT

What is error 415 in a TradingView webhook?

HTTP 415 (Unsupported Media Type) means the server received your alert but cannot read its format. In practice, the alert message was not sent as valid JSON — usually because of curly quotes, extra text around the JSON, or a webhook URL that points to a web page instead of the API endpoint.

Does error 415 mean my broker or MT5 rejected the trade?

No. A 415 happens before any trading logic runs: the server rejected the request body, so no order ever reached your MetaTrader 5 or your broker. EA settings, AutoTrading and symbol mapping are irrelevant for this error — the fix is in the alert message or the webhook URL.

Why do I get error 415 only after copying the alert from Word, Notes or Telegram?

Those apps replace straight quotes with curly smart quotes, and JSON only accepts straight quotes. The message stops being valid JSON, TradingView sends it as plain text, and the endpoint answers 415. Always paste the JSON from a plain-text source such as the documentation.

How do I check my webhook payload before going live?

Paste your exact alert message into the free SignalForge webhook tester. It shows whether the JSON parses and what the server would receive, so you catch 415-type problems before a real signal is on the line.

Author

Benjamin SF is the founder of SignalForge and an expert in trading algorithm automation. He builds and operates the SignalForge bridge for prop-firm traders and maintains its public latency benchmark.

Alerts that arrive ready to trade

SignalForge parses common alert formats natively and tells you exactly what it received. 14-day free trial, no card required.

SignalForge AI is an order-execution tool. We do not provide investment advice. Trading involves risk of loss.