Webhook handler — Flask

Minimal, secure Flask handler pattern for TradingView webhooks: verify HMAC signature and enqueue processing.

Webhook handler — Flask

Python (Flask)

Category: Code Library  •  Tags: python, webhook, flask  •  Published: PUBLISH_DATE

Handler — copyable code

      Copyfrom flask import Flask, request, abort
import hmac, hashlib, json, os

app = Flask(__name__)
SECRET = os.environ.get('WEBHOOK_SECRET', 'replace-me').encode('utf-8')

def verify_sig(payload, signature):
    mac = hmac.new(SECRET, payload, hashlib.sha256).hexdigest()
    return hmac.compare_digest(mac, signature)

@app.route('/webhook', methods=['POST'])
def webhook():
    sig = request.headers.get('X-Signature', '')
    payload = request.get_data()
    if not verify_sig(payload, sig):
        abort(401)
    data = json.loads(payload)
    # enqueue for background processing (Celery/RQ/etc.)
    print('Received alert:', data)
    return '', 200

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 5000)))

Deployment tips

  • Run behind HTTPS (nginx or managed platform) and keep secrets in env vars.
  • Use worker queues for long-running tasks to keep webhook responses fast.

License: MIT

Back to Code Library

Don’t miss our blog post!

We don’t spam! Read our privacy policy for more info.

Leave a Reply

Your email address will not be published. Required fields are marked *