Post a message to a ticket
const url = 'https://api.aetherplatform.cloud/api/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/tickets/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"body":"example","attachments":["example"],"attachment_ids":["2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.aetherplatform.cloud/api/v1/organizations/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/tickets/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "body": "example", "attachments": [ "example" ], "attachment_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ] }'Appends a message to the thread. The author is derived from the caller’s auth context: author_id from the JWT subject, author_type = provider when the caller holds the platform-admin role, otherwise tenant. Posting recomputes the ticket’s status (a tenant reply reopens a waiting/resolved ticket; a provider reply on an open ticket moves it to in_progress) and stamps first_response_at on the first provider message — all in one transaction.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Organization UUID.
Support ticket UUID.
Request Bodyrequired
Section titled “Request Bodyrequired”object
IDs of pending attachments (previously reserved via the presign-upload endpoint) to confirm onto this message. Each id must be a pending upload owned by this ticket; any foreign/unknown id rejects the whole message (422) and rolls back the transaction.
Examplegenerated
{ "body": "example", "attachments": [ "example" ], "attachment_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ]}Responses
Section titled “Responses”Message created.
object
JWT subject of the author; null for API-token requests.
Opaque legacy attachments blob (structured attachments arrive in a later phase).
Example
{ "author_type": "tenant"}Missing or invalid credentials.
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}The requested resource was not found.
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}Request validation failed.
object
object
A stable, machine-readable error code.
object
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": [ { "field": "example", "code": "example", "message": "example" } ] }}