GET /pulse
curl --request GET \
--url https://api.example.com/pulseimport requests
url = "https://api.example.com/pulse"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/pulse', 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.example.com/pulse",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/pulse"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/pulse")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/pulse")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"community_health_score": 72,
"health_trend": "up",
"moods": [
{ "name": "Joy", "pct": 47, "count": 145, "trend": "up", "delta": 4 },
{ "name": "Hope", "pct": 24, "count": 74, "trend": "flat", "delta": 0 }
],
"states": [
{ "name": "Loneliness", "pct": 29, "trend": "flat", "delta": 0, "hot": false }
],
"topics": [
{ "name": "Feeling replaceable", "trend": "up", "delta": 8, "hot": true }
],
"actions": [
{
"priority": 1,
"label": "Wanting to be seen at +6%",
"action": "Activate peer matching for users sharing this theme"
}
],
"generated_at": "2026-06-15T00:00:00Z"
}
Output
GET /pulse
Returns the full community Affective Intelligence payload
GET
/
pulse
GET /pulse
curl --request GET \
--url https://api.example.com/pulseimport requests
url = "https://api.example.com/pulse"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/pulse', 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.example.com/pulse",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/pulse"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/pulse")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/pulse")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"community_health_score": 72,
"health_trend": "up",
"moods": [
{ "name": "Joy", "pct": 47, "count": 145, "trend": "up", "delta": 4 },
{ "name": "Hope", "pct": 24, "count": 74, "trend": "flat", "delta": 0 }
],
"states": [
{ "name": "Loneliness", "pct": 29, "trend": "flat", "delta": 0, "hot": false }
],
"topics": [
{ "name": "Feeling replaceable", "trend": "up", "delta": 8, "hot": true }
],
"actions": [
{
"priority": 1,
"label": "Wanting to be seen at +6%",
"action": "Activate peer matching for users sharing this theme"
}
],
"generated_at": "2026-06-15T00:00:00Z"
}
Returns the full community Affective Intelligence payload for the requesting organisation’s cohort.
Query parameters
string
default:"30d"
Time window:
7d, 30d, 60d, or all.string
default:"moods,states,topics,actions"
Comma-separated signal layers to include.
integer
default:"10"
Minimum group size for data to be returned.
Response
integer
Composite score from 0–100.
string
up, flat, or down.array
Array of
{name, pct, count, trend, delta} objects.array
Array of
{name, pct, trend, delta, hot} objects.array
Array of
{name, trend, delta, hot} objects.array
Array of
{priority, label, action} objects.string
ISO 8601 timestamp.
Example
curl -X GET "https://api.togetherwithkai.com/v1/affective/pulse?window=30d&layers=all" \
-H "Authorization: Bearer YOUR_API_KEY"
{
"community_health_score": 72,
"health_trend": "up",
"moods": [
{ "name": "Joy", "pct": 47, "count": 145, "trend": "up", "delta": 4 },
{ "name": "Hope", "pct": 24, "count": 74, "trend": "flat", "delta": 0 }
],
"states": [
{ "name": "Loneliness", "pct": 29, "trend": "flat", "delta": 0, "hot": false }
],
"topics": [
{ "name": "Feeling replaceable", "trend": "up", "delta": 8, "hot": true }
],
"actions": [
{
"priority": 1,
"label": "Wanting to be seen at +6%",
"action": "Activate peer matching for users sharing this theme"
}
],
"generated_at": "2026-06-15T00:00:00Z"
}
⌘I