Topics
Retrieve topics discussed in meetings, grouped by meeting.
GET /v1/topicsParameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
recordId | UUID | No | — | Filter to a specific meeting |
dateFrom | string | No | — | Filter by date (ISO 8601) |
dateTo | string | No | — | Filter by date (ISO 8601) |
limit | integer | No | 300 | Max meetings to return (max: 300) |
Response
{
"success": true,
"data": [
{
"recordId": "bd435e76-0eb1-432f-91a8-b4fed18744aa",
"meetingTitle": "Q2 Planning",
"meetingDate": "2026-04-10T14:00:00Z",
"attendees": [{ "name": "John Doe", "email": "john@example.ai" }],
"topics": [
{ "topic": "Q2 Roadmap", "description": "Discussion about priorities and timeline" },
{ "topic": "Hiring Plan", "description": null }
]
}
],
"pagination": {
"totalMeetings": 12,
"totalTopics": 47
}
}Examples
curl -X GET "https://api.optiverse.ai/external-api/v1/topics?dateFrom=2026-01-01T00:00:00Z&limit=10" \
-H "Authorization: Bearer optiuser_v1_your_key_here"const response = await fetch(`${BASE_URL}/v1/topics?recordId=${recordId}`, {
headers: { "Authorization": `Bearer ${API_KEY}` }
});
const { data } = await response.json();
data.forEach(meeting => {
console.log(`${meeting.meetingTitle}: ${meeting.topics.length} topics`);
});