Start Monitoring
curl --request POST \
--url https://api.linkupapi.com/v2/webhooks/{webhook_id}/start \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.linkupapi.com/v2/webhooks/{webhook_id}/start"
headers = {"x-api-key": "<x-api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.linkupapi.com/v2/webhooks/{webhook_id}/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v2/webhooks/{webhook_id}/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v2/webhooks/{webhook_id}/start"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v2/webhooks/{webhook_id}/start")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/webhooks/{webhook_id}/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"webhook_id": "6789abcdef0123456789abcd",
"account_id": "69c127c37cae0494dd827286",
"monitoring": true
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
{
"success": false,
"error": {
"code": "INVALID_ACCOUNT",
"message": "Account not found"
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
{
"success": false,
"error": {
"code": "CHANNEL_ERROR",
"message": "Failed to start monitoring"
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
Webhooks (Real-Time)
Start Monitoring
Resume real-time monitoring for a stopped webhook
POST
/
v2
/
webhooks
/
{webhook_id}
/
start
Start Monitoring
curl --request POST \
--url https://api.linkupapi.com/v2/webhooks/{webhook_id}/start \
--header 'x-api-key: <x-api-key>'import requests
url = "https://api.linkupapi.com/v2/webhooks/{webhook_id}/start"
headers = {"x-api-key": "<x-api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<x-api-key>'}};
fetch('https://api.linkupapi.com/v2/webhooks/{webhook_id}/start', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkupapi.com/v2/webhooks/{webhook_id}/start",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"x-api-key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.linkupapi.com/v2/webhooks/{webhook_id}/start"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkupapi.com/v2/webhooks/{webhook_id}/start")
.header("x-api-key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkupapi.com/v2/webhooks/{webhook_id}/start")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"webhook_id": "6789abcdef0123456789abcd",
"account_id": "69c127c37cae0494dd827286",
"monitoring": true
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
{
"success": false,
"error": {
"code": "INVALID_ACCOUNT",
"message": "Account not found"
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
{
"success": false,
"error": {
"code": "CHANNEL_ERROR",
"message": "Failed to start monitoring"
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
Resume real-time monitoring for a webhook stopped with
/stop. Not needed after creating a webhook: monitoring starts automatically. Calling it on a webhook that is already running is harmless.
Monitoring consumes 10 credits per day per active account (1 credit every 144 minutes). Credit consumption begins as soon as monitoring starts. Ignore this if you’re on per-seat pricing: usage is unlimited.
Header Parameters
string
required
Your API key
Path Parameters
string
required
The unique identifier of the webhook to start monitoring for
Response
boolean
Whether monitoring was started successfully
object
{
"success": true,
"data": {
"webhook_id": "6789abcdef0123456789abcd",
"account_id": "69c127c37cae0494dd827286",
"monitoring": true
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
{
"success": false,
"error": {
"code": "INVALID_ACCOUNT",
"message": "Account not found"
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
{
"success": false,
"error": {
"code": "CHANNEL_ERROR",
"message": "Failed to start monitoring"
},
"metadata": {
"action": "start_webhook",
"credits_consumed": 0,
"timestamp": "2025-01-15T10:30:00.000000"
}
}
Notes
- The account must be in a
connectedstate for monitoring to start - If monitoring is already active for this account (via another webhook), it will not create a duplicate connection
- If the account’s token expires during monitoring, you will receive a disconnection event on your webhook URL
- You need at least 1 credit available to start monitoring
Was this page helpful?