These reads let your own customer portal show exactly what DevStride's portal would: the conversation without internal notes, and the status label customers see. Pair them with Webhooks so you read when something changed instead of polling.
Needs: read access to the tickets, as for any API read. An API key sees the organization's tickets as its owner does in DevStride.
Add visibility=public to the comment reads. Internal notes are left out; everything else is unchanged, including paging.
# Top-level comments on a ticket
curl "https://api.devstride.com/v1/organizations/$ORG_ID/item-comments?itemNumber=I123&visibility=public&limit=50" \
-u "$DEVSTRIDE_API_KEY:$DEVSTRIDE_API_SECRET"
# Replies under one of them
curl "https://api.devstride.com/v1/organizations/$ORG_ID/item-comments/$COMMENT_ID/replies?visibility=public" \
-u "$DEVSTRIDE_API_KEY:$DEVSTRIDE_API_SECRET"
Only public is accepted. A filter can narrow what you may read, never widen it.
Add includeCustomerStatus=true to a ticket read or a ticket list. Each ticket then carries customerStatus, the label the customer portal shows:
customerStatus | Shown to the customer as |
|---|---|
open | Open |
in_progress | In progress |
awaiting_your_reply | Awaiting your reply: staff wrote the last customer-visible message on an open ticket |
solved | Solved |
closed | Closed |
Ordinary work items carry customerStatus: null. Without the parameter the field is not included at all.
curl "https://api.devstride.com/v1/organizations/$ORG_ID/work-items/I123?includeCustomerStatus=true" \
-u "$DEVSTRIDE_API_KEY:$DEVSTRIDE_API_SECRET"
The labels follow your organization's Service Desk status settings, so they match your portal.
GET /items takes these filters, alone or combined, with includeCustomerStatus=true if you want the labels:
| Filter | Matches |
|---|---|
requesterId | Tickets of these requesters. |
companyId | Tickets raised for these companies: the company recorded on the ticket when its requester was attached. A ticket stays with that company if the requester later moves. |
channel=api | Tickets that came in through the API (also email, portal, sms). |
curl "https://api.devstride.com/v1/organizations/$ORG_ID/items?itemType=workitem&companyId=$COMPANY_ID&includeCustomerStatus=true&limit=50" \
-u "$DEVSTRIDE_API_KEY:$DEVSTRIDE_API_SECRET"