Skip to main content

Welcome to the Monitoring API

Monitoring flips the signals API around: instead of searching for signals, you tell Signalbase which accounts you care about and it pushes you their funding rounds, acquisitions, job changes, and new job posts as they happen. A monitor is a named group of targets with its own signal-type selection and an optional webhook endpoint. Want funding news for your customers but hiring news for your prospects? Create two monitors. Everything you can do on the dashboard Monitoring page is available here, and the two share one code path — a monitor created in either place is fully manageable from the other.

Create Monitor

Name it, pick signal types, and optionally attach a webhook endpoint.

Add Targets

Add up to 500 domains, LinkedIn company pages, or LinkedIn profiles per call.

List Targets

See which targets are resolved, which are pending, and each one’s latest signal.

Update Monitor

Change signal types, swap or detach the webhook, pause and resume.

Quickstart

From here on, every matching signal for a resolved target is POSTed to your endpoint. There is nothing to poll.

Authentication

Every request needs an API key (ff_live_…) belonging to a team with an active or trialing subscription. Pass it as a Bearer token in the Authorization header. Get your key from the dashboard at trysignalbase.com/workspace/api. The base URL for all V2 endpoints is https://www.trysignalbase.com/api/v2. A key is bound to one team: the monitors it creates belong to that team, are visible to every team member on the dashboard, and are invisible to every other team. Request bodies may use snake_case (canonical) or camelCase (signalTypes, webhookUrl).

Endpoints

The Monitor Resource

Signal Types

“Different signals for different accounts” means different monitors: signal_types applies to every target in the monitor.

Targets

A target is one thing you asked a monitor to watch. Add Targets accepts three kinds of identifier in the same array and works out which is which: Identifiers are normalized — scheme, www., path, query, and case are dropped — and de-duplicated, so adding is idempotent. Anything that is none of the three (a company name, a string without a dot) comes back in invalid without failing the request.

Resolved vs. pending

Signals are attached to companies, so a target only delivers once it has been matched to a company in the Signalbase database.
  • resolved — matched. company is populated and its signals are delivered from now on.
  • pending — not matched yet. Signalbase researches pending targets automatically (usually within minutes to a few hours, in batches) and re-checks them every night as new companies enter the database. A pending target delivers nothing and needs no action from you; poll List Targets with ?status=pending if you want to track progress.
Monitoring is forward-looking. Adding a target does not replay signals that are already in the Signalbase database to your webhook — use the signal endpoints (for example Funding Signals) to backfill history. last_signal_type / last_signal_at tell you whether there is anything to backfill.

Delivery

Every monitor delivers on two rails:
  • Email — always on. Real-time alert emails go to the user who created the monitor (for API-created monitors, the owner of the API key).
  • Webhook — optional. Set webhook_url and each matching signal is sent as a signed POST to your endpoint.
Webhook deliveries from a monitor are ordinary Signalbase webhook events: the same envelope, the same per-event payloads, the same X-Webhook-Signature HMAC. Everything in the Webhooks guide applies unchanged — see The Delivery Your Endpoint Receives, Payload by event type, and Verifying the Signature, using the monitor’s webhook.secret. A monitor delivers only while it is active and has at least one resolved target. Pausing (active: false), removing the last resolved target, or deleting the monitor stops delivery immediately; resuming or adding a resolved target restarts it.

The monitor’s webhook

webhook.id is a real webhook subscription, so the Webhooks API works on it:
A monitor’s webhook cannot be edited or deleted through the Webhooks API. Changing its endpoint_url, event_types, filters, or active flag there — or deleting it — returns 409 conflict with the owning monitor’s ID in the message. Those fields are owned by the monitor; use Update Monitor instead (webhook_url, signal_types, active). rotate_secret is the one change the Webhooks API accepts.
Changing webhook_url to a different URL retires the old subscription and creates a new one with a new id and a new secret; delivery history stays with the old subscription. The swap is atomic: if the new URL is rejected with a 400, the monitor keeps its current endpoint and keeps delivering.

Response Envelope

Every endpoint returns the same JSON envelope as the rest of the V2 API. Success:
pagination is present only on List Targets. count is the number of items in this page; total is the number of targets matching the filter. Error:

Credits & Limits

The same company can be a target in several monitors — for example to send its funding rounds to one endpoint and its hiring to another. Each entry counts toward the 1,000-target limit. An active monitor webhook also counts toward the team’s limit of 10 active webhooks when you create standalone webhooks with the Webhooks API.
If your team’s API credit balance reaches zero, webhook deliveries stop; monitors and targets are kept.

Error Handling

Errors return a non-2xx status with { success: false, error, code }. Partial problems never fail a bulk call: unparseable entries are reported in invalid, already-present targets in skipped_existing, and unmatched removals in not_found, all with HTTP 200. The one exception is the 1,000-target limit — a request that would exceed it is rejected as a whole and adds nothing.