curl --request GET \
--url https://api.closedloop.sh/v1/insights/{id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.closedloop.sh/v1/insights/{id}"
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.closedloop.sh/v1/insights/{id}', 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.closedloop.sh/v1/insights/{id}",
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.closedloop.sh/v1/insights/{id}"
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.closedloop.sh/v1/insights/{id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.closedloop.sh/v1/insights/{id}")
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": "123e4567-e89b-42d3-a456-426614174000",
"title": "Users want a dark mode toggle",
"severity": "medium",
"source": "gong_call_abc123",
"created_at": "2026-05-14T10:30:00Z",
"updated_at": "2026-05-15T08:12:00Z",
"products": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "Core Platform",
"status": "active"
}
],
"product_features": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "Scheduled exports",
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"category": "feature request",
"customer_id": "c0ffee00-0000-4000-8000-000000000001",
"customer_name": "Acme Co",
"source_date": "2026-05-14T10:30:00Z",
"feature_area_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"feature_area_name": "Exports",
"product_area_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"product_area_name": "Operations",
"content": "The customer wants a dark mode option for night-time use.",
"quote": "I'd honestly pay more if you just had a dark theme.",
"pain_point": "Bright interface is hard to use in low light.",
"workaround": "Uses a browser dark-mode extension.",
"competitor_gap": "Competitor X ships native dark mode.",
"willingness_to_pay": "High",
"feature_area": "UI/UX",
"source_url": "https://gong.io/calls/abc123"
}Get an insight
Full insight detail with evidence: pain point, workaround, competitor gap, willingness to pay, feature area, product associations, and the verbatim quote.
curl --request GET \
--url https://api.closedloop.sh/v1/insights/{id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.closedloop.sh/v1/insights/{id}"
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.closedloop.sh/v1/insights/{id}', 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.closedloop.sh/v1/insights/{id}",
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.closedloop.sh/v1/insights/{id}"
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.closedloop.sh/v1/insights/{id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.closedloop.sh/v1/insights/{id}")
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": "123e4567-e89b-42d3-a456-426614174000",
"title": "Users want a dark mode toggle",
"severity": "medium",
"source": "gong_call_abc123",
"created_at": "2026-05-14T10:30:00Z",
"updated_at": "2026-05-15T08:12:00Z",
"products": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "Core Platform",
"status": "active"
}
],
"product_features": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "Scheduled exports",
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"category": "feature request",
"customer_id": "c0ffee00-0000-4000-8000-000000000001",
"customer_name": "Acme Co",
"source_date": "2026-05-14T10:30:00Z",
"feature_area_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"feature_area_name": "Exports",
"product_area_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"product_area_name": "Operations",
"content": "The customer wants a dark mode option for night-time use.",
"quote": "I'd honestly pay more if you just had a dark theme.",
"pain_point": "Bright interface is hard to use in low light.",
"workaround": "Uses a browser dark-mode extension.",
"competitor_gap": "Competitor X ships native dark mode.",
"willingness_to_pay": "High",
"feature_area": "UI/UX",
"source_url": "https://gong.io/calls/abc123"
}Authorizations
Team-scoped API key created in the app (Settings → API Keys).
Sent as X-API-Key: <key> on every request. The header name apikey
is also accepted as an alias.
Path Parameters
Resource UUID.
Response
Insight detail
Stable insight ID.
"123e4567-e89b-42d3-a456-426614174000"
"Users want a dark mode toggle"
critical, high, medium, low "medium"
"gong_call_abc123"
Date of the original source event; null when unknown.
"2026-05-14T10:30:00Z"
When the insight last changed; used by incremental export. Moving an insight to another feature area by its own tag changes it; refiling it on an area or a product, and changes to your product structure, do not, so re-read /areas or the insight to see where it is filed now.
"2026-05-15T08:12:00Z"
Active products the insight is filed under. Empty when none.
Show child attributes
Show child attributes
Features this insight supports, ordered by title. Empty when none.
Show child attributes
Show child attributes
"feature request"
The customer account this insight came from (see /customers). Context records use the same id.
"c0ffee00-0000-4000-8000-000000000001"
"Acme Co"
"2026-05-14T10:30:00Z"
The feature area from /areas the insight is filed on. Null when it is filed on an area or a product, or not filed. Never an archived feature area.
"Exports"
The product area the insight is filed under: the area it is filed on, or an area of its feature area. Null when it is filed under none. Never an archived product area.
"Operations"
Insight content (always English).
"The customer wants a dark mode option for night-time use."
Verbatim supporting quote.
"I'd honestly pay more if you just had a dark theme."
"Bright interface is hard to use in low light."
"Uses a browser dark-mode extension."
"Competitor X ships native dark mode."
"High"
"UI/UX"
"https://gong.io/calls/abc123"