Update topic
Update a single topic. Supports changing priority, lifecycle state, archiving (archived=true), and unarchiving (archived=false). At least one field must be provided. issueType and keywords are derived by the topic pipeline and cannot be set; sending either returns 400. A topic archived in the v1 to v2 migration returns 404 with data.reason archived_in_v1_to_v2_migration.
/topics/{topicId}AuthorizationBearer token · headerrequiredOrganization API key (modem_…).
topicIdstring<uuid>requiredIdempotency-KeystringReplays a successful mutating request for 24 hours. Reuse with a different payload returns 409.
application/jsonarchivedbooleanSet to true to archive the topic, false to unarchive it.
archivedReasonstringOptional reason for archiving. Only used when archived=true.
issueTypestring | nullNot supported: the topic pipeline derives the issue type. Sending this field returns 400.
Show propertiesHide properties
stringnullkeywordsstring[]Not supported: the topic pipeline derives the keywords. Sending this field returns 400.
lifecycleStatestringUpdate the topic lifecycle state. Valid values: open, in_progress, completed, dismissed. The unknown state is AI-assessed and cannot be set directly.
completeddismissedin_progressopenprioritystringUpdate the topic priority. Valid values: very_low, low, default, high, very_high.
defaulthighlowvery_highvery_lowOK
archivedAtstring<date-time> | nullTimestamp when the topic was archived.
Show propertiesHide properties
string<date-time>nullarchivedByUserIdstring | nullrequiredUser who archived the topic.
Show propertiesHide properties
stringstringnullarchivedReasonstring | nullrequiredOptional reason for archiving.
Show propertiesHide properties
stringnullcreatedAtstring<date-time>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
numbernullprioritystringrequiredPriority level: very_low, low, default, high, or very_high
defaulthighlowvery_highvery_lowpriorityReasoningstring | nullrequiredReasoning from the most recent automatic topic-priority scoring decision. Null when priority was manually overridden or never auto-scored.
Show propertiesHide properties
stringnullsummarystringrequiredDescriptive summary of the topic.
timeRangeEndanytimeRangeStartanytitlestringrequiredShort human-readable title of the topic.
updatedAtstring<date-time>Timestamp when the topic was last updated.
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.
The request conflicts with an existing resource or idempotency operation.
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.