# Webhooks: get a JSON POST for every matching news item

> Quantisnow webhook reference: add a URL on /alerters, get a JSON POST for each alert on your followed tickers, payload fields, a sample payload and Slack or Discord setup.

Source: https://www.quantisnow.com/docs/webhooks
Section: Docs / Alerts and watchlists
Last updated: 2026-10-25

## Key takeaways

- Plus accounts can add any webhook URL up to 767 characters on the Alerters page at /alerters.
- Quantisnow sends a JSON POST to each webhook for every news item that matches a followed ticker with the Webhook channel on.
- The payload includes url, source, title, companies, published_at, language, category, industries, sectors, tags, related_tickers and summary.
- The Send test button posts a sample payload and reports the HTTP status your endpoint returned.
- Slack (hooks.slack.com) and Discord (discord.com) webhook URLs work directly: live alerts are reformatted into native Slack and Discord messages.

A Quantisnow webhook sends a JSON POST to a URL you choose for every news item that matches your alert rules. It is the real-time way to get the wire into your own system, a trading tool, or a chat channel. Webhooks are part of Plus and are set up on the [Alerters](https://www.quantisnow.com/alerters) page.

## How webhooks fit with alerts

Webhooks are one of three alert channels, alongside Email and Push. A webhook fires when:

1. A new item mentions a ticker you follow, and
2. The item matches one of the categories enabled for that ticker, and
3. The **Webhook** channel is switched on for that ticker.

Set categories and channels per ticker on [/follows](https://www.quantisnow.com/follows). See [Alerts](https://www.quantisnow.com/docs/alerts) for the full rules.

## How to add a webhook

1. Subscribe to Plus at [/pricing](https://www.quantisnow.com/pricing).
2. Go to [/alerters](https://www.quantisnow.com/alerters) and scroll to **Webhooks**.
3. Click **+ Add webhook**.
4. Paste your endpoint URL, for example https://example.com/hook. The URL can be up to 767 characters.
5. Click **Create**. The webhook appears in the list with its configured date.
6. On [/follows](https://www.quantisnow.com/follows), open each ticker's alert menu and switch on **Webhook** under **Channels**.

You can add more than one webhook. Matching items are sent to every webhook on your account.

## How to test a webhook

1. On [/alerters](https://www.quantisnow.com/alerters), click **Send test** next to the webhook.
2. Quantisnow posts a sample payload to your URL.
3. If your endpoint responds with a 2xx status within 10 seconds, you see **Test webhook delivered**. Otherwise the message shows the status your endpoint returned, such as "webhook responded 404 Not Found".

Click **Webhook payload format** on the same page to see the sample payload.

## How to remove a webhook

Click **Remove** next to the webhook and confirm. Deliveries to that URL stop.

## Request format

| Property | Value |
| --- | --- |
| Method | POST |
| Content-Type | application/json |
| Body | One JSON object per news item |
| Success | Respond with 200 or 204 within 3 seconds (the Send test button accepts any 2xx within 10 seconds) |

## Payload fields

| Field | Type | Description |
| --- | --- | --- |
| url | string | The item's Quantisnow page |
| source | string | Link to the original document, such as the SEC filing or newswire release |
| title | string | Headline |
| companies | array | Companies the item is about, each with ticker, exchange and name |
| published_at | string | Publish time in UTC, ISO 8601 |
| discovered_at | string, optional | When Quantisnow first saw the item |
| processed_at | string, optional | When Quantisnow finished processing the item |
| important | boolean | Whether the item is flagged as important (the same flag the "Important only" alert setting uses) |
| language | string | Language code, for example en |
| category | string | Category label, such as SEC Form 8-K or Analyst Upgrade. See [Event categories](https://www.quantisnow.com/docs/event-categories). |
| industries | array of strings | Industries of the companies |
| sectors | array of strings | Sectors of the companies |
| tags | array of strings | Tags on the item |
| related_tickers | array of strings | Other tickers related to the item |
| summary | string | Short summary of the item |

## Example payload

This is a hypothetical item for illustration:

```json
{
  "url": "https://www.quantisnow.com/insight/acme-therapeutics-files-form-8-k-123456",
  "source": "https://www.sec.gov/Archives/edgar/data/0000000000/000000000026000001/0000000000-26-000001-index.htm",
  "title": "SEC Form 8-K filed by Acme Therapeutics Inc.",
  "companies": [
    { "ticker": "ACME", "exchange": "NASDAQ", "name": "Acme Therapeutics Inc." }
  ],
  "published_at": "2026-10-23T20:05:12Z",
  "discovered_at": "2026-10-23T20:05:13Z",
  "important": true,
  "language": "en",
  "category": "SEC Form 8-K",
  "industries": ["Biotechnology"],
  "sectors": ["Health Care"],
  "tags": [],
  "related_tickers": [],
  "summary": "Acme Therapeutics reported a material agreement under Item 1.01."
}
```

Learn what an 8-K item like 1.01 means in [Form 8-K explained](https://www.quantisnow.com/guides/form-8-k-explained).

## Sending alerts to Slack or Discord

Slack and Discord incoming webhook URLs work directly. When a webhook URL is on `hooks.slack.com` or `discord.com`, live alerts are reformatted into a native Slack or Discord message instead of the raw JSON above.

1. In Slack, create an incoming webhook for a channel (or in Discord, open channel settings, then Integrations, then Webhooks) and copy its URL.
2. Paste the URL into the webhook field on [Alerters](https://www.quantisnow.com/alerters) and save.
3. Make sure the tickers you care about have the **Webhook** channel on in their alert rules.

The **Send test** button always posts the raw JSON sample, so a test against a Slack or Discord URL can fail even though live alerts will arrive formatted. Judge a Slack or Discord hook by the next real alert.

Want a custom message format instead? Point the webhook at a small relay of your own, such as a serverless function, and reformat there:

```js
export default async function handler(req) {
  const item = await req.json();
  const tickers = item.companies.map((c) => c.ticker).join(", ");
  await fetch(process.env.SLACK_WEBHOOK_URL, {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify({ text: `${tickers}: ${item.title}\n${item.url}` }),
  });
  return new Response("ok");
}
```

For Discord, send `{ "content": "..." }` instead of `{ "text": "..." }`.

## Good practices

- **Respond fast.** Live deliveries time out after 3 seconds and count as failed unless your endpoint returns 200 or 204. Redirects are not followed. Return right away and do slow work afterwards.
- **Deduplicate on url.** Each item has a unique url, which makes a good key if your system might see the same item twice.
- **Keep the URL private.** Anyone with your endpoint URL could post to it, so use a hard-to-guess path.
- **Watch volume.** Following many tickers with broad categories can send many requests on busy mornings. For high-volume webhooks, contact contact@quantisnow.com.

Prefer a feed you can poll without Plus? Use [RSS feeds](https://www.quantisnow.com/docs/rss-feeds), which run on a 3-minute delay. All options are compared in [Integrations and data access](https://www.quantisnow.com/docs/integrations-and-data-access).

## FAQ

### Do Quantisnow webhooks require Plus?

Yes. Webhook delivery is a Plus feature, along with email and push alerts. Plus is $59.99 per month.

### What does a Quantisnow webhook send?

A JSON POST for each matching news item, with fields including url, source, title, companies, published_at, category, sectors, industries, tags, related_tickers and summary.

### Can I send Quantisnow alerts straight to Slack or Discord?

Yes. Paste a Slack (hooks.slack.com) or Discord (discord.com) incoming webhook URL on /alerters and live alerts arrive as native messages. The Send test button posts raw JSON, so it may fail against those URLs even though real alerts work.

### How long can a webhook URL be?

Webhook URLs can be up to 767 characters.

### Can I get every item on the wire by webhook?

Webhooks fire for your followed tickers and their alert categories. For high-volume webhooks or programmatic access to more of the wire, email contact@quantisnow.com.
