# Genie List Conversation Messages

Launch stage: GA

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

List messages in a conversation

API scopes: genie

## Path parameters

- `space_id` (string, optional)
  The ID associated with the Genie space where the conversation is located
  Example: `e1ef34712a29169db030324fd0e1df5f`
- `conversation_id` (string, optional)
  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, optional)
    Message ID.
     Legacy identifier, use message_id instead
    Example: `e1ef34712a29169db030324fd0e1df5f`
  - `space_id` (string, optional)
    Genie space ID
    Example: `e1ef34712a29169db030324fd0e1df5f`
  - `conversation_id` (string, optional)
    Conversation ID
    Example: `e1ef34712a29169db030324fd0e1df5f`
  - `user_id` (int64, optional)
    ID of the user who created the message
  - `created_timestamp` (int64, optional)
    Timestamp when the message was created
  - `last_updated_timestamp` (int64, optional)
    Timestamp when the message was last updated
  - `status` (string, optional)
    Possible values: `FETCHING_METADATA`, `FILTERING_CONTEXT`, `ASKING_AI`, `PENDING_WAREHOUSE`, `EXECUTING_QUERY`, `FAILED`, `COMPLETED`, `SUBMITTED`, `QUERY_RESULT_EXPIRED`, `CANCELLED`
    Example: `ASKING_AI`
  - `content` (string, optional)
    User message content
    Example: `Biggest open opportunities`
  - `attachments` (array of object, optional)
    AI-generated response to the message
    - `text` (object, required)
      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, required)
      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)
        Time when the user updated the query last
      - `parameters` (array of object, optional)
      - `id` (string, optional)
      - `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.
      - `query_result_metadata` (object, optional)
        Metadata associated with the query result.
      - `thoughts` (array of object, optional, Public Preview)
        Insights into how Genie came to generate the SQL.
    - `suggested_questions` (object, required)
      Follow-up questions suggested by Genie
      - `questions` (array of string, optional)
        The suggested follow-up questions
    - `viz` (object, required, Beta)
      Visualization generated by Genie, if requested via `enable_visualization`
      - `title` (string, optional, Beta)
        Name of the visualization
      - `query_attachment_id` (string, optional, Beta)
        The ID of the query attachment the visualization was generated from
    - `attachment_id` (string, optional)
      Attachment ID
  - `query_result` (object, optional)
    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)
    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, optional)
    Message ID
    Example: `e1ef34712a29169db030324fd0e1df5f`
  - `feedback` (object, optional)
    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"
}
```

