curl --request GET \
--url https://api.laneapp.co/api/records/signals \
--header 'x-api-key: <api-key>'import requests
url = "https://api.laneapp.co/api/records/signals"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.laneapp.co/api/records/signals', 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.laneapp.co/api/records/signals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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.laneapp.co/api/records/signals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.laneapp.co/api/records/signals")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.laneapp.co/api/records/signals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "66b2c3d4e5f6a7b8c9d0e1f2",
"name": "Slow CSV export",
"summary": "Multiple enterprise customers report export timeouts.",
"status": "Open",
"url": "https://app.laneapp.co/topics/66b2c3d4e5f6a7b8c9d0e1f2",
"surfaced": true,
"priorityScore": 82,
"customerCount": 7,
"insightCount": 14,
"totalRevenue": 240000,
"createdAt": "2026-06-20T08:30:00.000Z",
"updatedAt": "2026-07-03T16:12:00.000Z"
}
]{
"success": true,
"error": "<string>",
"message": "<string>"
}List signals
Returns the workspace’s signals in every status (Open, Accepted and Closed), most recently updated first. Designed for polling (for example, a Zapier trigger): filter on priorityScore or surfaced in your workflow, or narrow server-side with min_priority_score. Each signal has a stable id for deduplication.
Note: priorityScore is computed in batches, so a just-created signal reads 0 until the next recompute.
curl --request GET \
--url https://api.laneapp.co/api/records/signals \
--header 'x-api-key: <api-key>'import requests
url = "https://api.laneapp.co/api/records/signals"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.laneapp.co/api/records/signals', 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.laneapp.co/api/records/signals",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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.laneapp.co/api/records/signals"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.laneapp.co/api/records/signals")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.laneapp.co/api/records/signals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": "66b2c3d4e5f6a7b8c9d0e1f2",
"name": "Slow CSV export",
"summary": "Multiple enterprise customers report export timeouts.",
"status": "Open",
"url": "https://app.laneapp.co/topics/66b2c3d4e5f6a7b8c9d0e1f2",
"surfaced": true,
"priorityScore": 82,
"customerCount": 7,
"insightCount": 14,
"totalRevenue": 240000,
"createdAt": "2026-06-20T08:30:00.000Z",
"updatedAt": "2026-07-03T16:12:00.000Z"
}
]{
"success": true,
"error": "<string>",
"message": "<string>"
}Authorizations
Your Lane API key, sent in the x-api-key header.
Query Parameters
Only return signals with a priority score at or above this value. Defaults to 0 (all signals).
Maximum number of signals to return. Clamped to between 1 and 100.
1 <= x <= 100Response
A list of signals, newest first.
Stable identifier for deduplication.
The signal's status: Open (not decided yet), Accepted (the team has taken it on) or Closed (the work has shipped).
Open, Accepted, Closed Link to the signal in Lane.
Whether the signal touches customers in a priority tier or with a churn-risk status, as set in the workspace's Context.
Was this page helpful?
