Skip to content
ShopAssist Docs
APIAPI referenceConversations

List Conversations

Conversations of the store (newest first).

GET/v1/stores/{store_id}/conversationsScope conversations:read

Conversations of the store (newest first).

Parameters

Parameters of List Conversations
NameInTypeDescription
store_idrequiredpathstring
statusquery"open" | "closed" | null
fromquerystring | nullstarted_at >= from
toquerystring | nullstarted_at < to
updated_sincequerystring | null
limitqueryintegerPage size
cursorquerystring | nullCursor from the previous page

Example request

curl -X GET "https://api.shopassist.coec.dk/v1/stores/sto_01j8000000e008000000000000/conversations" \
  -H "Authorization: Bearer $SHOPASSIST_API_KEY"

Response 200 (Page_ApiConversation_)

Response of List Conversations
FieldTypeDescription
datarequiredApiConversation[]
data[].assigned_user_idrequiredstring | nullpattern `^usr_[0-9a-hjkmnp-tv-z]{26}$`
data[].channelrequired"widget" | "playground" | "preview" | "demo" | "api"
data[].closed_atrequiredstring | nullformat date-time
data[].csat_scorerequiredinteger | null
data[].handoff_requested_atrequiredstring | nullformat date-time
data[].handoff_staterequired"none" | "requested" | "live" | "delivered_offline" | "failed" | "resolved"
data[].idrequiredstringpattern `^conv_[0-9a-hjkmnp-tv-z]{26}$`
data[].identity_levelrequired"guest" | "order_lookup" | "order_otp" | "customer"
data[].is_testrequiredboolean
data[].last_message_atrequiredstring | nullformat date-time
data[].localerequiredstring | null
data[].message_countrequiredinteger≥ 0
data[].moderequired"ai" | "human_requested" | "human"
data[].platform_customer_idrequiredstring | nullOnly for identity_level = customer
data[].resolutionrequired"resolved_ai" | "handed_off" | "abandoned" | "unknown" | null
data[].shopperrequiredShopperViewShopper identity as shown on lists (masked for agent/viewer, 06 §5.3).
data[].shopper.emailrequiredstring | null
data[].shopper.is_maskedrequiredboolean
data[].shopper.is_verifiedrequiredboolean
data[].shopper.namerequiredstring | null
data[].started_atrequiredstringformat date-time
data[].statusrequired"open" | "closed"
data[].store_idrequiredstringpattern `^sto_[0-9a-hjkmnp-tv-z]{26}$`
data[].tagsrequiredstring[]
has_morerequiredboolean
next_cursorrequiredstring | nullOpaque cursor for the next page; null on the last page
{
  "data": [
    {
      "assigned_user_id": "usr_01j8000000e008000000000000",
      "channel": "widget",
      "closed_at": "2026-09-28T10:15:30.123Z",
      "csat_score": 1,
      "handoff_requested_at": "2026-09-28T10:15:30.123Z",
      "handoff_state": "none",
      "id": "conv_01j8000000e008000000000000",
      "identity_level": "guest",
      "is_test": true,
      "last_message_at": "2026-09-28T10:15:30.123Z",
      "locale": "da-DK",
      "message_count": 0,
      "mode": "ai",
      "platform_customer_id": "string",
      "resolution": "resolved_ai",
      "shopper": {
        "email": "string",
        "is_masked": true,
        "is_verified": true,
        "name": "string"
      },
      "started_at": "2026-09-28T10:15:30.123Z",
      "status": "open",
      "store_id": "sto_01j8000000e008000000000000",
      "tags": [
        "string"
      ]
    }
  ],
  "has_more": true,
  "next_cursor": "string"
}

Errors

Every error uses the error envelope; the code field is stable.

  • 400 Bad Request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found
  • 422 Unprocessable Content
  • 429 Too Many Requests

Last updated on