get_ai_project_thread

ArtificialIntelligenceApi.get_ai_project_thread(project_id, thread_id, role_id, _request_timeout=None, _request_auth=None, _content_type=None, _headers=None, _host_index=0)

Get project thread details

Returns everything stored about one thread: its title, keywords, visibility, timestamps, attached files, and the generated summary when one exists. Use the thread messages endpoint for the conversation itself. You need at least read-only access to the project. AccessType in the response is owner when you created the thread and read-only otherwise.

Parameters:
  • project_id (str) – Identifier of the project the thread belongs to. You must have at least read-only access to it. (required)

  • thread_id (str) – Identifier of the thread to retrieve. (required)

  • role_id (str) – Amorphic role used to authorize this request. (required)

  • _request_timeout (int, tuple(int, int), optional) – timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts.

  • _request_auth (dict, optional) – set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request.

  • _content_type (str, Optional) – force content-type for the request.

  • _headers (dict, optional) – set to override the headers for a single request; this effectively ignores the headers in the spec for a single request.

  • _host_index (int, optional) – set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request.

Return type:

GetAiProjectThreadResponse

Returns:

Returns the result object.

Request and Response Examples

HTTP: GET /ai/projects/{project_id}/threads/{thread_id}

Success (HTTP 200)

The stored thread. Fields that were never set are omitted, so `Keywords`, `Files`, `Summary` and the summary status fields appear only once the thread has them.

Thread you own, with a summary and one file

{
  "ThreadId": "e2a91c5b-7d64-4f38-91ac-3b5e0d7f2c18",
  "Title": "Q3 revenue analysis",
  "CreatedBy": "john.doe",
  "CreationTime": "2026-07-14 09:12:44",
  "LastModifiedTime": "2026-08-02 16:38:05",
  "ExpirationTime": "2026-09-01 09:12:44",
  "ClientId": "project#7b3f2c18-4a5d-4e91-9c0a-2d6e8f1b3a44",
  "Visibility": "private",
  "AccessType": "owner",
  "IsTitleUpdated": true,
  "Keywords": [
    "revenue",
    "forecast"
  ],
  "Summary": "The thread walks through Q3 revenue by region and flags the EMEA shortfall.",
  "SummaryGenerationStatus": "completed",
  "SummaryGenerationTime": "2026-08-02 16:37:11",
  "Files": [
    {
      "FileName": "q3-revenue.csv",
      "FileSize": 184320,
      "FileType": "text/csv",
      "UploadTime": "2026-07-14 09:20:03",
      "SyncStatus": "INDEXED",
      "LastSyncedTime": "2026-07-14 09:22:40",
      "LastSyncedStatus": "SUCCEEDED"
    }
  ]
}

Thread another member shared, not yet used

{
  "ThreadId": "4c8d1e07-2b93-4a15-8e6f-9d0c7a3b5e21",
  "Title": "New Thread",
  "CreatedBy": "maria.lopez",
  "CreationTime": "2026-08-18 10:05:12",
  "LastModifiedTime": "2026-08-18 10:05:12",
  "ExpirationTime": "2026-09-17 10:05:12",
  "ClientId": "project#7b3f2c18-4a5d-4e91-9c0a-2d6e8f1b3a44",
  "Visibility": "public",
  "AccessType": "read-only"
}

Errors

Documented error codes: IPV-1002, AUTH-1012, AUTH-1001, AUTH-1030, GE-1008.

HTTP 400

The request was invalid or you do not have permission. The body is {“Message”: “<CODE> - <text>”}. Common cases include an unknown project or thread (IPV-1002), no access to the project (AUTH-1012), a missing role_id header (AUTH-1001), or the role lacking ai.view (AUTH-1030). Permission failures return 400, not 403.

Thread does not exist

{
  "Message": "IPV-1002 - Invalid ChatId - e2a91c5b-7d64-4f38-91ac-3b5e0d7f2c18, resource not found."
}

You have no access to the project

{
  "Message": "AUTH-1012 - User: john.doe requires at least read-only access on the resource to perform this action."
}

HTTP 500

An unexpected server error. The body is {“Message”: “GE-1008 - Could not complete the request. Please try again.”}.

Request could not be completed

{
  "Message": "GE-1008 - Could not complete the request. Please try again."
}