# List conversation messages

Launch stage: GA

`GET /api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}/messages`

Lists messages in a chat-mode or agent-mode conversation.
 Agent-mode messages are returned as GenieMessage projections. Use the List conversation items
 endpoint for the complete reasoning and tool-call history.

API scopes: genie

## Path parameters

- `space_id` (string, uuid, required)
  The ID associated with the Genie space where the conversation is located
  Example: `e1ef34712a29169db030324fd0e1df5f`
- `conversation_id` (string, uuid, required)
  The ID of the conversation to list messages from
  Example: `e1ef34712a29169db030324fd0e1df5f`

## Query parameters

- `page_size` (int32, optional)
  Maximum number of messages to return per page
  Default: `20`
  Constraints: `<= 100`
- `page_token` (string, optional)
  Token to get the next page of results

## Returns

- `messages` (array of object, optional)
  List of messages in the conversation.
  - `id` (string, uuid, optional, Deprecated, Output only)
    Message ID.
     Legacy identifier, use message_id instead
    Example: `e1ef34712a29169db030324fd0e1df5f`
  - `space_id` (string, uuid, required)
    Genie space ID
    Example: `e1ef34712a29169db030324fd0e1df5f`
  - `conversation_id` (string, uuid, required)
    Conversation ID
    Example: `e1ef34712a29169db030324fd0e1df5f`
  - `user_id` (int64, optional, Output only)
    ID of the user who created the message
  - `created_timestamp` (int64, optional, Output only)
    Timestamp when the message was created
  - `last_updated_timestamp` (int64, optional, Output only)
    Timestamp when the message was last updated
  - `status` (string, optional, Output only)
    Possible values:
    - `FETCHING_METADATA`
    - `FILTERING_CONTEXT`
    - `ASKING_AI`
    - `PENDING_WAREHOUSE`
    - `EXECUTING_QUERY`
    - `FAILED`
    - `COMPLETED`
    - `SUBMITTED`
    - `QUERY_RESULT_EXPIRED`
    - `CANCELLED`
    Example: `ASKING_AI`
  - `content` (string, required)
    User message content
    Example: `Biggest open opportunities`
  - `attachments` (array of object, optional, Output only)
    AI-generated response to the message
    - `text` (object, optional, Output only)
      Text Attachment if Genie responds with text
       This also contains the final summary when available.
      - `content` (string, optional)
        AI generated message
      - `id` (string, optional)
      - `purpose` (string, optional)
        Purpose of this text attachment. A completed message may contain more than
         one text attachment (for example a clarifying follow-up question alongside
         the final answer); use this field to tell them apart. `TEXT_ATTACHMENT_PURPOSE_ANSWER`
         marks the final answer/summary and `FOLLOW_UP_QUESTION` marks a clarifying question.
        Possible values:
        - `TEXT_ATTACHMENT_PURPOSE_UNSPECIFIED`
        - `FOLLOW_UP_QUESTION`
        - `TEXT_ATTACHMENT_PURPOSE_ANSWER`
    - `query` (object, optional, Output only)
      Query Attachment if Genie responds with a SQL query
      - `title` (string, optional)
        Name of the query
      - `query` (string, optional)
        AI generated SQL query
      - `description` (string, optional)
        Description of the query
      - `last_updated_timestamp` (int64, optional, Output only)
        Time when the user updated the query last
      - `parameters` (array of object, optional)
        - `keyword` (string, optional)
        - `value` (string, optional)
        - `sql_type` (string, optional)
      - `id` (string, optional, Deprecated, Output only)
      - `statement_id` (string, optional, Output only)
        Statement Execution API statement id. Use [Get status, manifest, and result first chunk](:method:statementexecution/getstatement) to get the full result data.
      - `query_result_metadata` (object, optional, Output only)
        Metadata associated with the query result.
        - `row_count` (int64, optional, Output only)
          The number of rows in the result set.
        - `is_truncated` (boolean, optional, Output only)
          Indicates whether the result set is truncated.
      - `thoughts` (array of object, optional, Public Preview, Output only)
        Insights into how Genie came to generate the SQL.
        - `thought_type` (string, optional, Public Preview, Output only)
          The category of this thought.
           The possible values are:
           * `THOUGHT_TYPE_DESCRIPTION`: A high-level description of how the question was interpreted.
           * `THOUGHT_TYPE_UNDERSTANDING`: How ambiguous parts of the question were resolved.
           * `THOUGHT_TYPE_DATA_SOURCING`: Which tables or datasets were identified as relevant.
           * `THOUGHT_TYPE_INSTRUCTIONS`: Which author-defined instructions were referenced.
           * `THOUGHT_TYPE_STEPS`: The logical steps taken to compute the answer.
          Possible values:
          - `THOUGHT_TYPE_UNSPECIFIED`
          - `THOUGHT_TYPE_DESCRIPTION`
          - `THOUGHT_TYPE_UNDERSTANDING`
          - `THOUGHT_TYPE_DATA_SOURCING`
          - `THOUGHT_TYPE_INSTRUCTIONS`
          - `THOUGHT_TYPE_STEPS`
        - `content` (string, optional, Public Preview, Output only)
          The md formatted content for this thought.
    - `suggested_questions` (object, optional, Output only)
      Follow-up questions suggested by Genie
      - `questions` (array of string, optional, Output only)
        The suggested follow-up questions
    - `viz` (object, optional, Output only)
      Visualization generated by Genie, if requested via `enable_visualization`
      - `title` (string, optional, Output only)
        Name of the visualization
      - `query_attachment_id` (string, optional, Output only)
        The ID of the query attachment the visualization was generated from
    - `attachment_id` (string, optional, Output only)
      Attachment ID
  - `query_result` (object, optional, Deprecated, Output only)
    The result of SQL query if the message includes a query attachment.
     Deprecated. Use `query_result_metadata` in `GenieQueryAttachment` instead.
    - `statement_id` (string, optional)
      Statement Execution API statement id. Use [Get status, manifest, and result first chunk](:method:statementexecution/getstatement) to get the full result data.
    - `row_count` (int64, optional)
      Row count of the result
    - `is_truncated` (boolean, optional)
      If result is truncated
    - `statement_id_signature` (string, optional)
      JWT corresponding to the statement contained in this result
  - `error` (object, optional, Output only)
    Error message if Genie failed to respond to the message
    - `error` (string, optional)
    - `type` (string, optional)
      Possible values:
      - `TYPE_UNSPECIFIED`
      - `UNEXPECTED_REPLY_PROCESS_EXCEPTION`
      - `GENERIC_CHAT_COMPLETION_EXCEPTION`
      - `CONTEXT_EXCEEDED_EXCEPTION`
      - `DEPLOYMENT_NOT_FOUND_EXCEPTION`
      - `FUNCTIONS_NOT_AVAILABLE_EXCEPTION`
      - `INVALID_COMPLETION_REQUEST_EXCEPTION`
      - `CONTENT_FILTER_EXCEPTION`
      - `FUNCTION_ARGUMENTS_INVALID_JSON_EXCEPTION`
      - `RETRYABLE_PROCESSING_EXCEPTION`
      - `INVALID_FUNCTION_CALL_EXCEPTION`
      - `LOCAL_CONTEXT_EXCEEDED_EXCEPTION`
      - `CHAT_COMPLETION_NETWORK_EXCEPTION`
      - `INVALID_CHAT_COMPLETION_JSON_EXCEPTION`
      - `GENERIC_CHAT_COMPLETION_SERVICE_EXCEPTION`
      - `WAREHOUSE_ACCESS_MISSING_EXCEPTION`
      - `WAREHOUSE_NOT_FOUND_EXCEPTION`
      - `NO_TABLES_TO_QUERY_EXCEPTION`
      - `SQL_EXECUTION_EXCEPTION`
      - `REPLY_PROCESS_TIMEOUT_EXCEPTION`
      - `COULD_NOT_GET_UC_SCHEMA_EXCEPTION`
      - `INVALID_TABLE_IDENTIFIER_EXCEPTION`
      - `TOO_MANY_TABLES_EXCEPTION`
      - `FUNCTION_ARGUMENTS_INVALID_EXCEPTION`
      - `GENERIC_SQL_EXEC_API_CALL_EXCEPTION`
      - `CHAT_COMPLETION_CLIENT_EXCEPTION`
      - `CHAT_COMPLETION_CLIENT_TIMEOUT_EXCEPTION`
      - `UNKNOWN_AI_MODEL`
      - `TABLES_MISSING_EXCEPTION`
      - `MESSAGE_DELETED_WHILE_EXECUTING_EXCEPTION`
      - `MESSAGE_UPDATED_WHILE_EXECUTING_EXCEPTION`
      - `BLOCK_MULTIPLE_EXECUTIONS_EXCEPTION`
      - `INVALID_CERTIFIED_ANSWER_IDENTIFIER_EXCEPTION`
      - `TOO_MANY_CERTIFIED_ANSWERS_EXCEPTION`
      - `RATE_LIMIT_EXCEEDED_GENERIC_EXCEPTION`
      - `RATE_LIMIT_EXCEEDED_SPECIFIED_WAIT_EXCEPTION`
      - `FUNCTION_CALL_MISSING_PARAMETER_EXCEPTION`
      - `INVALID_CERTIFIED_ANSWER_FUNCTION_EXCEPTION`
      - `ILLEGAL_PARAMETER_DEFINITION_EXCEPTION`
      - `NO_QUERY_TO_VISUALIZE_EXCEPTION`
      - `NO_DEPLOYMENTS_AVAILABLE_TO_WORKSPACE`
      - `STOP_PROCESS_DUE_TO_AUTO_REGENERATE`
      - `FUNCTION_ARGUMENTS_INVALID_TYPE_EXCEPTION`
      - `MESSAGE_CANCELLED_WHILE_EXECUTING_EXCEPTION`
      - `COULD_NOT_GET_MODEL_DEPLOYMENTS_EXCEPTION`
      - `GENERATED_SQL_QUERY_TOO_LONG_EXCEPTION`
      - `MISSING_SQL_QUERY_EXCEPTION`
      - `DESCRIBE_QUERY_UNEXPECTED_FAILURE`
      - `DESCRIBE_QUERY_TIMEOUT`
      - `DESCRIBE_QUERY_INVALID_SQL_ERROR`
      - `INVALID_SQL_UNKNOWN_TABLE_EXCEPTION`
      - `INVALID_SQL_MULTIPLE_STATEMENTS_EXCEPTION`
      - `INVALID_SQL_MULTIPLE_DATASET_REFERENCES_EXCEPTION`
      - `MESSAGE_ATTACHMENT_TOO_LONG_ERROR`
      - `INTERNAL_CATALOG_PATH_OVERLAP_EXCEPTION`
      - `INTERNAL_CATALOG_MISSING_UC_PATH_EXCEPTION`
      - `EXCEEDED_MAX_TOKEN_LENGTH_EXCEPTION`
      - `INTERNAL_CATALOG_ASSET_CREATION_ONGOING_EXCEPTION`
      - `INTERNAL_CATALOG_ASSET_CREATION_FAILED_EXCEPTION`
      - `INTERNAL_CATALOG_ASSET_CREATION_UNSUPPORTED_EXCEPTION`
      - `UNSUPPORTED_CONVERSATION_TYPE_EXCEPTION`
      - `COULD_NOT_GET_DASHBOARD_SCHEMA_EXCEPTION`
  - `message_id` (string, uuid, required)
    Message ID
    Example: `e1ef34712a29169db030324fd0e1df5f`
  - `feedback` (object, optional, Output only)
    User feedback for the message if provided
    - `rating` (string, optional)
      The feedback rating
      Possible values:
      - `GENIE_FEEDBACK_RATING_UNSPECIFIED`
      - `POSITIVE`
      - `NEGATIVE`
      - `NONE`
    - `comment` (string, optional, Public Preview)
      Optional feedback comment text
- `next_page_token` (string, optional)
  The token to use for retrieving the next page of results.

## Response

```json
{
  "messages": [
    {
      "id": "e1ef34712a29169db030324fd0e1df5f",
      "space_id": "e1ef34712a29169db030324fd0e1df5f",
      "conversation_id": "e1ef34712a29169db030324fd0e1df5f",
      "user_id": 0,
      "created_timestamp": 0,
      "last_updated_timestamp": 0,
      "status": "ASKING_AI",
      "content": "Biggest open opportunities",
      "attachments": [
        {}
      ],
      "query_result": {},
      "error": {},
      "message_id": "e1ef34712a29169db030324fd0e1df5f",
      "feedback": {}
    }
  ],
  "next_page_token": "string"
}
```

