{"message":"TradingView Chart Data API","version":"1.0.0","authentication":"API Key required","endpoints":{"POST /api/csv":"Download chart data as CSV","POST /api/png":"Download chart screenshot as PNG","POST /api/ohlc":"Get OHLC data for a symbol","GET /api/files":"List available files","GET /api/health":"Health check","GET /downloads/:filename":"Download generated files","POST /api/webhook/send":"🔒 Send data via webhook (requires WEBHOOK_API_KEY)","GET /api/webhook/receive":"📡 Receive real-time data stream (SSE)","GET /api/webhook/stats":"Get webhook statistics"},"usage":{"authentication":{"method":"Include API key in request","header":"x-api-key: your-api-key","query":"?apiKey=your-api-key","body":"{\"apiKey\": \"your-api-key\", ...otherData}"},"csv":{"method":"POST","url":"/api/csv","body":{"symbol":"OANDA:XAUUSD","interval":"15","namePrefix":"gold_chart","chartUrl":"optional - default: https://www.tradingview.com/chart/sCyMUcAq/","shiftLeft":"optional - number of pixels to shift chart left (e.g., 500)","apiKey":"your-api-key"},"note":"shiftLeft allows viewing historical data by scrolling the chart back before export"},"png":{"method":"POST","url":"/api/png","body":{"symbol":"OANDA:XAUUSD","interval":"15","namePrefix":"gold_chart","chartUrl":"optional - default: https://www.tradingview.com/chart/sCyMUcAq/","apiKey":"your-api-key"}},"ohlc":{"method":"POST","url":"/api/ohlc","body":{"symbol":"OANDA:XAUUSD","apiKey":"your-api-key"},"note":"Interval is automatically set to 1 minute"},"webhook":{"send":{"method":"POST","url":"/api/webhook/send","authentication":"Required - Use WEBHOOK_API_KEY","headers":{"x-webhook-key":"your-webhook-api-key"},"body":{"type":"optional - type of message","message":"optional - text message","data":{"any":"data you want to broadcast"}},"note":"Broadcasts data to all connected receivers in real-time"},"receive":{"method":"GET","url":"/api/webhook/receive","authentication":"Not required","note":"Opens a Server-Sent Events (SSE) connection to receive real-time data","example":"Use EventSource in JavaScript: new EventSource(\"/api/webhook/receive\")"}}},"limits":{"maxConcurrentDownloads":20,"currentActiveDownloads":0}}