curl --request GET \
--url https://api.platform.dakota.xyz/customers/{customer_id}/insights \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/customers/{customer_id}/insights', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/customers/{customer_id}/insights"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/customers/{customer_id}/insights"
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))
}{
"customer_id": "2vWxCustomer0000000000000000",
"generated_at": 1783075200,
"snapshot": {
"total_usd": "3100.25",
"balances": [
{
"wallet_id": "2vWxWallet000000000000000000",
"name": "Operating",
"network_id": "base-mainnet",
"asset": "USDC",
"amount_usd": "3100.25"
}
],
"upcoming": {
"days": 14,
"count": 3,
"totals": {
"USDC": "5200"
}
},
"open_scheduled_payments": 5,
"active_mandates": 2
},
"insights": [
{
"kind": "upcoming_payments",
"severity": "info",
"message": "3 payment(s) scheduled in the next 14 days (5200 USDC).",
"detail": {
"count": 3,
"window_days": 14
},
"evidence": [
{
"type": "scheduled_payment",
"id": "2vWxPayment00000000000000000"
}
]
}
],
"suggestions": [
{
"kind": "funding_shortfall",
"severity": "critical",
"message": "A funding wallet shows $3100.25 of USDC but 5200 USDC of payments fire from it on base-mainnet in the next 7 days — top up at least ~2099.75 USDC by 2026-07-14 or 3 payment(s) may fail.",
"detail": {
"wallet_id": "2vWxWallet000000000000000000",
"shortfall_estimate": "2099.75"
},
"evidence": [
{
"type": "wallet",
"id": "2vWxWallet000000000000000000"
},
{
"type": "scheduled_payment",
"id": "2vWxPayment00000000000000000"
}
]
}
]
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-identifier",
"title": "Invalid Identifier",
"status": 400,
"detail": "invalid customer id"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Not Found",
"status": 404,
"detail": "customer not found"
}Get the customer's account insight report (BETA)
Beta — early access.
A deterministic, read-only report over the customer’s agentic activity: a snapshot of typed facts (funding-wallet balances, upcoming totals, open payments, active mandates), observations (insights), and advisory recommendations (suggestions). Observations and suggestions share one item schema — {kind, severity, message, detail, evidence} — and every item carries evidence: typed references to the platform objects it was computed from. kind is an OPEN set; clients must ignore kinds they do not recognize. Every number is computed server-side; nothing here moves money or changes state.
curl --request GET \
--url https://api.platform.dakota.xyz/customers/{customer_id}/insights \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/customers/{customer_id}/insights', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/customers/{customer_id}/insights"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/customers/{customer_id}/insights"
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))
}{
"customer_id": "2vWxCustomer0000000000000000",
"generated_at": 1783075200,
"snapshot": {
"total_usd": "3100.25",
"balances": [
{
"wallet_id": "2vWxWallet000000000000000000",
"name": "Operating",
"network_id": "base-mainnet",
"asset": "USDC",
"amount_usd": "3100.25"
}
],
"upcoming": {
"days": 14,
"count": 3,
"totals": {
"USDC": "5200"
}
},
"open_scheduled_payments": 5,
"active_mandates": 2
},
"insights": [
{
"kind": "upcoming_payments",
"severity": "info",
"message": "3 payment(s) scheduled in the next 14 days (5200 USDC).",
"detail": {
"count": 3,
"window_days": 14
},
"evidence": [
{
"type": "scheduled_payment",
"id": "2vWxPayment00000000000000000"
}
]
}
],
"suggestions": [
{
"kind": "funding_shortfall",
"severity": "critical",
"message": "A funding wallet shows $3100.25 of USDC but 5200 USDC of payments fire from it on base-mainnet in the next 7 days — top up at least ~2099.75 USDC by 2026-07-14 or 3 payment(s) may fail.",
"detail": {
"wallet_id": "2vWxWallet000000000000000000",
"shortfall_estimate": "2099.75"
},
"evidence": [
{
"type": "wallet",
"id": "2vWxWallet000000000000000000"
},
{
"type": "scheduled_payment",
"id": "2vWxPayment00000000000000000"
}
]
}
]
}{
"type": "https://docs.dakota.xyz/api-reference/errors#invalid-identifier",
"title": "Invalid Identifier",
"status": 400,
"detail": "invalid customer id"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Not Found",
"status": 404,
"detail": "customer not found"
}Authorizations
Path Parameters
Response
The customer's insight report
The deterministic, read-only insight report for a customer. Computed on demand; nothing is stored.
Typed FACTS about the account — rendered directly by clients, not narrated. balances/total_usd cover the wallets the customer's open payments spend from and are present only when the balance index is configured; they degrade to absent, never to an error.
Show child attributes
Show child attributes
Observations about the account (always present, possibly empty).
Show child attributes
Show child attributes
Advisory recommendations (always present, possibly empty). Non-binding — acting on one is a separate, human-gated step.
Show child attributes
Show child attributes
Was this page helpful?

