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.

Updated 5 min read

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 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. See Alerts for the full rules.

How to add a webhook

  1. Subscribe to Plus at /pricing.
  2. Go to /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, 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, 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

PropertyValue
MethodPOST
Content-Typeapplication/json
BodyOne JSON object per news item
SuccessRespond with 200 or 204 within 3 seconds (the Send test button accepts any 2xx within 10 seconds)

Payload fields

FieldTypeDescription
urlstringThe item's Quantisnow page
sourcestringLink to the original document, such as the SEC filing or newswire release
titlestringHeadline
companiesarrayCompanies the item is about, each with ticker, exchange and name
published_atstringPublish time in UTC, ISO 8601
discovered_atstring, optionalWhen Quantisnow first saw the item
processed_atstring, optionalWhen Quantisnow finished processing the item
importantbooleanWhether the item is flagged as important (the same flag the "Important only" alert setting uses)
languagestringLanguage code, for example en
categorystringCategory label, such as SEC Form 8-K or Analyst Upgrade. See Event categories.
industriesarray of stringsIndustries of the companies
sectorsarray of stringsSectors of the companies
tagsarray of stringsTags on the item
related_tickersarray of stringsOther tickers related to the item
summarystringShort summary of the item

Example payload

This is a hypothetical item for illustration:

{
  "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.

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 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:

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, which run on a 3-minute delay. All options are compared in 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.

Related