---
title: "TextMessages.list"
method: GET
path: "/entities/TextMessages"
tags: ["Text Message"]
---

# TextMessages.list

`GET /entities/TextMessages`

## Request

- Base URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id`
- URL: `https://us-east.api.coevera.com/api/v100/rest/spaces/your_space_id/entities/TextMessages`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/coevera/apis/coevera-crm-api/docs/entities/TextMessages/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns a page of TextMessage records, optionally filtered, sorted and limited to selected fields.

## Query parameters

- `include-deleted` boolean
- `first` integer
- `last` integer
- `before` string
- `after` string
- `expand` string
- `order-by` string
- `filter` object
- `filter-op` object
- `load-only` string

## Response `200`

Page of TextMessage records.

- object
  - `success` boolean: True when the request succeeded; false on error.
  - `data` TextMessage[]
    - `is_delete_protected` boolean, required: True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
    - `id` string, uuid, required: Unique identifier of entity.
    - `is_deleted` boolean: Specifies if the entity is considered deleted.
    - `modified` string, date-time: Last modification time.
    - `created` string, date-time: Creation time.
    - `chat_conversation` string, uri: AI assistant chat conversation this message belongs to, when applicable. Related ChatConversation record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'ChatConversation' for its fields.
    - `text_message_conversation` string, uri: Conversation this message belongs to. Empty for messages produced by AI chat that do not belong to a thread of customer conversation. Related TextMessageConversation record, returned as the URI of the record. With the 'expand' parameter the full record is returned instead; see 'TextMessageConversation' for its fields.
    - `chat_conversation_id` string, uuid: Id of the AI assistant chat conversation this message belongs to, when applicable.
    - `content` string, required: Body of the message. May be plain text or a JSON payload (e.g. AI assistant examples / suggestions).
    - `datetime_sent` string, date-time: Timestamp the message was sent.
    - `direction` 1 | 2, required: Direction of the message (Incoming, Outgoing). Integer enum value: 1 - OutgoingEmail, 2 - IncomingEmail
    - `message_sid` string: External message identifier from the SMS provider (e.g. Twilio Message SID).
    - `score` integer: Quality score given to the message by the user (e.g. for AI-suggested replies). Used to feed back into the suggestion engine.
    - `status` 1 | 2 | 3 | 4 | 5: Delivery status of the message: Sending, Sent, Seen or Failed for outgoing messages, Received for incoming ones. Integer enum value: 1 - Sending, 2 - Sent, 3 - Failed, 4 - Received, 5 - Seen
    - `text_message_conversation_id` string, uuid: Id of the text message conversation this message belongs to, or empty for AI assistant chat messages.
    - `revision` integer: Revision when entity was lastly changed.
    - `attachments` string[]: Files attached to the message (e.g. MMS attachments).
    - `content_as_html` string, required: HTML-rendered version of the message body, ready for display in chat UIs.
    - `data` string, binary, required: Structured AI payload of the message (examples or suggestions). Empty for regular text messages.
    - `topic_prompts` string, binary, required: List of suggested follow-up prompts produced by the AI for this message. Empty when the AI did not produce prompts.
  - `page_info` object: Pagination of the result; not returned when the legacy limit and offset parameters are used.
    - `start_cursor` string: Cursor of the first record of the page.
    - `end_cursor` string: Cursor of the last record of the page.
    - `has_previous_page` boolean: Whether records exist before this page; pass start_cursor as before to load them.
    - `has_next_page` boolean: Whether records exist after this page; pass end_cursor as after to load them.
  - `total` integer: Number of records that match the request, across all pages.

## Other responses

- `400`: Bad request: a bad or unknown parameter (codes 117, 118), a missing permission (code 50), conflicting data (code 2002) or any other API error. The REST API answers 400 where others answer 403 or 409; check `code`.
- `401`: Not authenticated: missing or wrong credentials, a credential of another space, or an expired token (code 401, ERROR_UNAUTHORIZED).
- `429`: Too many requests (code 182). Wait for the seconds in Retry-After, then retry.
- `500`: Unexpected server error (code 1000, ERROR_UNKNOWN).

---

[API](https://skmtc.dev/coevera/apis/coevera-crm-api.md) - [All operations](https://skmtc.dev/coevera/apis/coevera-crm-api/llms.txt) - [OpenAPI document](https://skmtc.dev/coevera/apis/coevera-crm-api/revisions/40ebbc83f179?raw)
