{"openapi":"3.1.0","info":{"title":"Case Commander / CourtBriefly API","version":"1.0.0","description":"Full application operations for personal integrations. Authenticate with a scoped personal API token. API and MCP share account permissions and existing plan, storage, and AI allowances. 120 integration requests/minute/account across all tokens. Browser authentication and provider webhooks are not personal-token operations."},"servers":[{"url":"/api/v1"}],"components":{"securitySchemes":{"personalToken":{"type":"http","scheme":"bearer","bearerFormat":"cc_live_…"}}},"paths":{"/account":{"get":{"operationId":"get_account","tags":["account"],"summary":"GET /account","description":"GET /api/account — the signed-in user's account summary.\nPlan / token figures are placeholders until billing (Stripe) is wired up.\n\nRequired permission: account:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"account:read"}},"/account/security":{"get":{"operationId":"get_account_security","tags":["account"],"summary":"GET /account/security","description":"Run the same account operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: account:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"account:read"},"post":{"operationId":"post_account_security","tags":["account"],"summary":"POST /account/security","description":"Run the same account operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: account:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["setup","enable","disable","revoke-sessions"]},"password":{"type":"string"},"code":{"type":"string","maxLength":100}},"required":["action","password"],"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"account:write"}},"/account/terms":{"get":{"operationId":"get_account_terms","tags":["account"],"summary":"GET /account/terms","description":"Read the current terms and required consent version for the selected residence state.\n\nRequired permission: account:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"residenceState","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"account:read"},"post":{"operationId":"post_account_terms","tags":["account"],"summary":"POST /account/terms","description":"Record the user's explicit acceptance after they review the terms. Body: accepted=true, version, residenceState. Never infer consent.\n\nRequired permission: account:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"accepted":{"const":true,"description":"Only send after the user explicitly accepts the returned terms."},"version":{"type":"string","description":"Current version from GET /account/terms."},"residenceState":{"type":"string"}},"required":["accepted","version","residenceState"],"additionalProperties":false}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"account:write"}},"/assistant/chat":{"post":{"operationId":"post_assistant_chat","tags":["assistant"],"summary":"POST /assistant/chat","description":"POST /api/assistant/chat — { caseId, messages: [{role, text}] }\n\nRequired permission: *. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"messages":{},"timeZone":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"*"}},"/billing/checkout":{"post":{"operationId":"post_billing_checkout","tags":["billing"],"summary":"POST /billing/checkout","description":"POST /api/billing/checkout\n  subscription: { plan, interval: \"month\"|\"year\" }\n  one-time:     { kind, quantity?, caseId? }\nReturns { url } — the Stripe Checkout URL to redirect to.\n\nRequired permission: billing:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"plan":{},"interval":{},"kind":{},"quantity":{},"caseId":{"type":["string","null"]},"documentId":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"billing:write"}},"/billing/invoices":{"get":{"operationId":"get_billing_invoices","tags":["billing"],"summary":"GET /billing/invoices","description":"GET /api/billing/invoices — the customer's last 12 Stripe invoices for the\nBilling tab. Returns an empty list (never an error) when the user has no Stripe\ncustomer yet, so the UI can render a clean \"no invoices\" state.\n\nRequired permission: billing:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"billing:read"}},"/billing/portal":{"post":{"operationId":"post_billing_portal","tags":["billing"],"summary":"POST /billing/portal","description":"POST /api/billing/portal — open the Stripe Billing Portal for the current user.\nReturns { url }.\n\nRequired permission: billing:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"billing:write"}},"/billing/refund":{"post":{"operationId":"post_billing_refund","tags":["billing"],"summary":"POST /billing/refund","description":"The buyer explicitly requests a full refund. No staff document review or reason\nis required. Persist the request before Stripe so ambiguous failures can retry.\n\nRequired permission: billing:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"purchaseId":{},"find":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"billing:write"}},"/billing/status":{"get":{"operationId":"get_billing_status","tags":["billing"],"summary":"GET /billing/status","description":"GET /api/billing/status — current entitlements + usage for the billing UI.\n\nRequired permission: billing:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"billing:read"}},"/billing/upgrade":{"post":{"operationId":"post_billing_upgrade","tags":["billing"],"summary":"POST /billing/upgrade","description":"POST /api/billing/upgrade — in-place upgrade from single-product plan(s) to the\nFull Suite. We keep the user's FIRST active single-plan subscription and swap\nits Stripe line item to the suite price (same interval, prorated). Any OTHER\nactive single-plan subscriptions are set to cancel at period end so the user\nisn't double-billed but keeps access until the period they've paid for ends.\nThe local Subscription.plan is flipped to \"suite\" optimistically; the webhook\n(customer.subscription.updated) is the source of truth and will reconfirm it.\n\nRequired permission: billing:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"billing:write"}},"/billing/workspace-seat":{"post":{"operationId":"post_billing_workspace_seat","tags":["billing"],"summary":"POST /billing/workspace-seat","description":"POST /api/billing/workspace-seat — add one $25/mo workspace seat.\nIf the user already has a workspace subscription, bump its quantity (prorated);\notherwise start one via Checkout and return the URL to redirect to.\n\nRequired permission: billing:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"billing:write"},"delete":{"operationId":"delete_billing_workspace_seat","tags":["billing"],"summary":"DELETE /billing/workspace-seat","description":"DELETE /api/billing/workspace-seat — release one seat. Refuses if the user is\nstill using more workspaces than the reduced allowance would permit.\n\nRequired permission: billing:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"billing:write"}},"/case":{"get":{"operationId":"get_case","tags":["case"],"summary":"GET /case","description":"GET /api/case — the case for the ACTIVE CONTEXT (set by the top-left switcher):\n  * workspace context → the user's own case in that workspace (created lazily).\n  * shared context     → the case an owner shared with this user, returned as a\n    collaborator-scoped shell. The layout is identical; permissions simply\n    blank out what hasn't been shared (fail-closed).\n\nRequired permission: case:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"case:read"}},"/case/update":{"post":{"operationId":"post_case_update","tags":["case"],"summary":"POST /case/update","description":"POST /api/case/update — { caseId, caption?, role?, caseNumbers?: [{number,type,court}], keyDates?: [{date,label,kind}] }\ncaseNumbers/keyDates are full-replace arrays when present.\n\nRequired permission: case:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseNumbers":{},"keyDates":{},"caption":{},"role":{},"caseId":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"case:write"}},"/collaboration/restore":{"post":{"operationId":"post_collaboration_restore","tags":["collaboration"],"summary":"POST /collaboration/restore","description":"Run the same collaboration operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: collaboration:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"category":{"type":"string"},"fileId":{"type":"string"},"file":{"type":"string","format":"binary"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"collaboration:write"}},"/collaboration":{"get":{"operationId":"get_collaboration","tags":["collaboration"],"summary":"GET /collaboration","description":"Run the same collaboration operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: collaboration:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"collaboration:read"},"post":{"operationId":"post_collaboration","tags":["collaboration"],"summary":"POST /collaboration","description":"Run the same collaboration operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: collaboration:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"action":{"const":"request"},"caseId":{"type":"string","minLength":1,"maxLength":150},"recipientUserId":{"type":"string","minLength":1,"maxLength":150},"title":{"type":"string","minLength":1,"maxLength":200},"instructions":{"type":"string","maxLength":10000},"dueAt":{"type":"string","format":"date-time"}},"required":["action","caseId","recipientUserId","title"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"submit"},"caseId":{"type":"string","minLength":1,"maxLength":150},"recipientUserId":{"type":"string","minLength":1,"maxLength":150},"requestId":{"type":"string","minLength":1,"maxLength":150},"title":{"type":"string","minLength":1,"maxLength":200},"items":{},"allowReshare":{"type":"boolean"},"includeFirmTeam":{"type":"boolean"}},"required":["action","caseId","recipientUserId","title","items"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"review"},"caseId":{"type":"string","minLength":1,"maxLength":150},"submissionId":{"type":"string","minLength":1,"maxLength":150},"status":{"type":"string","enum":["clarification","reviewed","approved"]},"note":{"type":"string","maxLength":10000}},"required":["action","caseId","submissionId","status"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"message"},"caseId":{"type":"string","minLength":1,"maxLength":150},"audience":{"type":"string","enum":["internal","recipients"]},"recipientUserIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":150},"maxItems":50},"body":{"type":"string","maxLength":10000,"minLength":1}},"required":["action","caseId","audience","body"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"notify-read"},"notificationId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","notificationId"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"remind"},"caseId":{"type":"string","minLength":1,"maxLength":150},"requestId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","caseId","requestId"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"connect-firm"},"caseId":{"type":"string","minLength":1,"maxLength":150},"firmId":{"type":"string","minLength":1,"maxLength":150},"items":{}},"required":["action","caseId","firmId","items"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"accept-connection"},"connectionId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","connectionId"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"request-sponsor"},"caseId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","caseId"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"accept-sponsor"},"caseId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","caseId"],"additionalProperties":true}]}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"collaboration:write"}},"/comms/draft":{"post":{"operationId":"post_comms_draft","tags":["comms"],"summary":"POST /comms/draft","description":"POST /api/comms/draft\n{ caseId, contactId, channel: \"email\"|\"sms\", intent, includeCase?, documentIds?, evidenceIds? }\n\nRequired permission: comms:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{},"caseId":{"type":["string","null"]},"contactId":{"type":["string","null"]},"intent":{"type":["string","null"]},"includeCase":{},"documentIds":{"type":"array","items":{"type":"string"}},"evidenceIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"comms:write"}},"/comms/pull-imported":{"post":{"operationId":"post_comms_pull_imported","tags":["comms"],"summary":"POST /comms/pull-imported","description":"POST /api/comms/pull-imported — { caseId, contactId }\nLinks previously-imported messages whose participant matches this contact\n(by name, or by email) into the contact's threads, so they're available as\ncontext and show in the conversation. Returns how many were linked.\n\nRequired permission: comms:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"contactId":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"comms:write"}},"/contacts":{"get":{"operationId":"get_contacts","tags":["contacts"],"summary":"GET /contacts","description":"GET /api/contacts?caseId= — people for this case, with message counts.\n\nRequired permission: contacts:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"contacts:read"},"post":{"operationId":"post_contacts","tags":["contacts"],"summary":"POST /contacts","description":"POST /api/contacts — { caseId, name, relationship?, email?, phone?, notes? }\n\nRequired permission: contacts:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"name":{"type":["string","null"]},"relationship":{},"email":{},"phone":{},"notes":{},"fields":{},"courtCaseIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"contacts:write"},"patch":{"operationId":"patch_contacts","tags":["contacts"],"summary":"PATCH /contacts","description":"PATCH /api/contacts?id= — { name?, relationship?, email?, phone?, notes? }\n\nRequired permission: contacts:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"relationship":{},"email":{},"phone":{},"notes":{},"fields":{},"courtCaseIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"contacts:write"},"delete":{"operationId":"delete_contacts","tags":["contacts"],"summary":"DELETE /contacts","description":"DELETE /api/contacts?id= — messages keep their history (contactId set null).\n\nRequired permission: contacts:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"contacts:write"}},"/court-cases":{"get":{"operationId":"get_court_cases","tags":["court-cases"],"summary":"GET /court-cases","description":"GET /api/court-cases?caseId=\n\nRequired permission: court-cases:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"court-cases:read"},"post":{"operationId":"post_court_cases","tags":["court-cases"],"summary":"POST /court-cases","description":"POST /api/court-cases — { caseId, number, title?, type?, court?, judge? }\n\nRequired permission: court-cases:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"state":{},"caseId":{"type":["string","null"]},"number":{},"title":{"type":["string","null"]},"type":{},"court":{},"judge":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"court-cases:write"},"patch":{"operationId":"patch_court_cases","tags":["court-cases"],"summary":"PATCH /court-cases","description":"PATCH /api/court-cases?id= — { number?, title?, type?, court?, judge? }\n\nRequired permission: court-cases:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"state":{},"number":{},"title":{"type":["string","null"]},"type":{},"court":{},"judge":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"court-cases:write"},"delete":{"operationId":"delete_court_cases","tags":["court-cases"],"summary":"DELETE /court-cases","description":"DELETE /api/court-cases?id=\n\nRequired permission: court-cases:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"court-cases:write"}},"/developer/tokens":{"get":{"operationId":"get_developer_tokens","tags":["tokens"],"summary":"GET /developer/tokens","description":"Run the same tokens operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: tokens:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"tokens:read"},"post":{"operationId":"post_developer_tokens","tags":["tokens"],"summary":"POST /developer/tokens","description":"Run the same tokens operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: tokens:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"tokens:write"},"patch":{"operationId":"patch_developer_tokens","tags":["tokens"],"summary":"PATCH /developer/tokens","description":"Run the same tokens operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: tokens:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"scopes":{"type":"array","items":{}},"expiresAt":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"tokens:write"},"delete":{"operationId":"delete_developer_tokens","tags":["tokens"],"summary":"DELETE /developer/tokens","description":"Run the same tokens operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: tokens:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1}},"required":["id"],"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"tokens:write"}},"/document-templates/{id}/reviewer":{"post":{"operationId":"post_document_templates_by_id_reviewer","tags":["document-templates"],"summary":"POST /document-templates/{id}/reviewer","description":"Run the same document-templates operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: document-templates:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"document-templates:write"}},"/documents/{id}/court/preview":{"post":{"operationId":"post_documents_by_id_court_preview","tags":["documents"],"summary":"POST /documents/{id}/court/preview","description":"Run the same documents operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"}},"/documents/{id}/court":{"get":{"operationId":"get_documents_by_id_court","tags":["documents"],"summary":"GET /documents/{id}/court","description":"Run the same documents operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: documents:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:read"},"patch":{"operationId":"patch_documents_by_id_court","tags":["documents"],"summary":"PATCH /documents/{id}/court","description":"Run the same documents operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedHash":{},"review":{},"settings":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"},"post":{"operationId":"post_documents_by_id_court","tags":["documents"],"summary":"POST /documents/{id}/court","description":"Run the same documents operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedHash":{},"signatureMode":{},"pngDataUrl":{},"saveSignature":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"}},"/documents/{id}/export":{"get":{"operationId":"get_documents_by_id_export","tags":["documents"],"summary":"GET /documents/{id}/export","description":"Run the same documents operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: documents:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:read"},"post":{"operationId":"post_documents_by_id_export","tags":["documents"],"summary":"POST /documents/{id}/export","description":"Final court exports are explicit POSTs: review and signing must match the\nexact snapshot rendered, and the download fails if its audit write fails.\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"expectedHash":{},"format":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"}},"/documents/{id}/extract":{"post":{"operationId":"post_documents_by_id_extract","tags":["documents"],"summary":"POST /documents/{id}/extract","description":"POST /api/documents/[id]/extract — re-run deterministic text extraction (no AI)\non the document's uploaded file, replacing the body with the extracted text.\nbody: { fileId? }  (defaults to the document's first file)\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"}},"/documents/draft":{"post":{"operationId":"post_documents_draft","tags":["documents"],"summary":"POST /documents/draft","description":"Run the same documents operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"instructions":{"type":["string","null"]},"documentId":{"type":["string","null"]},"templateId":{},"courtCaseId":{"type":["string","null"]},"genericAcknowledged":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"}},"/documents/files/{id}/restore":{"post":{"operationId":"post_documents_files_by_id_restore","tags":["documents"],"summary":"POST /documents/files/{id}/restore","description":"Run the same documents operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"},"acceptMismatch":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"}},"/documents/files/{id}":{"get":{"operationId":"get_documents_files_by_id","tags":["documents"],"summary":"GET /documents/files/{id}","description":"GET /api/documents/files/[id] — stream an uploaded document file (access-checked).\n  ?preview=1 — browser-renderable image (HEIC/HEIF → cached JPEG; others as-is).\n\nRequired permission: documents:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"preview","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:read"}},"/documents":{"get":{"operationId":"get_documents","tags":["documents"],"summary":"GET /documents","description":"GET /api/documents?caseId=&courtCaseId=  (scope-aware)\n\nRequired permission: documents:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"courtCaseId","in":"query","schema":{"type":"string"}},{"name":"folderId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:read"},"post":{"operationId":"post_documents","tags":["documents"],"summary":"POST /documents","description":"POST /api/documents — { caseId, courtCaseId?, title, kind?, body?, templateId? }\nOwner/attorney always; a collaborator may contribute if granted EDIT on the\nwhole documents category (two-way sharing). When `templateId` is given the\nbody/kind/title are built here from a family-court template merged with the\ncase's real data (caption, court file, next hearing, contacts), so the created\ndocument already carries filled-in merge values.\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"title":{"type":["string","null"]},"body":{},"templateId":{},"courtCaseId":{"type":["string","null"]},"folderId":{"type":["string","null"]},"kind":{},"genericAcknowledged":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"},"patch":{"operationId":"patch_documents","tags":["documents"],"summary":"PATCH /documents","description":"PATCH /api/documents?id=  — owner/attorney, or a collaborator with EDIT on this doc.\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":["string","null"]},"body":{},"kind":{},"courtCaseId":{"type":["string","null"]},"folderId":{"type":["string","null"]},"status":{},"filedDate":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"},"delete":{"operationId":"delete_documents","tags":["documents"],"summary":"DELETE /documents","description":"DELETE /api/documents?id=  — owner only (collaborators can't delete the record).\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"}},"/documents/upload":{"post":{"operationId":"post_documents_upload","tags":["documents"],"summary":"POST /documents/upload","description":"POST /api/documents/upload — multipart: caseId + files[] (+ optional paths[]\nparallel to files[] to preserve a dropped folder structure). One Document per\nfile, with the file attached and its text extracted deterministically (no AI).\n\nRequired permission: documents:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"caseId":{"type":"string"},"files":{"type":"array","items":{"type":"string","format":"binary"}},"recordingConsent":{"type":"string"},"paths":{"type":"string"},"folderId":{"type":"string"},"courtCaseId":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"documents:write"}},"/evidence/{id}/extract":{"post":{"operationId":"post_evidence_by_id_extract","tags":["evidence"],"summary":"POST /evidence/{id}/extract","description":"POST /api/evidence/[id]/extract — extract text/context from the item's first\nextractable file (image -> vision, pdf -> document, text -> verbatim).\n\nRequired permission: evidence:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:write"}},"/evidence/{id}":{"get":{"operationId":"get_evidence_by_id","tags":["evidence"],"summary":"GET /evidence/{id}","description":"Run the same evidence operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: evidence:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:read"},"patch":{"operationId":"patch_evidence_by_id","tags":["evidence"],"summary":"PATCH /evidence/{id}","description":"PATCH /api/evidence/[id]\nbody: { description?, eventDate?, eventDateApproximate?, priority?, exhibitNumber?,\n        userText?, userVerified?, issueIds?: string[], tagNames?: string[] }\n\nRequired permission: evidence:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"folderId":{"type":["string","null"]},"issueIds":{"type":"array","items":{"type":"string"}},"courtCaseIds":{"type":"array","items":{"type":"string"}},"hearingIds":{"type":"array","items":{"type":"string"}},"tagNames":{"type":"array","items":{"type":"string"}},"description":{"type":["string","null"]},"eventDate":{"type":["string","null"]},"eventDateApproximate":{},"priority":{},"exhibitNumber":{},"userText":{"type":["string","null"]},"userVerified":{},"source":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:write"},"delete":{"operationId":"delete_evidence_by_id","tags":["evidence"],"summary":"DELETE /evidence/{id}","description":"DELETE /api/evidence/[id] — permanently remove an evidence item.\nOwner-only (destructive). Cascades to its files + audit log + m2m joins. The\nstored blob is content-addressed (possibly shared by another item via dedup),\nso we delete the DB records only; orphaned blobs are reclaimed separately.\n\nRequired permission: evidence:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:write"}},"/evidence/{id}/transcribe":{"post":{"operationId":"post_evidence_by_id_transcribe","tags":["evidence"],"summary":"POST /evidence/{id}/transcribe","description":"POST /api/evidence/[id]/transcribe — speech-to-text for an audio/video file.\nbody: { fileId? }  (defaults to the item's first transcribable file)\n\nRequired permission: evidence:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"fileId":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:write"}},"/evidence/extract-bulk":{"post":{"operationId":"post_evidence_extract_bulk","tags":["evidence"],"summary":"POST /evidence/extract-bulk","description":"POST /api/evidence/extract-bulk\n{ caseId, ids?: string[], onlyMissing?: boolean }\n  - ids given      -> extract those items\n  - no ids         -> all items in the case\n  - onlyMissing    -> skip items that already have aiText\nReturns { processed, skipped, failed, updated: EvidenceItem[] }.\n\nRequired permission: evidence:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"ids":{},"onlyMissing":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:write"}},"/evidence/restore-bulk":{"post":{"operationId":"post_evidence_restore_bulk","tags":["evidence"],"summary":"POST /evidence/restore-bulk","description":"Run the same evidence operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: evidence:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"caseId":{"type":"string"},"files":{"type":"array","items":{"type":"string","format":"binary"}}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:write"}},"/evidence":{"get":{"operationId":"get_evidence","tags":["evidence"],"summary":"GET /evidence","description":"GET /api/evidence?caseId=&q=&issueId=&priority=&tag=\n\nRequired permission: evidence:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"issueId","in":"query","schema":{"type":"string"}},{"name":"priority","in":"query","schema":{"type":"string"}},{"name":"tag","in":"query","schema":{"type":"string"}},{"name":"courtCaseId","in":"query","schema":{"type":"string"}},{"name":"folderId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:read"},"post":{"operationId":"post_evidence","tags":["evidence"],"summary":"POST /evidence","description":"POST /api/evidence — multipart form: caseId + files[]. One evidence item per file.\n\nRequired permission: evidence:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"caseId":{"type":"string"},"files":{"type":"array","items":{"type":"string","format":"binary"}},"paths":{"type":"string"},"recordingConsent":{"type":"string"},"folderId":{"type":"string"},"courtCaseId":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"evidence:write"}},"/export/court-packet":{"get":{"operationId":"get_export_court_packet","tags":["export"],"summary":"GET /export/court-packet","description":"Run the same export operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: export:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"export:read"},"post":{"operationId":"post_export_court_packet","tags":["export"],"summary":"POST /export/court-packet","description":"Run the same export operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: export:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"export:write"}},"/export/evidence-index":{"get":{"operationId":"get_export_evidence_index","tags":["export"],"summary":"GET /export/evidence-index","description":"GET /api/export/evidence-index?caseId= — printable HTML (browser → Print → PDF)\n\nRequired permission: export:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"export:read"}},"/export/message-log":{"get":{"operationId":"get_export_message_log","tags":["export"],"summary":"GET /export/message-log","description":"GET /api/export/message-log?caseId=&party=&from=&to= — paginated, Bates-stamped printable log.\nFree accounts (post-trial, no plan) get a watermarked DRAFT with an unlock\nbutton; trial/paid accounts, or a paid $39 Message Log purchase, get it clean.\n\nRequired permission: export:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"party","in":"query","schema":{"type":"string"}},{"name":"contactId","in":"query","schema":{"type":"string"}},{"name":"channel","in":"query","schema":{"type":"string"}},{"name":"from","in":"query","schema":{"type":"string"}},{"name":"to","in":"query","schema":{"type":"string"}},{"name":"checkout","in":"query","schema":{"type":"string"}},{"name":"conversationParty","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"export:read"}},"/files/{id}/restore":{"post":{"operationId":"post_files_by_id_restore","tags":["files"],"summary":"POST /files/{id}/restore","description":"Run the same files operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: files:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"},"acceptMismatch":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"files:write"}},"/files/{id}":{"get":{"operationId":"get_files_by_id","tags":["files"],"summary":"GET /files/{id}","description":"GET /api/files/[id] — stream the original file (access-checked).\n  ?preview=1 — return a browser-renderable image. For HEIC/HEIF originals\n               (which Chrome/Firefox can't display) this returns a cached\n               JPEG; other types stream as-is. Without it, the raw original\n               is returned (so downloads keep the true file).\nCollaborators need DOWNLOAD permission on the owning evidence item.\n\nRequired permission: files:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"preview","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"files:read"}},"/files/{id}/text":{"get":{"operationId":"get_files_by_id_text","tags":["files"],"summary":"GET /files/{id}/text","description":"GET /api/files/[id]/text — plain-text rendering for files the browser can't show\ninline (currently .docx). Access-checked like the raw file route.\n\nRequired permission: files:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"files:read"}},"/firms/{id}/export":{"get":{"operationId":"get_firms_by_id_export","tags":["firms"],"summary":"GET /firms/{id}/export","description":"Run the same firms operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: firms:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"kind","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"firms:read"}},"/firms":{"get":{"operationId":"get_firms","tags":["firms"],"summary":"GET /firms","description":"Run the same firms operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: firms:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"firms:read"},"post":{"operationId":"post_firms","tags":["firms"],"summary":"POST /firms","description":"Run the same firms operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: firms:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"action":{"const":"create"},"name":{"type":"string","minLength":1,"maxLength":200}},"required":["action","name"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"invite-staff"},"firmId":{"type":"string","minLength":1,"maxLength":150},"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","attorney","staff","billing"]}},"required":["action","firmId","email","role"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"create-matter"},"firmId":{"type":"string","minLength":1,"maxLength":150},"title":{"type":"string","minLength":1,"maxLength":200},"assignedUserIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":150},"maxItems":50}},"required":["action","firmId","title"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"adopt-matter"},"firmId":{"type":"string","minLength":1,"maxLength":150},"caseId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","firmId","caseId"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"assign"},"firmId":{"type":"string","minLength":1,"maxLength":150},"caseId":{"type":"string","minLength":1,"maxLength":150},"userIds":{"type":"array","items":{"type":"string","minLength":1,"maxLength":150},"maxItems":50}},"required":["action","firmId","caseId","userIds"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"remove-staff"},"firmId":{"type":"string","minLength":1,"maxLength":150},"memberId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","firmId","memberId"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"external-link"},"firmId":{"type":"string","minLength":1,"maxLength":150},"caseId":{"type":"string","minLength":1,"maxLength":150},"url":{"anyOf":[{"const":""},{"type":"string","maxLength":2000}]}},"required":["action","firmId","caseId","url"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"archive"},"firmId":{"type":"string","minLength":1,"maxLength":150},"caseId":{"type":"string","minLength":1,"maxLength":150},"archived":{"type":"boolean"}},"required":["action","firmId","caseId","archived"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"settings"},"firmId":{"type":"string","minLength":1,"maxLength":150},"name":{"type":"string","minLength":1,"maxLength":200},"retentionDays":{"type":"integer","minimum":30,"maximum":3650}},"required":["action","firmId","name","retentionDays"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"transfer-owner"},"firmId":{"type":"string","minLength":1,"maxLength":150},"userId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","firmId","userId"],"additionalProperties":true},{"type":"object","properties":{"action":{"const":"accept-ownership"},"firmId":{"type":"string","minLength":1,"maxLength":150}},"required":["action","firmId"],"additionalProperties":true}]}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"firms:write"}},"/folders":{"get":{"operationId":"get_folders","tags":["folders"],"summary":"GET /folders","description":"GET /api/folders?caseId=&kind=evidence|document — the CALLER's folder tree.\n\nRequired permission: folders:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"kind","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"folders:read"},"post":{"operationId":"post_folders","tags":["folders"],"summary":"POST /folders","description":"POST /api/folders — { caseId, name, parentId?, kind? }  — any member; their tree.\n\nRequired permission: folders:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"name":{"type":["string","null"]},"kind":{},"parentId":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"folders:write"},"patch":{"operationId":"patch_folders","tags":["folders"],"summary":"PATCH /folders","description":"PATCH /api/folders?id= — { name } — rename your own folder.\n\nRequired permission: folders:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"folders:write"},"delete":{"operationId":"delete_folders","tags":["folders"],"summary":"DELETE /folders","description":"DELETE /api/folders?id=&deleteItems=true|false\n  deleteItems omitted/false → delete the folder (+ its subfolders); items inside\n                              are KEPT (their folderId is set to null).\n  deleteItems=true         → ALSO permanently delete every item in the folder\n                              and all its subfolders (evidence or documents,\n                              per the folder's kind), cascading their files.\n\nRequired permission: folders:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"deleteItems","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"folders:write"}},"/hearings/{id}/resources":{"get":{"operationId":"get_hearings_by_id_resources","tags":["hearings"],"summary":"GET /hearings/{id}/resources","description":"Run the same hearings operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: hearings:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"browse","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"hearings:read"},"post":{"operationId":"post_hearings_by_id_resources","tags":["hearings"],"summary":"POST /hearings/{id}/resources","description":"Run the same hearings operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: hearings:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"kind":{"const":"evidence"},"id":{"type":"string","minLength":1,"maxLength":150}},"required":["kind","id"],"additionalProperties":false},{"type":"object","properties":{"kind":{"const":"document"},"id":{"type":"string","minLength":1,"maxLength":150},"revision":{"type":"integer"},"role":{"type":"string","enum":["subpoena","our-filing","their-filing","order","other"]}},"required":["kind","id","revision","role"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"hearings:write"}},"/hearings":{"get":{"operationId":"get_hearings","tags":["hearings"],"summary":"GET /hearings","description":"GET /api/hearings?caseId=&courtCaseId=\n\nRequired permission: hearings:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"courtCaseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"hearings:read"},"post":{"operationId":"post_hearings","tags":["hearings"],"summary":"POST /hearings","description":"POST /api/hearings — { caseId, courtCaseId, date, time?, purpose?, location?, judge?, continuedFromId? }\n\nRequired permission: hearings:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"courtCaseId":{"type":["string","null"]},"date":{},"time":{},"purpose":{},"location":{},"room":{},"judge":{},"continuedFromId":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"hearings:write"},"patch":{"operationId":"patch_hearings","tags":["hearings"],"summary":"PATCH /hearings","description":"PATCH /api/hearings?id= — { date?, time?, purpose?, status?, outcome?, location?, judge? }\n\nRequired permission: hearings:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"date":{},"time":{},"purpose":{},"status":{},"location":{},"room":{},"judge":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"hearings:write"},"delete":{"operationId":"delete_hearings","tags":["hearings"],"summary":"DELETE /hearings","description":"DELETE /api/hearings?id=\n\nRequired permission: hearings:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"hearings:write"}},"/issues":{"post":{"operationId":"post_issues","tags":["issues"],"summary":"POST /issues","description":"POST /api/issues  { caseId, title, summary? }\n\nRequired permission: issues:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"title":{"type":["string","null"]},"summary":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"issues:write"}},"/mediation/phrases":{"post":{"operationId":"post_mediation_phrases","tags":["mediation"],"summary":"POST /mediation/phrases","description":"POST /api/mediation/phrases — verbatim \"what to say\" lines from the conversation.\n{ conversation, flow, audience?, otherPartyName?, systemPrompt?, summary?, sessionId? }\nIf sessionId is given, the suggestions are persisted and returned with their ids.\n\nRequired permission: mediation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{},"sessionId":{},"flow":{},"audience":{},"otherPartyName":{},"systemPrompt":{},"summary":{"type":["string","null"]},"refSpeaker":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:write"}},"/mediation/redo":{"post":{"operationId":"post_mediation_redo","tags":["mediation"],"summary":"POST /mediation/redo","description":"POST /api/mediation/redo — one fresh alternative to a rejected line.\n{ conversation, disliked, audience?, otherPartyName?, systemPrompt?, summary?, sessionId? }\n\nRequired permission: mediation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{},"disliked":{},"sessionId":{},"audience":{},"otherPartyName":{},"systemPrompt":{},"summary":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:write"}},"/mediation/session":{"get":{"operationId":"get_mediation_session","tags":["mediation"],"summary":"GET /mediation/session","description":"GET /api/mediation/session?caseId=   → list sessions for a case (newest first)\nGET /api/mediation/session?id=       → one session with transcript + suggestions\n\nRequired permission: mediation:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:read"},"post":{"operationId":"post_mediation_session","tags":["mediation"],"summary":"POST /mediation/session","description":"POST /api/mediation/session — start a session\n{ caseId, title?, audience?, otherParty?, systemPrompt?, testMode?, aiModel? }\n\nRequired permission: mediation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"title":{"type":["string","null"]},"audience":{},"otherParty":{},"systemPrompt":{},"testMode":{},"aiModel":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:write"},"patch":{"operationId":"patch_mediation_session","tags":["mediation"],"summary":"PATCH /mediation/session","description":"PATCH /api/mediation/session — update settings / summary / end the session\n{ id, title?, audience?, otherParty?, systemPrompt?, testMode?, summary?, aiModel?, end? }\n\nRequired permission: mediation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{},"title":{"type":["string","null"]},"audience":{},"otherParty":{},"systemPrompt":{},"testMode":{},"summary":{"type":["string","null"]},"aiModel":{},"end":{},"endedAt":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:write"}},"/mediation/simulate":{"post":{"operationId":"post_mediation_simulate","tags":["mediation"],"summary":"POST /mediation/simulate","description":"POST /api/mediation/simulate — one in-character line for a Test-mode persona.\n{ role: \"mediator\"|\"other\", label, persona?, conversation, summary?, sessionId? }\nPersists the line as a transcript turn when sessionId is given.\n\nRequired permission: mediation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{},"label":{},"sessionId":{},"persona":{},"conversation":{},"summary":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:write"}},"/mediation/suggestion":{"patch":{"operationId":"patch_mediation_suggestion","tags":["mediation"],"summary":"PATCH /mediation/suggestion","description":"PATCH /api/mediation/suggestion — mark a suggested line as used/unused.\n{ id, used }\n\nRequired permission: mediation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{},"used":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:write"}},"/mediation/tts":{"post":{"operationId":"post_mediation_tts","tags":["mediation"],"summary":"POST /mediation/tts","description":"POST /api/mediation/tts — speak a line in a chosen ElevenLabs voice.\n{ text, voiceId? } → { audioBase64, mime, voiceId }\n\nRequired permission: mediation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{},"voiceId":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:write"}},"/mediation/utterance":{"post":{"operationId":"post_mediation_utterance","tags":["mediation"],"summary":"POST /mediation/utterance","description":"POST /api/mediation/utterance — append one or more transcript turns.\n{ sessionId, utterances: [{speaker, text, role?, source?}] }  (or a single {speaker,text,...})\n\nRequired permission: mediation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"sessionId":{},"utterances":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"mediation:write"}},"/messages/analyze":{"post":{"operationId":"post_messages_analyze","tags":["messages"],"summary":"POST /messages/analyze","description":"POST /api/messages/analyze — { caseId, question, party?, from?, to? }\nRuns the user's question across the (filtered) message archive. Findings cite\nmessage numbers (MSG-xxxxx, matching the export's Bates numbering for the same filter).\n\nRequired permission: messages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"question":{},"party":{},"from":{},"to":{},"conversation":{},"history":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:write"}},"/messages/bulk":{"post":{"operationId":"post_messages_bulk","tags":["messages"],"summary":"POST /messages/bulk","description":"POST /api/messages/bulk — bulk operations on imported messages\n{ caseId, op: \"set-direction-by-party\", party, direction }   → fix WhatsApp \"my name\" attribution\n{ caseId, op: \"delete-batch\", batch }                        → undo an import\n\nRequired permission: messages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"op":{},"party":{},"direction":{},"batch":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:write"}},"/messages/check":{"post":{"operationId":"post_messages_check","tags":["messages"],"summary":"POST /messages/check","description":"POST /api/messages/check — { draft, context? } → AI review (not stored; storing happens on send)\n\nRequired permission: messages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"draft":{},"context":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:write"}},"/messages/import":{"post":{"operationId":"post_messages_import","tags":["messages"],"summary":"POST /messages/import","description":"POST /api/messages/import — multipart: caseId, file, attest=yes\n  optional: platform (sms|whatsapp|facebook|instagram|email|other), selfName, otherName, device\nOwn-device/own-account attestation is REQUIRED (see LEGAL_AND_COMPLIANCE.md §6).\n\nRequired permission: messages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"caseId":{"type":"string"},"attest":{"type":"string"},"file":{"type":"string","format":"binary"},"platform":{"type":"string"},"selfName":{"type":"string"},"otherName":{"type":"string"},"device":{"type":"string"}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:write"}},"/messages/imports/{id}":{"get":{"operationId":"get_messages_imports_by_id","tags":["messages"],"summary":"GET /messages/imports/{id}","description":"Run the same messages operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: messages:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:read"}},"/messages":{"get":{"operationId":"get_messages","tags":["messages"],"summary":"GET /messages","description":"GET /api/messages?caseId=&party=&q=&direction=&source=  (scope-aware)\n\nRequired permission: messages:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"party","in":"query","schema":{"type":"string"}},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"direction","in":"query","schema":{"type":"string"}},{"name":"source","in":"query","schema":{"type":"string"}},{"name":"channel","in":"query","schema":{"type":"string"}},{"name":"device","in":"query","schema":{"type":"string"}},{"name":"contactId","in":"query","schema":{"type":"string"}},{"name":"tag","in":"query","schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"string"}},{"name":"conversationParty","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:read"},"post":{"operationId":"post_messages","tags":["messages"],"summary":"POST /messages","description":"POST /api/messages — log a message (Comms Guard \"mark as sent\" / manual entry)\n{ caseId, direction, channel?, party?, body, draftBody?, aiFlagsJson?, aiSuggestion?, aiModel?, sentAt?, source? }\n\nRequired permission: messages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"body":{},"direction":{},"channel":{},"party":{},"contactId":{"type":["string","null"]},"draftBody":{},"aiFlagsJson":{},"aiSuggestion":{},"aiModel":{},"sentAt":{},"source":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:write"},"patch":{"operationId":"patch_messages","tags":["messages"],"summary":"PATCH /messages","description":"PATCH /api/messages?id= — update user-applied tags on a message.\n{ tags: string[] }  → normalized to lowercase, stored as JSON in tagsJson.\n\nRequired permission: messages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"tags":{},"tagsJson":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:write"}},"/messages/search":{"get":{"operationId":"get_messages_search","tags":["messages"],"summary":"GET /messages/search","description":"Search returns positions in the complete visible conversation, not just the\ncurrently loaded page. The reader can jump to any match without hiding context.\n\nRequired permission: messages:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:read"}},"/messages/threads":{"get":{"operationId":"get_messages_threads","tags":["messages"],"summary":"GET /messages/threads","description":"Run the same messages operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: messages:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:read"},"patch":{"operationId":"patch_messages_threads","tags":["messages"],"summary":"PATCH /messages/threads","description":"Rename labels only: the original participant identity and grouping never change.\n\nRequired permission: messages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{},"caseId":{"type":["string","null"]},"partyAlias":{},"selfAlias":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:write"},"delete":{"operationId":"delete_messages_threads","tags":["messages"],"summary":"DELETE /messages/threads","description":"Run the same messages operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: messages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{},"caseId":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"messages:write"}},"/packages/{id}":{"get":{"operationId":"get_packages_by_id","tags":["packages"],"summary":"GET /packages/{id}","description":"Run the same packages operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: packages:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"download","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"packages:read"},"post":{"operationId":"post_packages_by_id","tags":["packages"],"summary":"POST /packages/{id}","description":"Run the same packages operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: packages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["acknowledge","revoke"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"packages:write"}},"/packages":{"post":{"operationId":"post_packages","tags":["packages"],"summary":"POST /packages","description":"Run the same packages operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: packages:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1,"maxLength":200},"purpose":{"type":"string","minLength":1,"maxLength":1000},"items":{},"recipients":{"type":"array","items":{"type":"object","properties":{"userId":{"type":"string","minLength":1},"canDownload":{"type":"boolean"}},"required":["userId","canDownload"],"additionalProperties":true},"minItems":1,"maxItems":50},"expiresAt":{"type":"string","format":"date-time"},"confirmRelease":{"const":true}},"required":["caseId","title","purpose","items","recipients","expiresAt","confirmRelease"],"additionalProperties":false}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"packages:write"}},"/preparation/export":{"get":{"operationId":"get_preparation_export","tags":["preparation"],"summary":"GET /preparation/export","description":"Run the same preparation operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: preparation:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}},{"name":"revision","in":"query","schema":{"type":"string"}},{"name":"id","in":"query","schema":{"type":"string"}},{"name":"audience","in":"query","schema":{"type":"string"}},{"name":"tab","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"preparation:read"}},"/preparation":{"get":{"operationId":"get_preparation","tags":["preparation"],"summary":"GET /preparation","description":"Run the same preparation operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: preparation:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"preparation:read"},"post":{"operationId":"post_preparation","tags":["preparation"],"summary":"POST /preparation","description":"Change preparation records, hearing desks, binders, review records, printing, or backups. GET /preparation first and pass its revision for optimistic concurrency. The server validates action-specific records, sources, permissions, and review fingerprints.\n\nRequired permission: preparation:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":"string"},"revision":{"type":"integer","minimum":0},"action":{"type":"object","properties":{"type":{"type":"string","enum":["save","remove","complete-desk","carry-desk","finish-binder","duplicate-binder","review","print","import-todos","restore"]},"collection":{"type":"string","enum":["facts","decisions","tasks","records","desks","filings","references","relationships","scenarios","binders","dockets","reviews"]},"record":{"type":"object","additionalProperties":true},"id":{"type":"string"},"documentId":{"type":"string"},"workflow":{"type":"string","enum":["correspondence","filing","hearing"]},"checks":{"type":"array","items":{"type":"string"}},"fingerprint":{"type":"string"},"notes":{"type":"string"},"audience":{"type":"string","enum":["court","private"]},"copies":{"type":"integer","minimum":1,"maximum":100},"tab":{"type":"string"},"data":{"type":"object","additionalProperties":true}},"required":["type"],"additionalProperties":true}},"required":["caseId","revision","action"],"additionalProperties":false}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"preparation:write"}},"/shares/accept":{"post":{"operationId":"post_shares_accept","tags":["shares"],"summary":"POST /shares/accept","description":"POST /api/shares/accept  { token }\nA logged-in user accepts an invite via the emailed token. The signed-in\naccount's email MUST match the invited email (the token alone is not enough),\nso a forwarded link can't attach a stranger's account to the share.\n\nRequired permission: shares:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:write"}},"/shares/comments":{"get":{"operationId":"get_shares_comments","tags":["shares"],"summary":"GET /shares/comments","description":"GET /api/shares/comments?caseId=&category=&itemId=\n\nRequired permission: shares:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"itemId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:read"},"post":{"operationId":"post_shares_comments","tags":["shares"],"summary":"POST /shares/comments","description":"POST /api/shares/comments  { caseId, category, itemId, body }\n\nRequired permission: shares:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"category":{},"itemId":{},"body":{},"slice":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:write"}},"/shares/default":{"get":{"operationId":"get_shares_default","tags":["shares"],"summary":"GET /shares/default","description":"Run the same shares operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: shares:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:read"},"patch":{"operationId":"patch_shares_default","tags":["shares"],"summary":"PATCH /shares/default","description":"Run the same shares operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: shares:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"defaultShare":{},"recipientIds":{"type":"array","items":{"type":"string"}}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:write"}},"/shares/inbox":{"get":{"operationId":"get_shares_inbox","tags":["shares"],"summary":"GET /shares/inbox","description":"GET /api/shares/inbox — cases shared WITH the current user (recipient view).\n\nRequired permission: shares:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:read"}},"/shares/invite":{"post":{"operationId":"post_shares_invite","tags":["shares"],"summary":"POST /shares/invite","description":"POST /api/shares/invite\n  { caseId, email, grants: [{ category, allItems?, itemIds?, permission }] }\nOwner-only. Creates/updates the invitation + per-category grants, links an\nexisting account immediately, and emails the recipient.\n\nRequired permission: shares:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"email":{},"grants":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:write"}},"/shares/item":{"get":{"operationId":"get_shares_item","tags":["shares"],"summary":"GET /shares/item","description":"Run the same shares operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: shares:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"category","in":"query","schema":{"type":"string"}},{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"itemId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:read"},"post":{"operationId":"post_shares_item","tags":["shares"],"summary":"POST /shares/item","description":"Run the same shares operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: shares:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{},"permission":{},"recipientIds":{"type":"array","items":{"type":"string"}},"caseId":{"type":["string","null"]},"itemId":{},"allowReshare":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:write"}},"/shares":{"get":{"operationId":"get_shares","tags":["shares"],"summary":"GET /shares","description":"Run the same shares operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: shares:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:read"},"patch":{"operationId":"patch_shares","tags":["shares"],"summary":"PATCH /shares","description":"Run the same shares operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: shares:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"grantId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"permission":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:write"},"delete":{"operationId":"delete_shares","tags":["shares"],"summary":"DELETE /shares","description":"Run the same shares operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: shares:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"grantId","in":"query","schema":{"type":"string"}},{"name":"inviteId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"shares:write"}},"/support/admin":{"patch":{"operationId":"patch_support_admin","tags":["support"],"summary":"PATCH /support/admin","description":"Run the same support operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: support:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"ticketId":{},"referredAt":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"support:write"}},"/support/tickets":{"get":{"operationId":"get_support_tickets","tags":["support"],"summary":"GET /support/tickets","description":"Run the same support operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: support:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"support:read"},"post":{"operationId":"post_support_tickets","tags":["support"],"summary":"POST /support/tickets","description":"Run the same support operation available in the application. Existing account permissions, validation and usage limits apply.\n\nRequired permission: support:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"support:write"}},"/templates/{id}":{"get":{"operationId":"get_templates_by_id","tags":["templates"],"summary":"GET /templates/{id}","description":"Read a blank template's text, notice, and review metadata before creating a document.\n\nRequired permission: templates:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"templates:read"}},"/templates":{"get":{"operationId":"get_templates","tags":["templates"],"summary":"GET /templates","description":"List the blank templates available in the site's template library.\n\nRequired permission: templates:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"templates:read"}},"/timeline":{"get":{"operationId":"get_timeline","tags":["timeline"],"summary":"GET /timeline","description":"GET /api/timeline?caseId=&courtCaseId=\nMerges manual events + evidence event-dates + key dates. With courtCaseId it\nscopes to one court case; without it, the whole matter (\"All cases\").\n\nRequired permission: timeline:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"courtCaseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"timeline:read"},"post":{"operationId":"post_timeline","tags":["timeline"],"summary":"POST /timeline","description":"POST /api/timeline — { caseId, date, title, detail?, dateApproximate?, courtCaseId? }\n\nRequired permission: timeline:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"date":{},"title":{"type":["string","null"]},"detail":{},"dateApproximate":{},"courtCaseId":{"type":["string","null"]}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"timeline:write"},"delete":{"operationId":"delete_timeline","tags":["timeline"],"summary":"DELETE /timeline","description":"DELETE /api/timeline?id=\n\nRequired permission: timeline:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"timeline:write"}},"/todos":{"get":{"operationId":"get_todos","tags":["todos"],"summary":"GET /todos","description":"GET /api/todos?caseId=&courtCaseId=\n\nRequired permission: todos:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"caseId","in":"query","schema":{"type":"string"}},{"name":"courtCaseId","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"todos:read"},"post":{"operationId":"post_todos","tags":["todos"],"summary":"POST /todos","description":"POST /api/todos — { caseId, title, body?, due?, courtCaseId?, hearingId? }\nA hearingId implies its court case; \"General\" = neither set.\n\nRequired permission: todos:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"caseId":{"type":["string","null"]},"title":{"type":["string","null"]},"courtCaseId":{"type":["string","null"]},"hearingId":{},"body":{},"due":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"todos:write"},"patch":{"operationId":"patch_todos","tags":["todos"],"summary":"PATCH /todos","description":"PATCH /api/todos?id= — { title?, body?, done?, due?, courtCaseId?, hearingId? }\n\nRequired permission: todos:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"hearingId":{},"courtCaseId":{"type":["string","null"]},"completedAt":{},"done":{},"title":{"type":["string","null"]},"body":{},"due":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"todos:write"},"delete":{"operationId":"delete_todos","tags":["todos"],"summary":"DELETE /todos","description":"DELETE /api/todos?id=\n\nRequired permission: todos:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"todos:write"}},"/workspaces/{id}":{"patch":{"operationId":"patch_workspaces_by_id","tags":["workspaces"],"summary":"PATCH /workspaces/{id}","description":"PATCH /api/workspaces/:id — rename a workspace / set its client label.\n\nRequired permission: workspaces:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"clientName":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"workspaces:write"},"delete":{"operationId":"delete_workspaces_by_id","tags":["workspaces"],"summary":"DELETE /workspaces/{id}","description":"DELETE /api/workspaces/:id — archive a workspace (soft delete; frees a seat\nfor billing/seat-count purposes the moment it's hidden). The default workspace\ncan't be archived. Cases are retained on the row and simply hidden from the\nswitcher.\n\nRequired permission: workspaces:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"workspaces:write"}},"/workspaces":{"get":{"operationId":"get_workspaces","tags":["workspaces"],"summary":"GET /workspaces","description":"GET /api/workspaces — everything the switcher needs: the active context, the\nworkspaces you own, the accounts that have shared with you, your seat\nallowance, and whether this brand exposes multi-workspace at all.\n\nRequired permission: workspaces:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"workspaces:read"},"post":{"operationId":"post_workspaces","tags":["workspaces"],"summary":"POST /workspaces","description":"POST /api/workspaces — create a new (client) workspace. CourtBriefly only,\nand only within the user's seat allowance (1 free + paid seats). Returns 402\n\"seat_required\" when they need to buy another seat.\n\nRequired permission: workspaces:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"clientName":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"workspaces:write"}},"/workspaces/switch":{"post":{"operationId":"post_workspaces_switch","tags":["workspaces"],"summary":"POST /workspaces/switch","description":"POST /api/workspaces/switch\n  { type: \"workspace\", id }  — switch to a workspace you own\n  { type: \"shared\", id }     — switch to an account that shared cases with you\nSets the active-context cookie (validated server-side, so a forged cookie can\nnever select a tenant you don't belong to).\n\nRequired permission: workspaces:write. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{},"id":{}},"additionalProperties":true}}}},"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"workspaces:write"}},"/templates/{id}/pdf":{"get":{"operationId":"get_templates_by_id_pdf","tags":["templates"],"summary":"Download a blank court template PDF","description":"Download the same blank PDF preview available in the template library.\n\nRequired permission: templates:read. Uses the same validation, case access checks, plan and usage limits as the site. Uploads: 32 MiB total request, 25 MiB per file, 30 files; JSON: 4 MiB. Document extraction: 64 MiB expanded archives, 2000 entries, 500 PDF pages, 2 million text characters and 15 seconds. Resource violations return 413; busy extraction workers return 429. Request properties below are discovery hints; additional action-specific properties are accepted and validated by the shared handler.","security":[{"personalToken":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"X-Case-Context","in":"header","description":"ws:<workspaceId> or matter:<caseId>; validated against your memberships.","schema":{"type":"string"}}],"responses":{"200":{"description":"Operation result; JSON, text, or file depending on the operation.","content":{"application/json":{"schema":{}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"201":{"description":"Created"},"204":{"description":"Completed"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"401":{"description":"Invalid, expired, or revoked token","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"402":{"description":"Plan or usage allowance exhausted","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"403":{"description":"Insufficient token scope or account permission","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"413":{"description":"Request or document processing resource limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"429":{"description":"Rate limited; honor Retry-After","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}},"additionalProperties":true}}}}},"x-required-scope":"templates:read"}}}}