Meetings
The Meetings endpoints of the Kenso API.
Return the meeting's prep brief without its credit and write state
GET
/v1/meetings/{meetingId}/client-briefmeetings.get-client-briefNeeds the meetings feature on your workspace. Until it is on, calls answer 404.
status is ready, not_written or not_eligible (ineligibleReason: not_account_meeting, no_owner, cancelled, owner_declined, no_external_guest, too_many_guests, already_started). version, writtenAt, language, authorSource (ken, agent or user), isStale and staleSince, and sections as GET /v1/meetings/{meetingId}/brief returns them, every line with its sources. No credits, no canWrite or canRefresh, and no write: a member with meetings edit writes or refreshes the brief. Flag meetings; meetings view.
Parameters
Name
In
Type
Required
Description
meetingId
In: path
string
required
Ken-Version
In: header
string, one of: 2026-11-02, 1.1
required
The API version: a dated version (YYYY-MM-DD), or 1.1, another name for the first dated version. Without it the request uses your API key's pinned version; an unpinned key reaches the legacy shape of the same path. 1.0 selects the legacy shape explicitly.
X-Ken-Workspace-Id
In: header
integer (int64)
optional
Workspace to act in. Required when your credential can reach more than one workspace (otherwise
400 workspace_required).Response 200
data is a MeetingClientBriefModel.
Field
Type
Description
meetingId
string
mtg_ id.
status
string
ready, not_written or not_eligible.
ineligibleReason
string
Why the meeting gets no brief: not_account_meeting, no_owner, cancelled, owner_declined, no_external_guest, too_many_guests, already_started. Omitted while the meeting qualifies.
version
integer (int32)
0 until the first brief is written; one more on each rewrite.
writtenAt
string (date-time)
language
string
The language the brief is written in, such as en.
authorSource
string
ken, agent or user; omitted until it is written.
staleSince
string (date-time)
The account's first activity after writtenAt.
isStale
boolean
sections
MeetingBriefSectionsModel
The brief's sections. Attending, relationship and touchHistory come from Kenso's data; the other lines are written by the model, each with its sources.
Request
curl -X GET "https://api.ken.so/v1/meetings/string/client-brief" \ -H "Authorization: Bearer $KEN_API_KEY" \ -H "Ken-Version: 2026-11-02" \ -H "X-Ken-Workspace-Id: $KEN_WORKSPACE_ID"
Response 200
{
"success": true,
"data": {
"meetingId": "string",
"status": "string",
"ineligibleReason": "string",
"version": 1,
"writtenAt": "2026-09-23T15:02:11Z",
"language": "string",
"authorSource": "string",
"staleSince": "2026-09-23T15:02:11Z",
"isStale": true,
"sections": {
"openWith": {
"text": "string",
"sources": [
{
"kind": "string",
"id": "string",
"label": "string",
"url": "https://example.com",
"at": "2026-09-23T15:02:11Z"
}
]
},
"attending": [
{
"name": "string",
"email": "[email protected]",
"title": "string",
"committeeRole": "string",
"isNew": true,
"personId": 812,
"stakeholderId": 812,
"response": "string"
}
],
"gotTheYes": {
"text": "string",
"sources": [
{
"kind": "string",
"id": "string",
"label": "string",
"url": "https://example.com",
"at": "2026-09-23T15:02:11Z"
}
]
},
"relationship": {
"stage": "string",
"touches": 1,
"replies": 1,
"firstContactAt": "2026-09-23T15:02:11Z",
"lastTouchAt": "2026-09-23T15:02:11Z"
},
"whyNow": [
{
"text": "string",
"sources": [
{}
]
}
],
"angle": [
{
"text": "string",
"sources": [
{}
]
}
],
"openItems": [
{
"text": "string",
"sources": [
{}
]
}
],
"touchHistory": [
{
"at": "2026-09-23T15:02:11Z",
"channel": "string",
"direction": "string",
"title": "string",
"personName": "string",
"source": {
"kind": "string",
"id": "string",
"label": "string",
"url": "https://example.com",
"at": "2026-09-23T15:02:11Z"
}
}
],
"dataNote": "string"
}
}
}More in Meetings and calling:Meeting typesBooking linksBookingsExternal bookingsCallingAll resources