GraphQL API

Endpoint rules and custom queries and mutations.

/api/graphql accepts POST only, JSON or same-origin multipart. Bodies are capped at 1 MB; uploads at 10 MB and 5 files. Lists return at most 100 items. Depth is limited and introspection is off. Bearer API keys, OAuth tokens, and agent credentials are accepted.

Queries

GroupQueries
Public and customerconsultationCatalog, consultationCatalogPage, consultationService, consultationAvailability, customerConsultations, customerConsultationPage, customerConsultation, portalSharedResource
StaffpracticeOverview, practiceWorkspace(category), previewContactImport, portalPolicyWorkspace
ViewerviewerCanAccessDashboard, viewerCanRunConflictChecks, viewerCanResolveConflicts, viewerNeedsFirmOnboarding

Mutations

GroupMutations
Onboarding and peoplecompleteFirmOnboarding, inviteFirmMember, changeFirmMemberAccess, updateFirmRoleAuthority
CustomerregisterConsultationAccount, bookClientConsultation, cancelOwnConsultation
Intake and conflictsstartClientIntake, addIntakeParticipant, changeIntakeParticipant, transitionIntake, scheduleConsultation, transitionConsultation, requestConflictCheck, addConflictSearchTerm, addConflictMatch, transitionConflictCheck, recordConflictDisposition, finalizeConflictCheck, convertIntakeToMatter
Matters and calendartransitionMatter, changeMatterConfidentiality, setMatterTeamAccess, addMatterParty, changeMatterParty, transitionEthicalWall, setEthicalWallMember, recordDocketEntry, reviseDocketEntry, verifyDocketEntry, reviseDraftDeadline, transitionDeadline, transitionLegalTask
DocumentsingestDocumentVersion, setDocumentCurrentVersion, transitionDocument, prepareSignatureRequest, addDocumentSigner, transitionDocumentSigner, transitionSignatureRequest
CommunicationsaddCommunicationParticipant, removeCommunicationParticipant, prepareCommunicationDeliveries, queueCommunicationMessage, transitionCommunicationDelivery
BillingtransitionTimeEntry, transitionExpense, assembleDraftInvoice, transitionInvoice, transitionPayment, recordManualPayment, allocatePayment, reversePaymentAllocation, requestRefund, reviewRefund, recordRefundProviderOutcome, prepareRetainerAgreement, transitionRetainerAgreement
TrustsetTrustAccountBankIdentity, transitionTrustAccount, transitionTrustLedgerAccount, postTrustTransaction, prepareTrustReconciliation, reviseTrustReconciliation, transitionTrustReconciliation
PortalrecordPortalDiscoveryPolicy, executePortalGrant, invitePortalAccount, acceptPortalInvitation, grantPortalMatterAccess, sharePortalResource, revokePortalGrant
RetentiontransitionRetentionPolicy, assignDocumentRetentionPolicy, placeRetentionHold, releaseRetentionHold, disposeRetainedDocument
Integrations and datarotateIntegrationCredential, transitionIntegrationConnection, enqueueWebhookDelivery, rotateWebhookSigningSecret, applyContactImport, preparePracticeExport
Machine accessissueApiKey, revokeApiKey, issueOAuthClient, revokeOAuthClient, issueAgentCredential, revokeAgentCredential, transitionAgentPrincipal, updateAgentGrantAuthority, requestAgentAction, reviewAgentAction, executeAgentAction

Money and access mutations take an idempotency key, run in a serializable transaction under an advisory lock, and write an AuditEvent.

Other routes

/api/oauth/authorize, /api/oauth/token, /api/payment-webhooks/[providerId], /api/health, /api/completion. /api/mcp-transport/http returns 501.

On this page