get_ai_project_details

ArtificialIntelligenceApi.get_ai_project_details(project_id, role_id, projection_expression=None, _request_timeout=None, _request_auth=None, _content_type=None, _headers=None, _host_index=0)

Get AI project details

Returns one AI project, including its metadata, assistant settings, your access level, linked knowledge bases and agents (with sync status), uploaded files (with indexing status), and when project context was last refreshed. You need at least read-only access. If resource ACLs are enabled on the project, knowledge bases and agents you cannot access are omitted, except the platform agents SummarizerAgent, DatalabellerAgent, and ErrorDiagnosisAgent, which always appear. Links to deleted knowledge bases or agents are also omitted, so these lists can be shorter than what was saved. AvatarURL is a short-lived download URL and is included only when an avatar has been uploaded. Model includes AdaptiveThinking and Effort from the models catalog. This operation does not change any data.

Parameters:
  • project_id (str) – (required)

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

  • projection_expression (str) – Accepted for consistency with the list endpoint, but ignored. This operation always returns the full project.

  • _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:

GetProjectDetailsResponse

Returns:

Returns the result object.

Request and Response Examples

HTTP: GET /ai/projects/{project_id}

Success (HTTP 200)

The full project, including assistant settings, linked resources, and files.

Request / response example

{
  "ProjectId": "7c9e6f3a-2b41-4d8e-9a15-6f0c2d5b8e41",
  "ProjectName": "Contracts Assistant",
  "ProjectStatus": "configured",
  "Message": "Updated project components successfully",
  "Description": "Answers questions over the contract archive",
  "Keywords": [
    "contracts",
    "legal"
  ],
  "Category": "Legal",
  "EnforceResourceACLs": true,
  "SmartChunking": true,
  "ChatbotName": "Contracts Copilot",
  "Instructions": "Answer only from the linked contracts. Cite the contract name for every claim.",
  "Greeting": "Hi, ask me anything about our contracts.",
  "ChatSuggestions": [
    "Which contracts renew this quarter?"
  ],
  "CreationTime": "2026-04-11 15:02:33",
  "CreatedBy": "apatel",
  "LastModifiedTime": "2026-06-20 08:31:10",
  "LastModifiedBy": "apatel",
  "Model": {
    "ModelId": "anthropic.claude-sonnet-4-20250514-v1:0",
    "ModelName": "Claude Sonnet 4",
    "AdaptiveThinking": true,
    "Effort": [
      "low",
      "medium",
      "high"
    ]
  },
  "GuardRail": {
    "Id": "gr-8f21c47d",
    "Name": "default-chat-guardrail",
    "Version": "DRAFT",
    "IsDefault": true
  },
  "AvatarURL": "https://example-ml-bucket.s3.us-east-1.amazonaws.com/projects/7c9e6f3a-2b41-4d8e-9a15-6f0c2d5b8e41/avatar.png?X-Amz-Signature=REDACTED",
  "LastContextRefreshedTime": "2026-06-19 22:04:11",
  "Knowledgebases": [
    {
      "KnowledgebaseId": "2a7d4c19-5e83-4b02-9f61-c3d8a05b7e42",
      "KnowledgebaseName": "contract-archive",
      "Description": "Signed contracts, 2019 onwards",
      "KnowledgebaseType": "unstructured",
      "LastSyncedStatus": "SUCCEEDED",
      "LastSyncedTime": "2026-06-19 22:04:11"
    }
  ],
  "Agents": [
    {
      "AgentId": "9b3e1f60-7a24-4c85-8d19-2f6b0c4a5e37",
      "AgentName": "clause-extractor",
      "DisplayName": "Clause Extractor",
      "Description": "Extracts named clauses from a contract",
      "ReferenceId": "AGENTREF01",
      "AgentAliasId": "ALIAS01",
      "LastModifiedTime": "2026-06-14 10:22:48",
      "AgentStatus": "PREPARED",
      "AgentType": "CUSTOM",
      "ModelId": "anthropic.claude-sonnet-4-20250514-v1:0"
    }
  ],
  "Files": [
    {
      "FileName": "acme-msa.pdf",
      "FileSize": 481203,
      "FileType": "pdf",
      "UploadTime": "2026-06-18 09:11:02",
      "SyncStatus": "INDEXED",
      "LastSyncedStatus": "SUCCEEDED",
      "LastSyncedTime": "2026-06-18 09:13:40"
    }
  ],
  "ProjectStewards": [
    "jsmith"
  ],
  "AccessType": "owner"
}

Errors

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

HTTP 400

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

Request / response example

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

HTTP 404

The project does not exist. The body is {“Message”: “IPV-1002 - Invalid ProjectId - <id>, resource not found.”}. This is the only AI project operation that returns 404 for a missing project; update and delete return the same error as 400.

Request / response example

{
  "Message": "IPV-1002 - Invalid ProjectId - 7c9e6f3a-2b41-4d8e-9a15-6f0c2d5b8e41, resource not found."
}

HTTP 500

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

Request / response example

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