Skip to content

Post a comment

POST
/comments
curl --request POST \
--url https://app.buildworkpro.com/api/v1/comments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "entityType": "example", "entityId": 1, "content": "example", "parentId": 1 }'

Creates a comment on a record and fans out @mention and thread notifications (in-app only, never email).

Idempotency-Key
string format: uuid
<= 255 characters

Idempotent retry key for mutating operations. The first request with a given key executes normally and BuildWorkPro caches the response. Replaying the same key with the same request body (method + path + JSON body, SHA-256 hashed) returns the cached response without re-executing the mutation. Replaying with a DIFFERENT body returns 409 idempotency_key_reused. The cache TTL is 24 hours; after expiry the key is treated as a new operation. Keys are tenant-scoped. Recommended: a fresh UUID v4 per logical operation.

Media type application/json
object
entityType
required
string
entityId
required
integer
content
required
string
>= 1 characters <= 10000 characters
parentId
integer | null
Example generated
{
"entityType": "example",
"entityId": 1,
"content": "example",
"parentId": 1
}

Created

Media type application/json
object
data
required
object
id
required
integer
entityType
required
string
entityId
required
integer
userId
required
integer | null
content
required
string
parentId
required
integer | null
createdAt
required
Any of:
string
updatedAt
required
Any of:
string
Example generated
{
"data": {
"id": 1,
"entityType": "example",
"entityId": 1,
"userId": 1,
"content": "example",
"parentId": 1,
"createdAt": "example",
"updatedAt": "example"
}
}

Error

Media type application/problem+json
object
type
required

URL identifying the problem type

string format: uri
title
required

Short human-readable summary

string
status
required

HTTP status code

integer
detail

Human-readable explanation

string
request_id

Server-generated request identifier

string
errors

Validation error array (422 only)

Array<object>
object
field
required

Field path that failed validation

string
code
required

Validation error code

string
message
required

Human-readable validation message

string
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}