Big Michael in a channel
Trace an @BigMichael mention from Teams or Slack: the shared dispatcher parses the command, answers instantly or dispatches async work to the orchestrator, and proactive notifications post results back when the matter task completes.
REST API endpoints
This list documents the route contract as designed in the TypeScript implementation; the Go API on
mainnow covers it (browser OAuth uses static/auth/{google,microsoft,linkedin}/{login,callback}paths rather than:providerparams). The Go API also adds routes the list below predates: playbooks, citations, deadlines, matters (health/budget), dockets, regulatory, pre-bills/invoices/OCG, LPM reports, client-voice, andGET /time-entries/export.ledes. The authoritative Go route map isbiglaw-go/internal/api/(one file per domain group); the README's REST API section reflects it.
POST /tasks submit task (accepts jurisdiction, clientNumber, matterNumber)
GET /tasks list tasks (access-filtered)
GET /tasks/:id get task (403→404 if not permitted)
DELETE /tasks/:id delete a matter
POST /tasks/:id/assign assign lawyer(s) [partner only]
GET /tasks/:id/stream SSE live progress
GET /tasks/:id/table.csv download tabulate output as CSV
POST /tasks/from-template submit from template
GET /tasks/:taskId/rounds/:round get round state
POST /tasks/:taskId/gates/:gateId/approve
POST /tasks/:taskId/gates/:gateId/reject
POST /documents ingest document (text) → returns practiceArea + detectedClient + suggestedLawyers
POST /documents/upload upload a PDF / text file → extract + ingest + classify
GET /documents/search semantic search (owner-scoped)
GET /agents list agents
GET /templates list templates
GET /plugins list loaded external plugins [partner only]
GET /settings read admin settings
PUT /settings update admin settings (live)
GET /me current principal + authEnabled
GET /profiles lawyer roster (includes practiceAreas, bio)
GET /profiles/:id single profile
POST /profiles create lawyer [partner only]
PATCH /profiles/:id update profile [partner, or profile owner (no role change)]
DELETE /profiles/:id remove lawyer [partner only]
POST /profiles/:id/tone/linkedin-import upload LinkedIn ZIP or CSV → build ToneProfile [partner or self, 60s rate limit]
DELETE /profiles/:id/tone clear tone profile [partner or self]
GET /clients client roster [partner only]
POST /clients create client [partner only]
PATCH /clients/:id update client [partner only]
DELETE /clients/:id delete client [partner only]
POST /clients/:id/matters add matter to client [partner only]
DELETE /clients/:id/matters/:num remove matter [partner only]
POST /clients/check-conflict check name against adversary lists [partner only]
GET /time-entries billable time entries (lawyers: own only; partners: all)
query: profileId, taskId, matterNumber, from, to
GET /time-entries/export.json full time entry export as JSON [partner only]
GET /time-entries/export.csv full time entry export as CSV [partner only]
GET /analytics/noslegal NOSLEGAL facet breakdown across visible tasks [partner only]
GET /cost/summary aggregate CostSummary across all calls [partner only]
GET /tasks/:id/cost { taskId, summary, entries } (same access as task)
GET /profiles/:id/cost { profileId, summary, entries } [partner or self]
GET /auth/providers which OAuth providers are configured
GET /auth/:provider/login start OAuth login (google|microsoft|linkedin)
GET /auth/:provider/callback OAuth callback → session cookie
POST /auth/logout clear session
GET /auth/clio/status Clio connection status { connected, firmName, connectedAt }
GET /auth/clio/connect begin Clio OAuth flow [partner only]
GET /auth/clio/callback Clio OAuth callback → store tokens
DELETE /auth/clio/disconnect revoke stored Clio tokens [partner only]
POST /tasks/from-clio-matter import Clio matter → ingest docs → submit task [partner only]
POST /time-entries/sync-to-clio push BigLaw time entries to Clio activities [partner only]
GET /audit query audit log (access-filtered)
GET /audit/stream SSE live audit stream (access-filtered)
GET /health health check
POST /bots/teams/webhook Big Michael Teams Outgoing Webhook receiver
POST /bots/teams/notify Internal: post message to a Teams channel
POST /bots/teams/matter-link Link a matter to a Teams Incoming Webhook URL
GET /bots/teams/matter-link/:mn Get the Teams webhook URL for a matter
DELETE /bots/teams/matter-link/:mn Remove a matter→channel link
POST /bots/slack/events Big Michael Slack Events API receiver
POST /bots/slack/notify Internal: post message to a Slack channel
POST /bots/slack/matter-link Link a matter to a Slack channel ID
GET /bots/slack/matter-link/:mn Get the Slack channel for a matter
DELETE /bots/slack/matter-link/:mn Remove a matter→channel link
POST /redline Playbook-aware contract redline
POST /headnotes/generate Headnote extraction from case opinions
POST /precedents/generate Precedent document generation