Account Health
Send Account Health Feedback
Say whether a finding was useful
POST
/
api
/
v1
/
account-health
/
insights
/
{insightId}
/
feedback
Send Account Health Feedback
curl --request POST \
--url https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rating": "<string>",
"comment": {}
}
'import requests
url = "https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback"
payload = {
"rating": "<string>",
"comment": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({rating: '<string>', comment: {}})
};
fetch('https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback', 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.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'rating' => '<string>',
'comment' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback"
payload := strings.NewReader("{\n \"rating\": \"<string>\",\n \"comment\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rating\": \"<string>\",\n \"comment\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rating\": \"<string>\",\n \"comment\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"insightId": "ins_123",
"feedback": {
"rating": "not_useful",
"comment": "We already send this from Stripe.",
"updatedAt": "2026-10-15T10:00:00.000Z"
}
}
{
"error": "rating must be one of: useful, not_useful."
}
{
"error": "API key is missing required scope: analytics:read"
}
{
"error": "Insight not found"
}
Tell the Sequenzy team whether a finding from Get Account Health was useful to you. Your answer helps improve the suggestions and changes nothing in your workspace. To hide a finding, use Update Account Health Insight.
Other fields are rejected with a 400.
- Each person has one answer per finding. The answer belongs to the API key’s owner, so anyone answering with that key replaces the owner’s own answer, including one given in the dashboard.
- Sending again replaces the rating. The earlier comment stays unless you send
comment;nullor an empty string clears it. - You can answer for a finding in any status, including dismissed and resolved ones.
- Your answer shows as
feedbackon that finding in Get Account Health.
analytics:read scope, so viewers can answer too.
Request
curl -X POST "https://api.sequenzy.com/api/v1/account-health/insights/ins_123/feedback" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "rating": "not_useful", "comment": "We already send this from Stripe." }'
Path
string
required
The insight ID.
Body
string
required
useful or not_useful.string | null
What made it useful or not, up to 2,000 characters after trimming. Omit to keep an earlier comment;
null or an empty string clears it.Response fields
string
The insight you rated.
object
{
"success": true,
"insightId": "ins_123",
"feedback": {
"rating": "not_useful",
"comment": "We already send this from Stripe.",
"updatedAt": "2026-10-15T10:00:00.000Z"
}
}
{
"error": "rating must be one of: useful, not_useful."
}
{
"error": "API key is missing required scope: analytics:read"
}
{
"error": "Insight not found"
}
⌘I
Send Account Health Feedback
curl --request POST \
--url https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"rating": "<string>",
"comment": {}
}
'import requests
url = "https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback"
payload = {
"rating": "<string>",
"comment": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({rating: '<string>', comment: {}})
};
fetch('https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback', 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.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'rating' => '<string>',
'comment' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback"
payload := strings.NewReader("{\n \"rating\": \"<string>\",\n \"comment\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"rating\": \"<string>\",\n \"comment\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/account-health/insights/{insightId}/feedback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"rating\": \"<string>\",\n \"comment\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"insightId": "ins_123",
"feedback": {
"rating": "not_useful",
"comment": "We already send this from Stripe.",
"updatedAt": "2026-10-15T10:00:00.000Z"
}
}
{
"error": "rating must be one of: useful, not_useful."
}
{
"error": "API key is missing required scope: analytics:read"
}
{
"error": "Insight not found"
}