Webhooks
Receive automatic notifications whenever your stockwatches detect changes. Integrate StockWatch with your own applications, Zapier, Make, or any service that accepts HTTP webhooks.
Requirements
- A Pro subscription
- At least one stockwatch with alerts enabled
- A publicly accessible HTTPS endpoint that accepts POST requests
Setup
- Go to Settings.
- Paste your endpoint URL into the Webhook URL field.
- (Optional) Add a Webhook Secret to authenticate requests.
- Click Save Settings.
- Make sure at least one stockwatch has alerts toggled on.
StockWatch processes alerts nightly. When a stockwatch detects added or removed tickers, a webhook is sent for each watch that has changes.
Authentication
If you provide a Webhook Secret in your settings, every webhook request will include
an Authorization header:
Authorization: Bearer <your-secret> Verify this header on your server to ensure the request is coming from StockWatch.
Request Details
| Method | POST |
| Content-Type | application/json |
| Authorization | Bearer <your-secret> (if configured) |
Payload Reference
Each webhook delivers a JSON payload for a single stockwatch. Here is an annotated example:
{
"stockWatchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"stockWatchName": "High Growth Tech",
"date": "2026-03-02",
"summary": {
"totalTickers": 47,
"tickersAdded": 3,
"tickersRemoved": 1
},
"tickersAdded": ["NVDA", "PLTR", "CRWD"],
"tickersRemoved": ["INTC"],
"tickers": [
{
"symbol": "NVDA",
"metrics": [
{
"field": "sw:MarketCap",
"value": 3200000000000,
"formattedValue": "3200000000000",
"unit": "USD"
},
{
"field": "sw:Revenue:growth:4",
"value": 0.5423,
"formattedValue": "54.23%",
"unit": "percent"
}
]
}
]
} Field Descriptions
| Field | Type | Description |
|---|---|---|
stockWatchId | string | Unique ID of the stockwatch |
stockWatchName | string | The label you gave the stockwatch |
date | string | The data date in ISO 8601 format (YYYY-MM-DD) |
summary | object | Quick counts: totalTickers, tickersAdded, tickersRemoved |
tickersAdded | string[] | Symbols that newly match the watch criteria |
tickersRemoved | string[] | Symbols that no longer match the watch criteria |
tickers | array | Up to 100 current matching tickers with their latest metric values |
tickers[].symbol | string | Ticker symbol (e.g. "AAPL") |
tickers[].metrics[].field | string | Internal field identifier used in the watch query |
tickers[].metrics[].value | number | null | Raw numeric value (null for text metrics) |
tickers[].metrics[].formattedValue | string | Human-readable formatted value (e.g. "54.23%") |
tickers[].metrics[].unit | string | Unit type: "USD", "percent", "text", etc. |
Tips
- Webhooks are sent nightly after data processing completes. They are only sent when a stockwatch has actual changes (tickers added or removed).
- Use the
summaryobject to quickly decide if you need to process the full payload. - The
valuefield gives you the raw number for calculations. UseformattedValuefor display. - The
tickersarray includes up to 100 symbols. If your watch matches more, only the first 100 (sorted by your watch's sort order) are included. - Works with automation platforms like Zapier, Make, n8n, or any custom HTTP endpoint.