List topics
List topics (issues) with filters, message counts, and authors. When embeddingSearch is provided, performs semantic search using vector similarity instead of keyword search. Semantic search finds topics by meaning, useful for queries like “users having trouble with authentication”.
/topicsAuthorizationBearer token · headerrequiredOrganization API key (modem_…).
viewstringDeprecated and ignored. Topics are always served from the current pipeline, whichever value is sent. Accepted so existing requests keep working; omit it in new integrations.
v1v2searchstringKeyword search on title (max 100 chars). Wrap in double-quotes for exact token matching (e.g. "persona" matches the whole word and excludes "personal"). Ignored if embeddingSearch is provided.
embeddingSearchstringSemantic search query using vector similarity. When provided, finds topics by meaning instead of keywords. Overrides the search parameter.
minSimilaritynumberMinimum cosine similarity threshold for embeddingSearch (0-1, higher = more similar). Default 0.7.
categoriesstring[]Filter topics by keywords/categories (OR logic: topic must have ANY of the listed categories). Case-insensitive. For v2 topics a category is a catalog keyword slug (see topics.filterOptions), matched through the topic's open keyword attribution.
excludeCategoriesstring[]Exclude topics by keywords/categories (OR logic: topic must have NONE of the listed categories). Case-insensitive. For v2 topics a category is a catalog keyword slug.
issueTypesstring[]excludeIssueTypesstring[]sourcesstring[]Filter topics by message sources (OR logic: topic must have messages from ANY listed source). Case-insensitive; duplicates are ignored.
excludeSourcesstring[]Exclude topics by message sources (OR logic: topic must have NO messages from ANY listed source). Case-insensitive; duplicates are ignored.
dateRangeobjectFilter topics by time range overlap
sortBystringSort order. 'groups' sorts by the number of groups. Use 'similarity' with embeddingSearch for best results.
dategroupslifecycleprioritysimilaritysortOrderstringascdescprioritiesstring[]excludePrioritiesstring[]lifecycleStatesstring[]Filter topics by lifecycle state. "unknown" also matches topics with no lifecycle assessment.
companiesstring[]Filter topics by company IDs (OR logic: topic must have messages from people associated with ANY listed company).
excludeCompaniesstring[]Exclude topics by company IDs (OR logic: topic must have NO messages from people associated with ANY listed company).
productsstring<uuid> | any[]Filter topics by product IDs (OR logic: topic must have messages in a channel mapped to ANY listed product). Pass "none" to also match topics with no product attribution at all.
excludeProductsstring<uuid> | any[]Exclude topics by product IDs (OR logic: topic must have NO messages in a channel mapped to ANY listed product). Pass "none" to exclude topics with no product attribution at all.
sourceContainersstring<uuid>[]Filter topics by source container IDs (OR logic: topic must draw evidence from ANY listed container). v2 only.
excludeSourceContainersstring<uuid>[]Exclude topics by source container IDs (OR logic: topic must draw evidence from NONE of the listed containers). v2 only.
personsstring[]Filter topics by person IDs (OR logic: topic must have messages from ANY listed person).
excludePersonsstring[]Exclude topics by person IDs (OR logic: topic must have messages from NONE of the listed people).
ticketStatusesstring[]Filter by linked ticket presence. "has_ticket" = has any linked ticket, "none" = no linked ticket.
excludeTicketStatusesstring[]Exclude by linked ticket presence. "has_ticket" excludes topics with tickets, "none" excludes topics without tickets.
teamResponsestring[]Filter by team response status. "not_responded" = no team member replied, "fully_responded" = team replied in all groups, "partially_responded" = team replied in some groups.
pageintegerlimitintegerOK
dataobject[]requiredShow propertiesHide properties
objectauthorsobject[]requiredShow propertiesHide properties
objectdisplayNamestring | nullrequiredOptional display name for the author.
Show propertiesHide properties
stringnullidstring<uuid>requiredShow propertiesHide properties
string<uuid>string<uuid>isBotbooleanrequiredWhether the author is a bot account.
sourceAuthorIdstringrequiredAuthor identifier in the source system.
sourceAvatarUrlstring<uri> | nullrequiredAvatar image URL from the source system.
Show propertiesHide properties
string<uri>nullsourceNamestringrequiredSource system where the author originates.
eventCountintegerrequiredNumber of events grouped under this topic.
idstring<uuid>requiredShow propertiesHide properties
string<uuid>string<uuid>issueTypestring | nullrequiredOptional issue classification for the topic.
Show propertiesHide properties
stringnullkeywordsstring[]requiredKeywords associated with the topic.
lifecycleStatestring | nullrequiredMost recent LLM-assessed lifecycle state for this topic.
Show propertiesHide properties
stringnulllifecycleStateConfidencenumber | nullrequiredConfidence for the most recent lifecycle assessment.
Show propertiesHide properties
numbernulllinkedTicketobject | nullrequiredShow propertiesHide properties
displayNamestringrequiredlinkTypestringrequiredissueprojecturlstring<uri>requirednullmessageCountnumberrequiredpersonsobject[]requiredShow propertiesHide properties
objectavatarUrlstring | nullrequiredShow propertiesHide properties
stringnullcompanyobject | nullrequiredShow propertiesHide properties
domainstring | nullrequiredShow propertiesHide properties
stringnullidstringrequiredisOrgCompanybooleanrequiredlogoUrlstring | nullrequiredShow propertiesHide properties
stringnullnamestringrequirednulldisplayNamestringrequiredidstringrequiredisBotbooleanrequiredisStaffbooleanrequiredprioritystringrequiredPriority level: very_low, low, default, high, or very_high
defaulthighlowvery_highvery_lowsimilaritynumberCosine similarity score (0-1, higher = more similar). Only present when embeddingSearch is used.
sourcesstring[]requiredstaffResponseGroupCountnumberrequiredsummarystringrequiredDescriptive summary of the topic.
timeRangeEndanyEnd of the time range covered by the topic.
timeRangeStartanyStart of the time range covered by the topic.
titlestringrequiredShort human-readable title of the topic.
totalGroupCountnumberrequiredupdatedAtstring<date-time>Timestamp when the topic was last updated.
limitintegerrequiredThe page size used for this response.
pageintegerrequiredThe 1-based page number returned.
totalCountintegerrequiredTotal number of items matching the query, across all pages.
Invalid request (validation failed).
codestringrequiredMachine-readable error code, e.g. NOT_FOUND.
dataanyOptional structured error details.
definedbooleanrequiredTrue if the error was declared in the procedure contract.
messagestringrequiredHuman-readable error message.
statusintegerrequiredHTTP status code.
Missing or invalid API key.
codestringrequiredMachine-readable error code, e.g. NOT_FOUND.
dataanyOptional structured error details.
definedbooleanrequiredTrue if the error was declared in the procedure contract.
messagestringrequiredHuman-readable error message.
statusintegerrequiredHTTP status code.
The API key does not have access to this resource.
codestringrequiredMachine-readable error code, e.g. NOT_FOUND.
dataanyOptional structured error details.
definedbooleanrequiredTrue if the error was declared in the procedure contract.
messagestringrequiredHuman-readable error message.
statusintegerrequiredHTTP status code.
The requested resource was not found.
codestringrequiredMachine-readable error code, e.g. NOT_FOUND.
dataanyOptional structured error details.
definedbooleanrequiredTrue if the error was declared in the procedure contract.
messagestringrequiredHuman-readable error message.
statusintegerrequiredHTTP status code.
Rate limit exceeded.
codestringrequiredMachine-readable error code, e.g. NOT_FOUND.
dataanyOptional structured error details.
definedbooleanrequiredTrue if the error was declared in the procedure contract.
messagestringrequiredHuman-readable error message.
statusintegerrequiredHTTP status code.
Internal server error.
codestringrequiredMachine-readable error code, e.g. NOT_FOUND.
dataanyOptional structured error details.
definedbooleanrequiredTrue if the error was declared in the procedure contract.
messagestringrequiredHuman-readable error message.
statusintegerrequiredHTTP status code.