Conversations-2
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
PATCH | |
DELETE | |
POST | |
POST | |
POST | |
GET |
Retrieve conversations tickets
Also available via the PostHog MCP server:
conversations-tickets-retrieve— Get support ticket
Get single ticket and mark as read by team.
Required API key scopes
ticket:readPath parameters
- idstring
Response
Example request
GET /api /projects /:project_id /conversations /tickets /:idExample response
Status 200
Update conversations tickets
Required API key scopes
ticket:writePath parameters
- idstring
Request parameters
- status
- priority
- anonymous_traits
- ai_resolvedboolean
- escalation_reasonstringnull
- sla_due_atstringnull
- snoozed_untilstringnull
- tagsarray
Response
Example request
PATCH /api /projects /:project_id /conversations /tickets /:idExample response
Status 200
Delete conversations tickets
Required API key scopes
ticket:writePath parameters
- idstring
Example request
DELETE /api /projects /:project_id /conversations /tickets /:idExample response
Status 204 No response body
Create conversations tickets suggest reply
Path parameters
- idstring
Response
Example request
POST /api /projects /:project_id /conversations /tickets /:id /suggest_replyExample response
Status 200
Status 400
Status 403
Status 500
Create conversations tickets bulk update tags
Bulk update tags on multiple objects.
PAT access: this action has no required_scopes= on the decorator —
inheriting viewsets must add "bulk_update_tags" to their
scope_object_write_actions list to accept personal API keys.
Without that opt-in, APIScopePermission rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting <scope>:write for one resource doesn't leak access to
sibling resources that share this mixin.
Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}
Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list
Request parameters
- idsarray
- action
- tagsarray
Response
Example request
POST /api /projects /:project_id /conversations /tickets /bulk_update_tagsExample response
Status 200
Create conversations tickets compose
Create a new outbound ticket and send the first message to the customer.
Request parameters
- recipient_emailstring
- recipient_distinct_idstring
- email_subjectstring
- email_config_idstring
- messagestring
- rich_content
Response
Example request
POST /api /projects /:project_id /conversations /tickets /composeExample response
Status 201
Status 400
Retrieve conversations tickets unread count
Get total unread ticket count for the team.
Returns the sum of unread_team_count for all non-resolved tickets. Cached in Redis for 30 seconds, invalidated on changes.
Response
Example request
GET /api /projects /:project_id /conversations /tickets /unread_count