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_URLandLINKT_API_KEY. - Create a campaign. Set
CAMPAIGN_IDto the returnedid. - 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_mebefore 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)')"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"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"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"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"curl --fail-with-body --request GET "$LINKT_API_URL/v2/signals?limit=5&monitor_id=$MONITOR_ID" \
--header "x-api-key: $LINKT_API_KEY"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"}'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"}'Delete the monitor
curl --fail-with-body --request DELETE "$LINKT_API_URL/v2/monitors/$MONITOR_ID" \
--header "x-api-key: $LINKT_API_KEY"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"}'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.