API Reference
All registered HTTP routes, auto-generated from source.217
HTTP Routes
28
API Routes
16
Admin Routes
0
Page Routes
API
28
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| POST | /api/chat |
chatPostHandler | cf-access-or-addin-session | json |
| GET | /api/chat/status |
chatStatusHandler | cf-access-or-addin-session | json |
| GET | /api/clause-categories |
apiClauseCategoriesHandler | cf-access-or-addin-session | json |
| GET | /api/clauses/:clauseId |
apiGetClause | cf-access-or-addin-session | json |
| GET | /api/clauses/search |
clauseSearchHandler | cf-access-or-addin-session | json |
| GET | /api/commitments/:commitmentId |
apiGetCommitment | cf-access-or-addin-session | json |
| POST | /api/events |
postReviewEvents | cf-access-or-addin-session | json |
| POST | /api/export-template/draft |
exportTemplateDraftHandler | cf-access-or-addin-session | json |
| POST | /api/feedback |
postFeedback | cf-access-or-addin-session | json |
| GET | /api/feedback/draft |
getFeedbackDraft | cf-access-or-addin-session | json |
| GET | /api/fund-categories |
apiFundCategoriesHandler | cf-access-or-addin-session | json |
| GET | /api/funds |
apiListFunds | cf-access-or-addin-session | json |
| GET | /api/funds/:fundSlug |
apiGetFund | cf-access-or-addin-session | json |
| GET | /api/funds/:fundSlug/clauses |
apiListFundClauses | cf-access-or-addin-session | json |
| GET | /api/funds/:fundSlug/clauses/search |
apiFundClausesSearchHandler | cf-access-or-addin-session | json |
| GET | /api/funds/:fundSlug/commitments |
apiListFundCommitments | cf-access-or-addin-session | json |
| GET | /api/funds/:fundSlug/mfn/calculate |
apiCalculateMfn | cf-access-or-addin-session | json |
| GET | /api/funds/:fundSlug/signals |
apiFundSignalsHandler | cf-access-or-addin-session | json |
| GET | /api/gps |
apiGpsHandler | cf-access-or-addin-session | json |
| GET | /api/investor-categories |
apiInvestorCategoriesHandler | cf-access-or-addin-session | json |
| GET | /api/investors |
apiListInvestors | cf-access-or-addin-session | json |
| GET | /api/investors/:investorId |
apiGetInvestor | cf-access-or-addin-session | json |
| GET | /api/lp-countries |
apiLpCountriesHandler | cf-access-or-addin-session | json |
| GET | /api/lp-profile |
lpProfileHandler | cf-access-or-addin-session | json |
| GET | /api/lp-profile/facets |
lpProfileFacetsHandler | cf-access-or-addin-session | json |
| GET | /api/users/me |
usersMeHandler | cf-access-or-addin-session | json |
| POST | /api/users/switch |
usersSwitchHandler | cf-access-or-addin-session | json |
| GET | /api/users/switcher |
usersSwitcherHandler | cf-access-or-addin-session | json |
Admin
16
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /admin |
adminPage | admin | html |
| GET | /admin/activity |
adminActivityTab | admin | html |
| GET | /admin/documents |
adminDocumentsTab | admin | html |
| POST | /admin/documents/:docId/reparse |
adminReparseDoc | admin | html |
| POST | /admin/documents/reparse-all |
adminReparseAll | admin | html |
| POST | /admin/documents/reparse-all-dlq |
adminReparseAllDlq | admin | html |
| GET | /admin/feedback |
adminFeedbackPage | admin | html |
| POST | /admin/feedback/:id/close |
adminCloseFeedback | admin | html |
| GET | /admin/permissions |
adminPermissionsTab | admin | html |
| POST | /admin/permissions |
adminGrantFund | admin | html |
| DELETE | /admin/permissions/:userFundId |
adminRevokeFund | admin | html |
| POST | /admin/sweep/run |
adminRunSweep | admin | html |
| GET | /admin/templates |
adminTemplatesTab | admin | html |
| POST | /admin/users |
adminCreateUser | admin | html |
| PUT | /admin/users/:id |
adminUpdateUser | admin | html |
| POST | /admin/users/:id/toggle-active |
adminToggleActive | admin | html |
Upload
17
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/upload |
uploadPage | session | html |
| POST | /funds/:fundSlug/upload |
uploadHandler | session | html |
| PUT | /funds/:fundSlug/upload/:docId/clause/:clauseId |
uploadUpdateClauseHandler | session | html |
| PUT | /funds/:fundSlug/upload/:docId/clause/:clauseId/boundary |
uploadBoundaryHandler | session | html |
| POST | /funds/:fundSlug/upload/:docId/confirm |
uploadConfirmHandler | session | html |
| POST | /funds/:fundSlug/upload/:docId/discard |
uploadDiscardHandler | session | html |
| GET | /funds/:fundSlug/upload/:docId/download |
uploadDocumentDownloadHandler | session | file |
| POST | /funds/:fundSlug/upload/:docId/flag |
uploadFlagHandler | session | html |
| GET | /funds/:fundSlug/upload/:docId/inline-parse-status |
inlineParseStatusHandler | session | html |
| POST | /funds/:fundSlug/upload/:docId/merge |
uploadMergeClausesHandler | session | html |
| GET | /funds/:fundSlug/upload/:docId/parse-status |
uploadParseStatusHandler | session | html |
| POST | /funds/:fundSlug/upload/:docId/retry |
uploadRetryHandler | session | html |
| GET | /funds/:fundSlug/upload/:docId/review |
uploadReviewPage | session | html |
| GET | /funds/:fundSlug/upload/:docId/review-panel |
uploadReviewPanel | session | html |
| GET | /funds/:fundSlug/upload/:docId/source.docx |
uploadSourceDocxHandler | session | file |
| GET | /funds/:fundSlug/upload/compare |
uploadCompareHandler | session | html |
| GET | /funds/:fundSlug/upload/table |
uploadTablePanel | session | html |
Export
9
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /export/clauses |
exportClausesHandler | session | html |
| GET | /funds/:fundSlug/export |
exportPage | session | html |
| POST | /funds/:fundSlug/export/:kind/preview-docx |
exportKindPreviewDocxHandler | session | html |
| GET | /funds/:fundSlug/export/clauses |
exportClausesHandler | session | html |
| GET | /funds/:fundSlug/export/download/:docId |
exportDownloadHandler | session | file |
| POST | /funds/:fundSlug/export/ef |
exportEfHandler | session | html |
| POST | /funds/:fundSlug/export/isl/generate |
exportIslHandler | session | html |
| POST | /funds/:fundSlug/export/msl |
exportMslHandler | session | html |
| GET | /funds/:fundSlug/export/recent-exports |
exportRecentExportsHandler | session | html |
ISL
9
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/isl/:commitmentId |
islPage | session | html |
| GET | /funds/:fundSlug/isl/:commitmentId/add-clause-picker |
addClauseToCommitmentPickerHandler | session | html |
| GET | /funds/:fundSlug/isl/:commitmentId/compare |
islCompareHandler | session | html |
| POST | /funds/:fundSlug/isl/:commitmentId/elect/:clauseId |
islElect | session | html |
| POST | /funds/:fundSlug/isl/:commitmentId/exclude-group/:groupId |
islExcludeGroup | session | html |
| POST | /funds/:fundSlug/isl/:commitmentId/exclude/:clauseId |
islExclude | session | html |
| POST | /funds/:fundSlug/isl/:commitmentId/remove/:clauseId |
islRemoveFromSl | session | html |
| POST | /funds/:fundSlug/isl/:commitmentId/unexclude-group/:groupId |
islUnexcludeGroup | session | html |
| POST | /funds/:fundSlug/isl/:commitmentId/unexclude/:ruleId |
islUnexclude | session | html |
MFN
11
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/mfn |
mfnSettingsPage | session | html |
| PUT | /funds/:fundSlug/mfn/basic-rule |
saveBasicRule | session | html |
| GET | /funds/:fundSlug/mfn/clause-exclusions-list |
clauseExclusionsFragment | session | html |
| POST | /funds/:fundSlug/mfn/general-rules/:ruleId/rationale |
updateGeneralRuleRationale | session | html |
| POST | /funds/:fundSlug/mfn/general-rules/toggle |
toggleGeneralRule | session | html |
| POST | /funds/:fundSlug/mfn/general-rules/toggle-group |
toggleGeneralGroupRule | session | html |
| POST | /funds/:fundSlug/mfn/individual-rules |
createIndividualRule | session | html |
| DELETE | /funds/:fundSlug/mfn/individual-rules/:ruleId |
deleteIndividualRule | session | html |
| POST | /funds/:fundSlug/mfn/individual-rules/:ruleId/rationale |
updateIndividualRuleRationale | session | html |
| GET | /funds/:fundSlug/mfn/individual-rules/new |
newIndividualRuleModal | session | html |
| GET | /funds/:fundSlug/mfn/rationale-modal |
rationaleModal | session | html |
Library
31
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| PUT | /funds/:fundSlug/clause/:clauseId/classification |
updateClauseClassificationHandler | session | html |
| GET | /funds/:fundSlug/clause/:clauseId/editor |
clauseEditorFragmentHandler | session | html |
| GET | /funds/:fundSlug/clause/:clauseId/shared-with |
clauseSharedWithPopoverHandler | session | html |
| PUT | /funds/:fundSlug/clause/:clauseId/text |
updateClauseTextHandler | session | html |
| POST | /funds/:fundSlug/clause/:clauseId/undo |
undoClauseEditHandler | session | html |
| GET | /funds/:fundSlug/clauses/:clauseId/attach-to-commitment |
attachToCommitmentPickerHandler | session | html |
| POST | /funds/:fundSlug/clauses/:clauseId/attach-to-commitment |
attachToCommitmentHandler | session | html |
| GET | /funds/:fundSlug/groups |
clauseGroupsPage | session | html |
| POST | /funds/:fundSlug/groups |
createGroupHandler | session | html |
| POST | /funds/:fundSlug/groups/:groupId/add-clause |
addClauseToGroupHandler | session | html |
| POST | /funds/:fundSlug/groups/:groupId/clauses/:clauseId/move/:direction |
moveClauseGroupMemberHandler | session | html |
| POST | /funds/:fundSlug/groups/:groupId/clauses/:clauseId/prefer |
setPreferredHandler | session | html |
| POST | /funds/:fundSlug/groups/:groupId/clauses/:clauseId/rank |
setClauseGroupMemberRankHandler | session | html |
| POST | /funds/:fundSlug/groups/:groupId/delete |
deleteGroupHandler | session | html |
| POST | /funds/:fundSlug/groups/:groupId/description |
updateGroupDescriptionHandler | session | html |
| POST | /funds/:fundSlug/groups/:groupId/remove-clause/:clauseId |
removeClauseFromGroupHandler | session | html |
| GET | /funds/:fundSlug/library |
libraryPage | session | html |
| POST | /funds/:fundSlug/library |
clauseCreateHandler | session | html |
| POST | /funds/:fundSlug/library/:clauseId/assign-set |
assignClauseToSetHandler | session | html |
| POST | /funds/:fundSlug/library/:clauseId/mfn-exclusions |
createMfnClauseExclusion | session | html |
| POST | /funds/:fundSlug/library/:clauseId/mfn-exclusions/:exclusionId/delete |
deleteMfnClauseExclusion | session | html |
| GET | /funds/:fundSlug/library/:clauseId/mfn-exclusions/new-panel |
mfnExclusionPanelHandler | session | html |
| GET | /funds/:fundSlug/library/:clauseId/rich-panel |
richPanelHandler | session | html |
| POST | /funds/:fundSlug/library/:clauseId/rich-panel |
richPanelSaveHandler | session | html |
| GET | /funds/:fundSlug/library/compare-group |
compareGroupHandler | session | html |
| POST | /funds/:fundSlug/library/compare-group/save-as-set |
saveCompareGroupAsSetHandler | session | html |
| GET | /funds/:fundSlug/library/new |
clauseNewPage | session | html |
| POST | /funds/:fundSlug/library/pin |
togglePinHandler | session | html |
| GET | /funds/:fundSlug/library/pinned |
pinnedBasketPartial | session | html |
| GET | /funds/:fundSlug/pins/count |
pinCountHandler | session | html |
| GET | /library |
crossFundLibraryPage | session | html |
Funds
9
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | / |
appRootRedirectHandler | session | html |
| GET | /app |
appRedirectHandler | session | html |
| GET | /funds |
fundsPage | session | html |
| POST | /funds |
createFund | session | html |
| DELETE | /funds/:fundSlug |
deleteFund | session | html |
| GET | /funds/:fundSlug |
fundDetailPage | session | html |
| POST | /funds/:fundSlug |
updateFund | session | html |
| PUT | /funds/:fundSlug |
updateFund | session | html |
| GET | /funds/:fundSlug/overview/closing-tracker |
closingStatusTrackerFragment | session | html |
Word_addin_bridge
1
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| ALL | /addin/word-api/* |
wordApiBridgeHandler | addin-session | proxied-api |
Word_addin
3
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| POST | /addin/word-feedback |
postWordFeedback | session | html |
| GET | /addin/word-feedback/draft |
getWordFeedbackDraft | session | html |
| GET | /auth/addin-complete |
addinAuthCompleteHandler | session | html |
Configuration
4
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| POST | /categories |
createCategory | session | html |
| DELETE | /categories/:categoryId |
deleteCategory | session | html |
| POST | /clause-categories |
clauseCategoryCreateHandler | session | html |
| GET | /configuration |
configurationPage | session | html |
Clause-text-variables
6
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/clause-text-variables |
clauseTextVariablesPage | session | html |
| POST | /funds/:fundSlug/clause-text-variables |
createClauseTextVariable | session | html |
| DELETE | /funds/:fundSlug/clause-text-variables/:id |
deleteClauseTextVariable | session | html |
| PUT | /funds/:fundSlug/clause-text-variables/:id |
updateClauseTextVariable | session | html |
| GET | /funds/:fundSlug/clause-text-variables/:id/edit |
editClauseTextVariableForm | session | html |
| GET | /funds/:fundSlug/clause-text-variables/:id/row |
clauseTextVariableRowPartial | session | html |
Closings
5
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| POST | /funds/:fundSlug/closings |
createClosing | session | html |
| DELETE | /funds/:fundSlug/closings/:closingId |
deleteClosing | session | html |
| PUT | /funds/:fundSlug/closings/:closingId |
updateClosing | session | html |
| GET | /funds/:fundSlug/closings/:closingId/edit |
editClosingForm | session | html |
| GET | /funds/:fundSlug/closings/:closingId/row |
closingRowPartial | session | html |
Investors
18
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| PUT | /funds/:fundSlug/commitments/:commitmentId/clause-note/:clauseId |
updateClauseAssignmentNote | session | html |
| GET | /funds/:fundSlug/commitments/:commitmentId/compare/:clauseId |
compareClauseDrawerHandler | session | html |
| POST | /funds/:fundSlug/commitments/:commitmentId/doc-status |
updateCommitmentDocStatus | session | html |
| GET | /funds/:fundSlug/investors |
investorsPage | session | html |
| POST | /funds/:fundSlug/investors |
createInvestor | session | html |
| GET | /funds/:fundSlug/investors/:investorId |
investorDetailPage | session | html |
| PUT | /funds/:fundSlug/investors/:investorId/commitments/:commitmentId |
updateCommitmentOverviewFragment | session | html |
| GET | /funds/:fundSlug/investors/:investorId/commitments/:commitmentId/edit |
commitmentOverviewEditFragment | session | html |
| GET | /funds/:fundSlug/investors/:investorId/commitments/:commitmentId/overview |
commitmentOverviewReadOnlyFragment | session | html |
| GET | /funds/:fundSlug/investors/:investorId/tasks |
investorTasksFragmentHandler | session | html |
| POST | /funds/:fundSlug/investors/:investorId/tasks |
createLpTask | session | html |
| POST | /funds/:fundSlug/investors/:investorId/tasks/:taskId/complete |
completeLpTask | session | html |
| GET | /funds/:fundSlug/investors/:investorId/tasks/:taskId/edit |
lpTaskEditForm | session | html |
| POST | /funds/:fundSlug/investors/:investorId/tasks/:taskId/edit |
editLpTask | session | html |
| GET | /funds/:fundSlug/investors/:investorId/tasks/new |
lpTaskNewForm | session | html |
| GET | /funds/:fundSlug/investors/new |
investorNewPage | session | html |
| GET | /investors |
globalInvestorsPage | session | html |
| GET | /investors/:slug |
globalInvestorDetailPage | session | html |
Export_templates
14
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/fund-templates |
fundExportSettingsPage | session | html |
| POST | /funds/:fundSlug/fund-templates/firm |
fundExportSettingsFirmHandler | session | html |
| GET | /funds/:fundSlug/fund-templates/starter/:kind |
fundExportSettingsStarterHandler | session | html |
| POST | /funds/:fundSlug/fund-templates/template/:kind |
fundExportSettingsTemplateUploadHandler | session | html |
| GET | /funds/:fundSlug/fund-templates/template/:kind/download |
fundExportSettingsTemplateDownloadHandler | session | file |
| GET | /funds/:fundSlug/fund-templates/template/:kind/preview-docx |
fundExportSettingsTemplatePreviewHandler | session | html |
| POST | /funds/:fundSlug/fund-templates/template/:kind/remove |
fundExportSettingsTemplateRemoveHandler | session | html |
| GET | /sponsors/:sponsorId/export/settings |
sponsorExportSettingsPage | session | html |
| POST | /sponsors/:sponsorId/export/settings/firm |
sponsorExportSettingsFirmHandler | session | html |
| POST | /sponsors/:sponsorId/export/template/:kind |
sponsorExportSettingsTemplateUploadHandler | session | html |
| GET | /sponsors/:sponsorId/export/template/:kind/download |
sponsorExportSettingsTemplateDownloadHandler | session | file |
| GET | /sponsors/:sponsorId/export/template/:kind/preview-docx |
sponsorExportSettingsTemplatePreviewHandler | session | html |
| POST | /sponsors/:sponsorId/export/template/:kind/remove |
sponsorExportSettingsTemplateRemoveHandler | session | html |
| GET | /sponsors/:sponsorId/export/template/:kind/starter |
sponsorExportSettingsStarterHandler | session | html |
Intelligence
8
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/pro-forma |
proFormaPage | session | html |
| POST | /funds/:fundSlug/pro-forma |
proFormaSubmit | session | html |
| GET | /funds/:fundSlug/pro-forma/export.docx |
proFormaExportDocx | session | file |
| GET | /funds/:fundSlug/pro-forma/preview.docx |
proFormaPreviewDocx | session | file |
| GET | /network |
clauseNetworkPage | session | html |
| GET | /network/clause-row/:clauseId |
clauseSlideoutFragment | session | html |
| GET | /network/inspect |
clauseNetworkInspectFragment | session | html |
| GET | /recommender |
clauseRecommenderPage | session | html |
Search
1
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/search |
searchHandler | session | html |
Fund_setup
3
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/setup |
fundSetupPage | session | html |
| GET | /funds/:fundSlug/setup/adopt-msl |
fundSetupAdoptMslRedirectHandler | session | html |
| POST | /funds/:fundSlug/setup/adopt-msl |
adoptMslHandler | session | html |
Tasks
17
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /funds/:fundSlug/tasks |
fundTasksPage | session | html |
| POST | /funds/:fundSlug/tasks/:taskId/archive |
archiveTask | session | html |
| GET | /funds/:fundSlug/tasks/:taskId/card |
kanbanCardCompact | session | html |
| GET | /funds/:fundSlug/tasks/:taskId/comments |
commentsFragment | session | html |
| POST | /funds/:fundSlug/tasks/:taskId/comments |
addCommentHandler | session | html |
| POST | /funds/:fundSlug/tasks/:taskId/comments/:commentId/delete |
deleteCommentHandler | session | html |
| GET | /funds/:fundSlug/tasks/:taskId/detail |
taskDetailFragment | session | html |
| GET | /funds/:fundSlug/tasks/:taskId/edit-card |
kanbanCardEditForm | session | html |
| POST | /funds/:fundSlug/tasks/:taskId/edit-card |
kanbanCardSave | session | html |
| GET | /funds/:fundSlug/tasks/:taskId/history |
taskHistoryFragment | session | html |
| POST | /funds/:fundSlug/tasks/:taskId/status |
updateTaskStatus | session | html |
| POST | /funds/:fundSlug/tasks/:taskId/unarchive |
unarchiveTask | session | html |
| GET | /funds/:fundSlug/tasks/activity |
fundActivityPage | session | html |
| POST | /funds/:fundSlug/tasks/archive-done |
archiveAllDone | session | html |
| POST | /funds/:fundSlug/tasks/bulk |
bulkUpdateTasks | session | html |
| POST | /funds/:fundSlug/tasks/create |
createFundTask | session | html |
| GET | /funds/:fundSlug/tasks/create-form |
fundTaskCreateForm | session | html |
Sponsors
7
| Method | Path | Handler | Auth | Response |
|---|---|---|---|---|
| GET | /sponsors |
sponsorsListPage | session | html |
| POST | /sponsors |
createSponsor | session | html |
| GET | /sponsors/:id |
sponsorDetailPage | session | html |
| POST | /sponsors/:id |
updateSponsor | session | html |
| POST | /sponsors/:id/delete |
deleteSponsor | session | html |
| GET | /sponsors/:id/edit |
sponsorEditForm | session | html |
| GET | /sponsors/unknown |
sponsorsUnknownPage | session | html |
Generated at 2026-05-08T22:51:16.561Z · mvp.hugo.nordiclawfirm.com
Discovery pipeline
This page is auto-generated from Hugo's source code by scripts/generate-discovery.mjs.
- HTTP routes — regex walk over
src/index.tsxandsrc/routes/*. Captures literalapp.<verb>('/path', handler)registrations, adds explicit static asset routes, and classifies by path prefix.
How to update
npm run discovery:generate | Re-extract routes from source and write contracts/discovery.json. Also copies to hugo-dev/src/data/. |
npm run discovery:check | Compare both generated JSON copies against current source. Exits 1 if either copy is stale or missing. |
Artifact locations
contracts/discovery.json | Source of truth. Committed to git. |
hugo-dev/src/data/discovery.json | Generated copy consumed by this dev portal at build time. |
Route classification (capability, auth, response type) is inferred from path prefixes. Override metadata is not yet supported — add contracts/discovery.overrides.json if needed.