Start Here — The Simple Explanation
A webhook is a delivery address: you give Finradar a link, and every event — new setup, trigger, close — is sent there instantly. Discord, Zapier, Google Sheets, your own server.
Setup happens in the app: PnL Calendar page → webhook settings. No code needed.
Example: get every signal in your Discord server (3 steps)
Create a Discord webhook
In your Discord server: Server Settings → Integrations → Webhooks → New Webhook. Pick the channel and press "Copy Webhook URL". That link is your delivery address.
Paste it into Finradar
Open the Finradar app, go to the PnL Calendar page, open webhook settings, and paste the link. Webhooks are a premium feature.
Done — messages arrive by themselves
The next time the AI finds or triggers a trade, the full details appear in your Discord channel within seconds. Nothing to refresh, nothing to run.
Jargon translator
| Webhook / Endpoint | The address (link) where messages get delivered. |
| Payload / JSON | The message itself — a structured list of the trade details (symbol, direction, prices…). |
| POST | The technical way of saying "we send the message to your address" (instead of you fetching it). |
| Event | The reason a message was sent: a new setup was found, a trade triggered, or a trade closed. |
| Timeout (5 seconds) | If your address doesn’t answer within 5 seconds, we stop waiting so nothing else gets delayed. |
Prefer the friendly overview with visuals? See the Webhooks page.
Below this line: the technical reference for developers.
Webhook Notifications
Receive real-time updates for trading setups and triggers.
The system sends webhook notifications for two types of events:
- New Setup Detected: When a new trading setup is identified (via Realtime or Polling).
- Setup Triggered: When a setup's price conditions are met (Entry Trigger).
- Setup Closed: When a setup is closed or invalidated, optionally triggering a MetaCopier close action.
Config Endpoint
/webhook/configRegister or update a webhook configuration for a user, including notification endpoints, premium status, and optional MetaCopier trade-copying credentials.
Manage your config inside the app
You can view and update all these webhook settings directly from the PnL Calendar page inside the app — no API call needed.
Field Descriptions
| Field | Type | Required | Description |
|---|---|---|---|
| user_id | string | Yes | Unique identifier for the user (from Superwall). |
| new_setup_notification_endpoint | string | Yes | URL where new trade setup notifications are sent (e.g. Discord webhook). |
| setup_trigger_notification_endpoint | string | Yes | URL where setup trigger notifications are sent. |
| is_premium | boolean | Yes | Premium status gatekeeper — webhooks are only dispatched when true. |
| metacopier_webhook_url | string | No | MetaCopier webhook URL for routing trade actions automatically. |
| metacopier_secret | string | No | MetaCopier secret for webhook authentication. Required when metacopier_enabled is true. |
| metacopier_enabled | boolean | No | Enables MetaCopier auto-trade routing when true and credentials are present. |
| send_new_setup_events | boolean | No | When false, new setup events are not routed to MetaCopier. Defaults to true. |
| send_trigger_events | boolean | No | When false, trigger events are not routed to MetaCopier. Defaults to true. |
| send_close_events | boolean | No | When false, close events are not routed to MetaCopier. Defaults to true. |
MetaCopier → Trade Copier
Payload Structure
All webhooks share a consistent JSON structure.
Field Descriptions
Fields marked with * are optional — they are included when available and omitted if not.
| Field | Type | Description |
|---|---|---|
| event_type | string | "new_setup", "trigger", or "close" |
| setup_id | string | The unique ID of the trading setup from the database. |
| symbol | string | The asset symbol (e.g., XAUUSD, BTCUSD). |
| direction | string | buy (Long) or sell (Short). |
| entry_zone | [float] | A list of two floats representing the entry price range. |
| stop_loss | float | The invalidation price level. |
| tp1 | float | First take profit target. |
| tp2 | float | Second take profit target. |
| current_price | float | The market price when the notification was generated. For trigger events, this is the trigger price. |
| timestamp | string | Exact time of the event in UTC ISO 8601 format. |
| confidence | string* | AI confidence label: "High", "Medium", or "Low". |
| confidence_score | string* | Numeric confidence score, e.g. "82%". |
| timeframe | string* | Chart timeframe, e.g. "M15", "H1", "H4", "D1". |
| strategy | string* | Strategy type, e.g. "Breakout", "Mean Reversion". |
| rr_ratio | string* | Risk/Reward ratio to TP1, e.g. "1:2.5". |
| pattern | string* | Chart pattern detected, e.g. "Bull Flag". |
| indicators | string* | Summary of technical indicators supporting the setup. |
| price_action_summary | string* | AI-generated thesis describing the reasoning behind the setup. |
| company_name | string* | Full company name for the symbol (e.g. "Apple Inc."). |