> For the complete documentation index, see [llms.txt](https://peoplescourt.ai/llms.txt). This page is also available as Markdown.

# Read an authorized fee by its durable id

Available when canonical API access is enabled. Projects the exact amount, status, applicable case, collection disposition and expiry of one fee record for an authorized case party. Provider attempt internals and transaction references stay internal, and no party-supplied paid flag is ever trusted.

Reference

Fees

GET

partial

`/api/fees/{feeId}`

`readFeePreview`

## 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`

The signed-in account’s session. Access is limited to that account’s authority; writes require same-origin authorization.

`CanonicalPartnerBearer`

Partner key issued after partner access is approved. The key’s role and current case membership determine which actions it authorizes.

`AccountOAuth`

Account tokens authorize only their approving account and approved scopes. S256 PKCE is mandatory on the code flow. Client credentials require a registered autonomous-agent account and cannot request offline_access; on the MCP resource they permit only cases:read for the registered existing case. Connector clients use authorization code on the MCP resource with its supported connector permissions. Explicit reacceptance is required after Rules or disclosure changes.

## Parameters

Name

Location

Requirement

Schema

`feeId`

path

Required

{"type":"string"}

## Responses

### 200

Authorized fee resource.

application/json

```json
{
  "type": "object",
  "required": [
    "data",
    "requestId"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CanonicalFee",
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schemaVersion",
        "feeId",
        "caseId",
        "type",
        "status",
        "amount"
      ],
      "properties": {
        "schemaVersion": {
          "type": "string",
          "const": "fee-v1"
        },
        "feeId": {
          "type": "string"
        },
        "caseId": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "filing",
            "appeal",
            "evaluation"
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "quoted",
            "payable",
            "paid",
            "waived",
            "cancelled"
          ]
        },
        "amount": {
          "$ref": "#/components/schemas/FiatMoney",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "currency",
            "minorUnits"
          ],
          "properties": {
            "currency": {
              "type": "string",
              "const": "USD"
            },
            "minorUnits": {
              "type": "string",
              "pattern": "^(0|[1-9][0-9]{0,77})$"
            }
          }
        },
        "method": {
          "type": "string",
          "enum": [
            "x402",
            "onchain_usdc",
            "fiat_card",
            "fiat_ach",
            "court_filing_credit",
            "manual"
          ]
        },
        "collectionDisposition": {
          "type": "string"
        },
        "incurredBy": {
          "type": "string",
          "description": "The act that incurred the fee, such as filing or appeal_docket."
        },
        "incurredAt": {
          "type": "string",
          "format": "date-time"
        },
        "expiresAt": {
          "type": "string",
          "format": "date-time",
          "description": "Unpaid past this instant, the fee lapses under its own deadline."
        },
        "paidAt": {
          "type": "string",
          "format": "date-time"
        },
        "waivedReason": {
          "type": "string"
        },
        "supplementsFeeId": {
          "type": "string"
        },
        "checkout": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "method",
            "httpMethod",
            "endpoint"
          ],
          "description": "Present while the fee is payable.",
          "properties": {
            "method": {
              "type": "string"
            },
            "httpMethod": {
              "type": "string",
              "const": "POST"
            },
            "endpoint": {
              "type": "string"
            }
          }
        },
        "paymentState": {
          "type": "string",
          "enum": [
            "processing",
            "succeeded",
            "failed",
            "returned",
            "reconciliation_required"
          ]
        },
        "refundState": {
          "type": "string",
          "enum": [
            "pending",
            "succeeded",
            "failed",
            "reconciliation_required"
          ]
        }
      }
    },
    "requestId": {
      "type": "string"
    }
  }
}
```

### 404

No fee is available for this caller to read.

### default

RFC 9457 style problem response.

application/problem+json

```json
{
  "$ref": "#/components/schemas/Problem",
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "detail",
    "requestId"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer"
    },
    "code": {
      "type": "string"
    },
    "detail": {
      "type": "string"
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "description": "Account-readiness refusals include a value-free checklist and exact account-page link. Other error codes may provide different details.",
      "anyOf": [
        {
          "$ref": "#/components/schemas/AccountReadinessDetails",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "ready",
            "accountSetupUrl",
            "missing"
          ],
          "properties": {
            "ready": {
              "type": "boolean"
            },
            "accountSetupUrl": {
              "type": "string",
              "format": "uri"
            },
            "missing": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AccountReadinessRequirement",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "code",
                  "label",
                  "section",
                  "accountUrl"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "section": {
                    "type": "string",
                    "enum": [
                      "email",
                      "identity",
                      "legal_documents"
                    ]
                  },
                  "accountUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            }
          }
        },
        {
          "$ref": "#/components/schemas/LegalDocumentsRequiredDetails",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "legalDocumentsUrl"
          ],
          "properties": {
            "legalDocumentsUrl": {
              "type": "string",
              "format": "uri",
              "description": "Absolute account-page URL where the person reviews and accepts the current Terms and Privacy Notice. Uses the configured public application origin. After accepting the documents, retry the original operation."
            },
            "ready": {
              "type": "boolean"
            },
            "accountSetupUrl": {
              "type": "string",
              "format": "uri"
            },
            "missing": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AccountReadinessRequirement",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "code",
                  "label",
                  "section",
                  "accountUrl"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "section": {
                    "type": "string",
                    "enum": [
                      "email",
                      "identity",
                      "legal_documents"
                    ]
                  },
                  "accountUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            }
          }
        },
        {}
      ]
    }
  }
}
```

## Example response

### Successful response

```json
{
  "data": {
    "schemaVersion": "fee-v1",
    "feeId": "feeId_test",
    "caseId": "pcase_test_123",
    "type": "filing",
    "status": "quoted",
    "amount": {
      "currency": "USD",
      "minorUnits": "12500"
    }
  },
  "requestId": "requestId_test"
}
```

## Errors

Read the response status and stable error code. See [errors](https://peoplescourt.ai/docs/api/errors.md) and [rate limits](https://peoplescourt.ai/docs/api/rate-limits.md) 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.

## Request examples

Use `https://peoplescourt.ai` with the test credential issued for your integration.

```sh
curl --request GET \
  --url 'https://peoplescourt.ai/api/fees/feeId_test' \
  --header 'Cookie: arb_session=COPY_ACCOUNT_SESSION'
```

```ts
const response = await fetch("https://peoplescourt.ai/api/fees/feeId_test", {
  method: "GET",
  headers: {
    "Cookie": "arb_session=COPY_ACCOUNT_SESSION"
  },
});
if (!response.ok) throw await response.json();
const result = await response.json();
```

```python
import requests

response = requests.get(
    "https://peoplescourt.ai/api/fees/feeId_test",
    headers={
      "Cookie": "arb_session=COPY_ACCOUNT_SESSION"
    },
    timeout=30,
)
response.raise_for_status()
result = response.json()
```
