Skip to content
Signal
Dashboard

Monitor accounts for signals

Create a paused monitor, start one run and read its signals.

A monitor detects events for the campaign accounts. Create it paused, then choose an immediate run or a recurring schedule.

Paid research

An immediate monitor run uses credits. Activation allows future runs to use credits. Read Credits.

Before you start

  • Complete the HTTP quickstart. Set LINKT_API_URL and LINKT_API_KEY.
  • Create a campaign. Set CAMPAIGN_ID to the returned id.
  • Use an API key with effective monitoring and schedule write access, plus run access for active execution. See Permissions.
  • This procedure uses credits. Check get_me before you start.
  • Fill the campaign through discovery or import.

Steps

Create a paused monitor

curl --fail-with-body --request POST "$LINKT_API_URL/v2/campaigns/$CAMPAIGN_ID/monitors" \
  --header "x-api-key: $LINKT_API_KEY" \
  --header "Content-Type: application/json" \
  --data "$(jq -cn --arg CAMPAIGN_ID "$CAMPAIGN_ID" '{"config":{"signal_types":[{"description":"A new funding round or a new investment.","display":"Funding","type":"funding"},{"description":"A new executive in data, IT, or engineering.","display":"Leadership change","type":"leadership_change"}],"source_campaign_id":"0190a4e2-0000-7000-8000-000000000001","type":"signal-sheet"},"frequency":"weekly","name":"Funding and leadership changes","status":"paused"} | walk(if . == "0190a4e2-0000-7000-8000-000000000001" then $CAMPAIGN_ID else . end)')"

API reference: create_monitor

The response has status 201. Set MONITOR_ID to its id. Rules: Monitor config.

Check and start the monitor

curl --fail-with-body --request GET "$LINKT_API_URL/v2/monitors/$MONITOR_ID" \
  --header "x-api-key: $LINKT_API_KEY"

API reference: get_monitor

For one immediate run, send:

curl --fail-with-body --request POST "$LINKT_API_URL/v2/monitors/$MONITOR_ID/runs" \
  --header "x-api-key: $LINKT_API_KEY"

API reference: run_monitor

Set RUN_ID to the returned run id. Use Polling.

curl --fail-with-body --request GET "$LINKT_API_URL/v2/runs/$RUN_ID" \
  --header "x-api-key: $LINKT_API_KEY"

API reference: get_run

Read runs and signals

curl --fail-with-body --request GET "$LINKT_API_URL/v2/runs?campaign_id=$CAMPAIGN_ID&kind=monitor&limit=5" \
  --header "x-api-key: $LINKT_API_KEY"

API reference: list_runs

curl --fail-with-body --request GET "$LINKT_API_URL/v2/signals?limit=5&monitor_id=$MONITOR_ID" \
  --header "x-api-key: $LINKT_API_KEY"

API reference: list_signals

Rules: Signal filters. A successful run can find no signals.

Schedule future runs

Activation starts the schedule. The first scheduled run starts at next_run_at.

curl --fail-with-body --request PATCH "$LINKT_API_URL/v2/monitors/$MONITOR_ID" \
  --header "x-api-key: $LINKT_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"status":"active"}'

API reference: update_monitor

Read Schedule rules. Pause future runs when the monitor is no longer needed:

curl --fail-with-body --request PATCH "$LINKT_API_URL/v2/monitors/$MONITOR_ID" \
  --header "x-api-key: $LINKT_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"status":"paused"}'

API reference: update_monitor

Delete the monitor

curl --fail-with-body --request DELETE "$LINKT_API_URL/v2/monitors/$MONITOR_ID" \
  --header "x-api-key: $LINKT_API_KEY"

API reference: delete_monitor

Deletion cancels its runs and removes its signals. Rules: Update and delete.

Next steps

Candidate: create without a campaign

Topic and uploaded CSV monitors can run without a campaign. This example creates a paused topic monitor, so it schedules no research. Preserve the returned monitor ID for get, update, and delete operations.

curl --fail-with-body --request POST "$LINKT_API_URL/v2/monitors" \
  --header "x-api-key: $LINKT_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"config":{"entity_type":"school_district","signal_types":[{"description":"A district publishes a technology plan","display":"Technology plan","type":"other"}],"topic_criteria":"Public school district technology plans","type":"signal-topic"},"frequency":"weekly","name":"Topic observations","status":"paused"}'

API reference: create_organization_monitor

Selected-record (signal-sheet) monitors still require source_campaign_id. The source must belong to your organization and support the requested record type. A valid source with no matching records is accepted. Create, config update, resume, and execution validate the source.

Deleting the source preserves observations and monitor configuration and pauses monitors that depend on its records. Update config.source_campaign_id to a valid replacement, then set status to active. Independent topic and CSV monitors continue. Deleting a monitor explicitly is a separate operation.

Monitors save observations about subjects. They do not create accounts, people, or campaign memberships. Use explicit import and membership operations when you choose to create prospects or add them to a campaign.

On this page