Before you begin
- Get a CatchAll API key from platform.newscatcherapi.com.
- Have your company list ready as a CSV with
nameanddomaincolumns (see the format in Step 1). - Set up a publicly accessible HTTPS endpoint that returns a 2xx and accepts a JSON POST, or use webhook.site for testing.
- Optionally, install the CatchAll SDK for your language:
Build the monitor
Build the watchlist
A dataset is a named collection of company entities — your portfolio. The fastest
way to create one is to upload a CSV: it creates the entities and the dataset in a
single request. The
name and domain columns are required; everything else is
optional. Use semicolons to separate multiple values.companies.csv
Wait for the dataset to be ready
Entities are enriched after upload. Poll the dataset until
latest_status reaches
ready — don’t submit a job before this completes.Test a connected job
Run the watchlist once before scheduling it. Submit a standard job with
Each record carries a
connected_dataset_ids to activate company search mode. To collect all news about
your companies rather than a single topic, set fetch_all_watchlist_news: true;
to track a specific theme, pass a real query instead. Keep the job_id — you
reference it when creating the monitor.connected_entities array — one entry per matched company,
with an ed_score from 1 to 10 and a one-line relation explaining the match.To return only events where a tracked company is the primary actor (the company
that raised funding, was acquired, announced layoffs), add
"ed_association_type": "event_associated". See
Company Watchlist.Create a webhook
A webhook is created once at the organization level, then attached to any number of
jobs or monitors. Save the returned
webhook.id.Schedule the monitor
A monitor re-runs the connected job on a schedule, deduplicates against previous
runs, and delivers each run to the webhooks in
webhook_ids. A monitor created from
a watchlist job keeps the connection — every run scores the same portfolio.Handle the delivery
After each scheduled run, CatchAll sends a POST to your webhook URL. Return a 2xx
within 5 seconds and process asynchronously. For a connected watchlist, each record
carries the same A minimal receiver routes each record by matched company:
connected_entities array you saw when testing — so you can route
each event to the right company.The payload:Keep the watchlist current
Portfolios change. Update the dataset without rebuilding the monitor — the next scheduled run picks up the new roster automatically:- Add companies:
POST /catchAll/datasets/{dataset_id}/entities. - Remove companies:
DELETE /catchAll/datasets/{dataset_id}/entities.
See also
- Company Watchlist: entities, datasets, association types, and per-company scoring in depth
- Monitors: how scheduling, deduplication, and rolling date windows work
- Build an event feed: the same pipeline for a topic query instead of a watchlist
- Set up webhooks: webhook types, auth, testing, and delivery history
- Configure monitors: schedules, robust webhook handling, updating a monitor

