GETpartial

Read authorized procedural message threads

Flag-gated account operation over the existing hosted authorization boundary. Requires the approving account’s current party access. OAuth never grants administrator or reviewer authority. Typed channels retain separate hosted-thread and partner-notice authority and visibility. Partner writes require message:create and Idempotency-Key.

/api/cases/{id}/messageslistAccountCaseMessages

Authentication and authority

Use one listed account-session, scoped OAuth, or partner credential alternative. Account tokens retain the approving account’s authority. Cookie-authenticated writes require same-origin authorization. Alternatives are OR; schemes in one alternative are AND.

CanonicalSession

AccountOAuth

Account tokens authorize only their approving account and case scope. S256 PKCE is mandatory on the code flow. Explicit reacceptance is required after Rules/disclosure changes.

CanonicalPartnerBearer

Parameters

NameLocationRequirementSchema
idpathRequired{"type":"string"}
channel

Partner bearer calls must select partner_notice. Account/session clients use hosted_thread; omission preserves existing account clients.

queryOptional{"type":"string","enum":["hosted_thread","partner_notice"]}

Responses

200

Authorized result.

application/json

{
  "$ref": "#/components/schemas/CanonicalListAccountCaseMessagesResponse",
  "type": "object",
  "properties": {
    "data": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/CanonicalHostedThreadList",
          "type": "object",
          "properties": {
            "threads": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CanonicalHostedThread",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "visibility": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "createdAt": {
                    "type": "string"
                  },
                  "updatedAt": {
                    "type": "string"
                  },
                  "closedAt": {
                    "type": "string"
                  },
                  "canReply": {
                    "type": "boolean"
                  },
                  "proceduralRequest": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "kind": {
                        "type": "string"
                      },
                      "requestedRelief": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string"
                      },
                      "responseDueAt": {
                        "type": "string"
                      },
                      "canRule": {
                        "type": "boolean"
                      }
                    }
                  },
                  "messages": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/CanonicalHostedMessage"
                    }
                  }
                },
                "required": [
                  "id",
                  "category",
                  "visibility",
                  "status",
                  "createdAt",
                  "updatedAt",
                  "canReply",
                  "messages"
                ]
              }
            }
          },
          "required": [
            "threads"
          ]
        },
        {
          "$ref": "#/components/schemas/CanonicalPartnerMessageList",
          "type": "object",
          "properties": {
            "messages": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PartnerProceduralMessage",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "schemaVersion",
                  "id",
                  "caseId",
                  "partnerId",
                  "senderKind",
                  "senderCredentialPublicId",
                  "category",
                  "text",
                  "evidenceIds",
                  "messageDigest",
                  "recordEffect",
                  "createdAt"
                ],
                "properties": {
                  "schemaVersion": {
                    "type": "string",
                    "const": "partner-procedural-message-v2"
                  },
                  "id": {
                    "type": "string"
                  },
                  "caseId": {
                    "type": "string"
                  },
                  "partnerId": {
                    "type": "string"
                  },
                  "senderKind": {
                    "type": "string",
                    "enum": [
                      "party",
                      "platform"
                    ]
                  },
                  "senderSide": {
                    "type": "string",
                    "enum": [
                      "claimant",
                      "respondent"
                    ]
                  },
                  "senderCredentialPublicId": {
                    "type": "string",
                    "description": "Public credential identity; the internal persistence identifier is never returned."
                  },
                  "category": {
                    "type": "string",
                    "enum": [
                      "clarification_request",
                      "clarification_response",
                      "evidence_request",
                      "procedural_notice",
                      "settlement_coordination"
                    ]
                  },
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "replyToMessageId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "evidenceIds": {
                    "type": "array",
                    "maxItems": 8,
                    "uniqueItems": true,
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    }
                  },
                  "messageDigest": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  "recordEffect": {
                    "type": "string",
                    "const": "none"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                }
              }
            },
            "recordEffect": {
              "type": "string",
              "const": "none"
            }
          },
          "required": [
            "messages",
            "recordEffect"
          ]
        }
      ]
    },
    "requestId": {
      "type": "string"
    }
  },
  "required": [
    "data",
    "requestId"
  ],
  "x-code-source": "lib/proceeding/messages.ts"
}

Example response

Successful response

{
  "data": {
    "threads": [
      {
        "id": "id_test",
        "category": "category_test",
        "visibility": "visibility_test",
        "status": "status_test",
        "createdAt": "createdAt_test",
        "updatedAt": "updatedAt_test",
        "canReply": false,
        "messages": [
          {
            "id": "id_test",
            "sender": {
              "label": "label_test",
              "role": "role_test"
            },
            "body": "body_test",
            "createdAt": "createdAt_test"
          }
        ]
      }
    ]
  },
  "requestId": "requestId_test"
}

Errors

Read the response status and stable error code. See errors and rate limits for recovery. Refresh the resource before resolving a state or digest conflict.

Idempotency and retries

  • For throttling, honor Retry-After when present. Back off on retryable server failures.