FundOS API Reference

Every FundOS module is callable standalone via Bearer-authenticated REST. Inline data, VantedgeAI-hosted rows, or MCP BYOD sources — your choice per call.

Authentication

Every endpoint requires a Bearer token — either a JWT (24-hour, from POST /api/v1/auth/login) or a long-lived API key (prefix vdr_, generated in Admin → API Keys).

curl -H "Authorization: Bearer vdr_your_api_key" \
     -H "Content-Type: application/json" \
     https://fundos.vantedgeai.com/api/v1/fundos/crm/deals
Rate limit: 100 req/min per token. Responses include X-RateLimit-Remaining and X-RateLimit-Reset headers.
Conventions
  • Three data modes: VantedgeAI-hosted (default), Headless (inline data in payload), BYOD (MCP connection reference).
  • ?ephemeral=true: any POST endpoint that normally persists a row will instead validate and return the response shape with persisted: false.
  • Org-scoped: every call runs in the caller's organisation context — no cross-tenant access.
  • BYOD source schema: {"type": "mcp", "connection_id": N, "path": "..."} or {"type": "inline", "documents": [{"name": "...", "text": "..."}]}.
  • Pricing & cost: every tool's credit cost is published at /.well-known/tools.json — credit mechanics only; platform pricing lives in each firm's enterprise agreement and is deliberately not published there. Tool prices are identical for humans and agents — fetch it to predict cost-per-call before building a workflow.

Sample agent flows

Worked examples — what an AI agent (Claude, ChatGPT, Cursor, your own custom agent) does when it's connected to VantedgeAI via MCP. Every flow ends with a human-approval gate; nothing auto-executes.

Find expiring KYC records and draft outreach

It's the start of the quarter. Compliance wants to clear the KYC backlog before the auditor arrives. Find every LP whose KYC review expires in the next 60 days and draft a refresh-request email per LP.

Trigger: Asked Claude (with the VantedgeAI MCP server connected)

  1. fundos_list_kyc_records — List KYC records due in <=60 days
  2. fundos_get_lp — Pull the LP detail for each match
  3. fundos_list_documents — Find their last KYC packet for context
  4. draft email per LP — Compose refresh-request email referencing the prior KYC packet date + new docs required
  5. HUMAN APPROVAL — Drafts queue for Compliance Officer approval
Outcome: 8 drafted emails ready for human review. 0 sent without approval. Run completes in ~40s for a 50-LP portfolio.
Generate K-1s for the current tax year

It's January. Time to generate K-1s for the calendar tax year that just closed. CFO wants drafts ready for the tax preparer's review before sending to LPs.

Trigger: Asked Claude to run K-1 generation for tax year 2025

  1. fundos_list_fund_accounts — Pick the fund account(s) in scope
  2. fundos_list_lps — Enumerate LPs with capital activity in the year
  3. fundos_compute_pnl — Compute LP-level taxable items per fund (LTCG, STCG, ordinary income, deductions)
  4. k1_generate_per_lp (write) — Draft K-1 PDFs and Schedule K-1 line items
  5. HUMAN APPROVAL — CFO reviews each K-1 before sending to LP per-LP data room
Outcome: Draft K-1s per LP, deposited into each LP's per-LP data room. CFO clicks Approve → notice goes to the LP. Avg saves ~2 weeks of manual tie-out.
Daily covenant scan + breach memo

Every morning, the risk team needs to know if any portfolio company tripped a debt covenant overnight. If breach: draft the lender-notice memo so the GP can review and send.

Trigger: Scheduled — Agent F (Risk Covenant Watcher) runs at 6 a.m. UTC daily

  1. fundos_list_covenants — Enumerate all monitored covenants
  2. fundos_check_covenant per covenant — Compute current vs threshold against the latest financials
  3. classify breach / watch / ok — By severity and time-to-cure
  4. draft_lender_notice (write) — For each breach: compose the notice with the covenant, the value, the cure period
  5. HUMAN APPROVAL — GP reviews proposed notices in the action queue before any send
Outcome: 3 breaches detected at 6:04 a.m. 3 drafted notices ready by 6:05 a.m. GP signs off by 9 a.m. — same-day notification rather than end-of-week.
Issue a capital call for one LP

GP needs to call $2M from one LP for a closing this week. ILPA-compliant notice should hit the LP's per-LP data room and trigger a 5-step reminder ladder.

Trigger: Asked Claude to issue a $2M call to Meridian Pension for the Q3 close

  1. fundos_list_lps + fundos_get_lp — Resolve the LP by name → pull commitment + funded-to-date
  2. fundos_create_capital_call (ephemeral=true) — Validate amount vs unfunded; surface ILPA call type
  3. HUMAN APPROVAL — GP confirms LP + amount + ilpa_call_type
  4. fundos_create_capital_call (ephemeral=false) — Persist the call; ILPA Excel notice generated into LP's per-LP room
  5. schedule_reminder_ladder (Agent E) — Auto-schedule T-14 / T-7 / T-3 / T-1 / overdue reminders
Outcome: Notice in the LP's data room within seconds of approval. 5 reminders auto-queued. GP never touches the spreadsheet.
Inbound pitch deck → deal in the right stage

A founder sends a 25-page pitch deck. You want it triaged into the CRM at the right stage with a 1-page screening memo, ranked against your fund's recent portfolio.

Trigger: Forward the pitch email to your fund's inbound address (e.g. fund-inbox@in.kela.com)

  1. inbound_email triage (Agent B) — Parse sender, attachment, body; classify as PITCH / WARM / NOISE
  2. fundos_vdr_analyze — Extract entities, red flags, MRR/burn/team signals
  3. compose screening memo — 1-page memo + score against fund's mandate
  4. fundos_create_deal (ephemeral=true) — Propose Deal row at the right stage (Screening or Diligence)
  5. HUMAN APPROVAL — Partner reviews proposal in CRM queue; accept → Deal persists
Outcome: Founder gets acknowledgment in <60s. Partner gets a triage-ready memo. 80% of inbound auto-routes to the correct stage.

Want to try one? claude mcp add fundos https://fundos.vantedgeai.com/mcp then ask Claude to run any of these flows on your data. Or book a walkthrough.

CRM & Pipeline

Deal sourcing, pipeline management, contacts, and activity log.
8 endpoints
GET /api/v1/fundos/crm/deals ?stage=<key>
List deals in your organisation.
GET /api/v1/fundos/crm/pipeline
Deals grouped by stage — kanban shape.
POST /api/v1/fundos/crm/deals
Create a deal. `?ephemeral=true` validates + returns without persisting.
{
  "asset_class": "private_credit",
  "counterparty": "ACME Capital",
  "currency": "USD",
  "irr_target": 0.12,
  "name": "Fund II \u2014 ACME Credit",
  "stage": "dd",
  "target_size": 25000000
}
GET /api/v1/fundos/crm/deals/{id}
Fetch a single deal.
PATCH /api/v1/fundos/crm/deals/{id}
Update any subset of deal fields.
POST /api/v1/fundos/crm/deals/{id}/stage
Move the deal to a new pipeline stage.
{
  "stage": "closing"
}
POST /api/v1/fundos/crm/deals/{id}/activity
Log an activity on the deal.
{
  "summary": "Called sponsor about term sheet.",
  "type": "note"
}
POST /api/v1/fundos/crm/deals/{id}/contacts
Add a contact to the deal.
{
  "email": "jane@example.com",
  "name": "Jane Doe",
  "role": "Sponsor CFO"
}

VDR + DD Agent

BYOD-capable ODD generation and VDR analysis. Data can stay in your MCP server.
2 endpoints
POST /api/v1/fundos/odd/generate
Generate ODD answers from inline docs or an MCP BYOD source.
{
  "ephemeral": true,
  "source": {
    "connection_id": 5,
    "path": "/Funds/FundII/DD",
    "type": "mcp"
  },
  "topics": [
    "key_data",
    "fund_terms"
  ]
}
Default ephemeral=true — outputs never persisted.
POST /api/v1/fundos/vdr/analyze
Red-flag + entity-map analysis over inline docs or MCP source.
{
  "ephemeral": true,
  "source": {
    "documents": [
      {
        "name": "ppm.pdf",
        "text": "\u2026"
      }
    ],
    "type": "inline"
  }
}

Transaction Manager

Term sheets, closing coordination, signatory tracking.
6 endpoints
GET /api/v1/fundos/transactions
List transactions. `?status=<key>` filter.
GET /api/v1/fundos/transactions/{id}
Fetch transaction + task pack.
POST /api/v1/fundos/transactions/draft
Draft a new transaction. Auto-seeds default closing task pack.
{
  "asset_class": "private_credit",
  "deal_id": 123,
  "linked_room_id": 45,
  "name": "FundII \u2014 ACME Credit closing",
  "parties": [
    {
      "name": "ACME Capital",
      "role": "Lender"
    }
  ],
  "seed_default_tasks": true,
  "target_close_date": "2026-06-15"
}
POST /api/v1/fundos/transactions/{id}/status
Update transaction status (drafting → negotiating → signed → funding → closed).
{
  "status": "signed"
}
POST /api/v1/fundos/transactions/{id}/tasks
Add a task to the transaction.
{
  "category": "legal",
  "title": "Final IC approval"
}
PATCH /api/v1/fundos/transactions/{id}/tasks/{task_id}
Update task status / title / due date.
{
  "status": "complete"
}

Pricer + Pool Analytics

Pricing, IRR/MOIC/WAL, waterfall, optional tranche stack.
1 endpoints
POST /api/v1/fundos/pricer/run
Run pricing for a principal + term. Pure-Python, deterministic.
{
  "amortisation": "bullet",
  "benchmark_pct": 0.04,
  "ceiling_pct": 0.12,
  "coupon_pct": 0.08,
  "deal_id": 123,
  "fees_upfront_pct": 0.01,
  "floor_pct": 0.07,
  "principal": 10000000,
  "spread_bps": 400,
  "term_months": 60,
  "tranches": [
    {
      "balance": 7000000,
      "coupon_pct": 0.06,
      "name": "Senior A",
      "priority": 1
    }
  ]
}
Without `deal_id`, nothing is persisted. `?ephemeral=true` forces no persistence.

DSRI Risk Intelligence

Real-time covenant monitoring, breach simulation, alerts.
5 endpoints
GET /api/v1/fundos/risk/covenants
List all tracked covenants with current status.
POST /api/v1/fundos/risk/covenants
Create a covenant. Runs an initial check and raises an alert when the first reading is watch/breach.
{
  "current_value": 1.05,
  "deal_id": 42,
  "direction": "min",
  "frequency": "monthly",
  "name": "DSCR \u2014 min 1.20x",
  "threshold": 1.2,
  "unit": "ratio"
}
Send `vi_deal_id` instead of `deal_id` to attach to a VentureInsights VcDeal (auto-imported on first use); omit both for an unattached covenant. `?ephemeral=true` validates and echoes the shape with zero DB writes — it skips deal resolution, since the vi_deal_id branch would import.
POST /api/v1/fundos/risk/check
Simulate (inline) or refresh (by covenant_id) a covenant check.
{
  "covenant_id": 7,
  "current_value": 1.05
}
Omit covenant_id to run an ephemeral simulation with inline {name,type,direction,threshold,current_value}.
GET /api/v1/fundos/risk/alerts
List risk alerts. `?open=true` for only unresolved.
POST /api/v1/fundos/risk/alerts/{id}/resolve
Mark a risk alert resolved. Stamps `resolved_at`.

CIM / Report Builder

AI-synthesised investment memoranda. MCP BYOD supported.
4 endpoints
GET /api/v1/fundos/cim/templates
List available templates (standard, teaser, onepager).
GET /api/v1/fundos/cim/reports
List generated CIM reports in your org.
GET /api/v1/fundos/cim/reports/{id}
Fetch full CIM report with all sections.
POST /api/v1/fundos/cim/generate
Generate a CIM from inline docs or MCP source.
{
  "deal_id": 42,
  "source": {
    "connection_id": 5,
    "path": "/Funds/Fund II",
    "type": "mcp"
  },
  "template_key": "standard",
  "title": "Fund II \u2014 IC Memo"
}

Investor Portal

LP registry, commitments, capital calls.
5 endpoints
GET /api/v1/fundos/investors/lp
List LP investors.
POST /api/v1/fundos/investors/lp
Register an LP investor.
{
  "committed_capital": 10000000,
  "entity_type": "family_office",
  "jurisdiction": "DE",
  "kyc_status": "pending",
  "name": "Cascade Family Office",
  "primary_contact_email": "ir@cascade.example"
}
GET /api/v1/fundos/investors/lp/{id}
Fetch an LP plus their capital calls.
POST /api/v1/fundos/investors/lp/{id}/capital-calls
Issue a capital call to an LP.
{
  "amount": 500000,
  "due_date": "2026-05-15",
  "notice_date": "2026-04-20",
  "reference": "CC-2026-Q2-01",
  "status": "issued"
}
GET /api/v1/fundos/investors/capital-calls
List all capital calls across LPs. `?status=<key>` filter.

CFO Center

Fund accounts, P&L roll-ups, European waterfall.
6 endpoints
GET /api/v1/fundos/cfo/accounts
List fund accounts / SPVs with NAV.
Returns a bare array. For the same accounts plus a computed debit/credit balance each and org totals, use /cfo/chart-of-accounts.
GET /api/v1/fundos/cfo/chart-of-accounts
Chart of accounts — every fund account with its computed GL balance, plus org totals.
Returns {accounts, totals, currency, count}. `currency` is "mixed" when the org's accounts span more than one.
POST /api/v1/fundos/cfo/accounts
Create a new fund account.
{
  "committed_total": 100000000,
  "currency": "USD",
  "entity_type": "fund",
  "fiscal_year_end": "12-31",
  "gl_provider": "manual",
  "name": "Fund II \u2014 Main"
}
POST /api/v1/fundos/cfo/accounts/{id}/entries
Record a journal entry against a fund account.
{
  "category": "expense",
  "credit": 45000,
  "date": "2026-04-15",
  "debit": 0,
  "description": "Legal fees \u2014 Fund II closing",
  "reference": "JE-2026-Q2-07"
}
POST /api/v1/fundos/cfo/report
Compute P&L + NAV for an account or inline entries (headless).
{
  "end": "2026-12-31",
  "fund_account_id": 1,
  "start": "2026-01-01"
}
Send `entries: [...]` instead of `fund_account_id` for headless BYOD math (no persistence).
POST /api/v1/fundos/cfo/waterfall
Pure-Python European waterfall (ROC → hurdle → catch-up → carry split).
{
  "carry_pct": 0.2,
  "committed": 100000000,
  "distributable": 140000000,
  "hurdle_pct": 0.08
}

Syndication Engine

Multi-investor allocation matrix, KYC tracking, funds-flow status.
4 endpoints
GET /api/v1/fundos/syndication
List all syndications in your org.
POST /api/v1/fundos/syndication
Create a new syndication.
{
  "closing_date": "2026-06-30",
  "currency": "USD",
  "lead_arranger": "Kela Capital",
  "name": "Deal X \u2014 Co-invest round",
  "status": "building",
  "target_amount": 25000000
}
GET /api/v1/fundos/syndication/{id}
Fetch a syndication with full allocation matrix.
POST /api/v1/fundos/syndication/{id}/allocate
Create one or many allocations. Send single object or {allocations: [...]}.
{
  "allocations": [
    {
      "allocated_amount": 4500000,
      "funds_status": "signed",
      "investor_name": "Cascade FO",
      "kyc_status": "passed",
      "requested_amount": 5000000
    },
    {
      "allocated_amount": 7500000,
      "kyc_status": "pending",
      "lp_investor_id": 12
    }
  ]
}

Agent Runtime & Tool Registry

AgentRun substrate + approve/reject surface + catalog of 14 tools exposed as Gemini function declarations or REST.
10 endpoints
GET /api/v1/tools
List all registered tools. Each entry includes name, description, Pydantic args schema.
Filter with ?category=lp_crm|crm|vdr|cfo|risk
GET /api/v1/tools/gemini-declarations
Return Gemini-ready `functionDeclarations`. Pass straight into generateContent(tools=[...]).
?names=lp_crm.add_todo,crm.advance_stage to scope.
GET /api/v1/tools/{name}
Get one tool's spec.
POST /api/v1/tools/{name}/call
Invoke a tool directly. Body = validated input; returns {tool, result}.
{
  "lp_investor_id": 12,
  "title": "Send Q3 letter"
}
GET /fundos/agent/
List recent AgentRuns (admin/debug).
GET /fundos/agent/runs/{run_id}
Run detail page — live SSE event feed + approval cards.
GET /fundos/agent/runs/{run_id}/stream
Server-Sent Events stream. ?since=<event_id> for resume.
Vercel 45s budget; emits `timeout` event with resume_from when exhausted so clients reconnect.
GET /fundos/agent/runs/{run_id}/events.json
Polling fallback (same ?since= semantics). Used when SSE is blocked by corp proxy.
POST /fundos/agent/actions/{action_id}/approve
Approve a proposed AgentAction and execute its registered handler.
POST /fundos/agent/actions/{action_id}/reject
Reject a proposed AgentAction with optional reason.
{
  "reason": "Wrong stage"
}

FundOS Copilot

Context-aware chat answer endpoint for the right-side sidebar.
1 endpoints
POST /fundos/copilot/ask
Ask a question with optional context hints. RAG-grounded with citations.
{
  "context": {
    "deal_id": 42,
    "scope_label": "deal Acme"
  },
  "history": [
    {
      "role": "user",
      "text": "..."
    },
    {
      "role": "assistant",
      "text": "..."
    }
  ],
  "question": "What is the target net IRR?"
}
Scope ladder: lp_id → room_id → deal_id → org-wide.

VentureInsights Integration

Inbound webhooks from VI → FundOS, outbound webhooks from FundOS → subscribers, backfill imports, nightly reconciliation, and the federated VIClient that reads live VI data at feature-compute time.
8 endpoints
POST /webhooks/vi/{event_type}
Inbound webhook receiver. CSRF-exempt; HMAC-SHA256 is the auth.
Required headers: X-VI-Event, X-VI-Event-Id, X-VI-Timestamp, X-VI-Signature, X-VI-Connection. Signature = hex(HMAC-SHA256(secret, '<ts>.<raw body>')). 300s skew window. Idempotency via UNIQUE(event_id). Types: company.created/.updated/.deleted, fund.created/.updated/.deleted, ping.test.
GET /webhooks/vi/_health
Simple live-check endpoint for VI admins to sanity-check the URL.
POST /webhooks/vi/cron/reconcile
Nightly reconciler — catches webhook events that failed all 5 retries on VI side.
Protected by CRON_SECRET Bearer token. Runs 0 3 * * * UTC via Vercel cron. Safe to invoke manually for debugging.
POST /admin/integrations/ventureinsights
Admin: save VI connection (NestJS base, analytics base, agent MCP URL, X-API-KEY, enabled modules).
POST /admin/integrations/ventureinsights/test
Live health check — pings each configured upstream, returns {nestjs, analytics, mcp} status.
POST /admin/integrations/ventureinsights/rotate-webhook-secret
Generate a fresh HMAC secret for inbound webhooks. Returned PLAINTEXT ONCE in the flash + ?_show_secret redirect.
POST /admin/integrations/ventureinsights/import/companies
Bulk backfill VI Companies → Deal CRM. Logs a VIImportRun row.
POST /admin/integrations/ventureinsights/import/funds
Bulk backfill VI Funds → LP CRM. Logs a VIImportRun row.

Compliance OS

KYC/AML record tracking, regulatory filing deadlines, restricted securities list, trade pre-clearance, obligations register, and Agent H (autonomous compliance scanner with Gemini name-screen).
6 endpoints
GET /api/v1/fundos/compliance/kyc
List KYC/AML records. `?status=` filters by pending | in_progress | approved | rejected | expired.
GET /api/v1/fundos/compliance/filings
List regulatory filing deadlines. `?status=` filters by upcoming | submitted | overdue | waived | not_applicable.
GET /api/v1/fundos/compliance/trade/check
Check restricted list by ?ticker=, ?isin=, or ?q= (partial company name). Returns restricted:bool + matches[].
GET /api/v1/fundos/compliance/obligations
List compliance obligations. `?category=` (sec|cftc|fca|esma|gdpr|aml|other) and `?status=` filters.
POST /fundos/compliance/kyc/<record_id>/screen
Run Gemini name-screen on the LP linked to a KYC record. Saves KYCNameScreenResult. Requires web session.
POST /fundos/compliance/agent/scan
Trigger Agent H — scans KYC expiry, filing deadlines, obligations, and proposes RiskAlert actions. Requires web session.

Outbound Webhooks (FundOS → subscribers)

FundOS emits HMAC-signed events to any configured WebhookEndpoint. Used by the VentureInsights reverse direction, Zapier, Make, and custom consumers.
2 endpoints
GET /developer/connected-apps
Admin UI — list / create / revoke / retry webhook endpoints.
POST /developer/connected-apps
Create a webhook endpoint. Subscribe to specific events.
{
  "events": [
    "odd.profile.updated",
    "answer_bank.updated",
    "room.red_flag.added"
  ],
  "name": "VentureInsights reverse",
  "url": "https://stage-api.8vdx.io/webhooks/kela"
}
Event catalogue
EventTriggerPayload sample
odd.profile.updated FundProfile save (fund_name / vintage / fees / strategy / team / etc.)
{
  "fund_name": "Acme II",
  "fund_profile_id": 1,
  "updated_at": "...",
  "vintage_year": 2026
}
answer_bank.updated sync_fund_profile() touches rows
{
  "fund_profile_id": 1,
  "source_type": "manual",
  "touched": 3
}
room.red_flag.added Intelligence red-flag scanner inserts a RedFlag row
{
  "category": "legal",
  "red_flag_id": 42,
  "room_id": 5,
  "severity": "high",
  "title": "..."
}
Signing: Every delivery carries X-Kela-Event / X-Kela-Timestamp / X-Kela-Signature headers. Signature = hex(HMAC-SHA256(endpoint.secret, '<ts>.<body>')). Receivers should verify signature AND reject timestamps more than 5 minutes off their clock.

MCP Connector Catalogue

These connectors are consumed by FundOS via the Model Context Protocol. In BYOD mode, your data never leaves your own MCP server — VantedgeAI reads in-memory and persists only outputs. Configure in Settings → MCP Connections.

Connector Kind Modes Used by Notes
SharePoint documents BYOD VDR, ODD, CIM OAuth to your tenant; docs stay in SharePoint, VantedgeAI reads in-memory.
Egnyte documents BYOD VDR, ODD, CIM
Google Drive documents BYOD VDR, ODD, CIM
Dropbox documents BYOD VDR, ODD, CIM
Salesforce crm BYOD CRM
HubSpot crm BYOD CRM
Affinity crm BYOD CRM
DocuSign e-sign BYOD Transactions
QuickBooks accounting BYOD CFO
Xero accounting BYOD CFO
Sage Intacct accounting BYOD CFO
Bloomberg market data BYOD Pricer, Risk
VentureInsights private-markets data BYOD CRM, Investors, CIM, Risk Funds, companies, LPs, deals. VI consumes FundOS's MCP server in reverse.

Complete endpoint index

Generated from the running application, so it is always current. The module sections above are worked examples with request bodies; this is every endpoint that exists.
555 endpoints · 45 with worked examples

All paths take Authorization: Bearer vdr_<key>. Groups marked UI-backing serve the FundOS web app; they work with a key but are not a stability-guaranteed integration surface — prefer the documented ones.

Agent runtime — approval queue (2)
GET /api/v1/fundos/agent/approvals
POST /api/v1/fundos/agent/approvals/reject-stale
Agent runtime — approve / reject an action (2)
POST /api/v1/fundos/agent-actions/<int:action_id>/approve
POST /api/v1/fundos/agent-actions/<int:action_id>/reject
Agent runtime — runs & event streams (5)
GET /api/v1/fundos/agent-runs
GET /api/v1/fundos/agent-runs/<int:run_id>
GET /api/v1/fundos/agent-runs/<int:run_id>/actions
GET /api/v1/fundos/agent-runs/<int:run_id>/events
GET /api/v1/fundos/agent-runs/<int:run_id>/stream
Calendar (3)
GET /api/v1/fundos/calendar/meetings
GET /api/v1/fundos/calendar/meetings/<int:meeting_id>
POST /api/v1/fundos/calendar/meetings/<int:meeting_id>/notes
CFO Center (45)
GET /api/v1/fundos/cfo/accounts worked example above
POST /api/v1/fundos/cfo/accounts worked example above
DELETE /api/v1/fundos/cfo/accounts/<int:account_id>
GET /api/v1/fundos/cfo/accounts/<int:account_id>
PATCH /api/v1/fundos/cfo/accounts/<int:account_id>
GET /api/v1/fundos/cfo/accounts/<int:account_id>/chart-data
GET /api/v1/fundos/cfo/accounts/<int:account_id>/dashboard
GET /api/v1/fundos/cfo/accounts/<int:account_id>/entries
POST /api/v1/fundos/cfo/accounts/<int:account_id>/entries worked example above
DELETE /api/v1/fundos/cfo/accounts/<int:account_id>/entries/<int:entry_id>
GET /api/v1/fundos/cfo/accounts/<int:account_id>/fees
PUT /api/v1/fundos/cfo/accounts/<int:account_id>/fees
POST /api/v1/fundos/cfo/accounts/<int:account_id>/fees/calculate
POST /api/v1/fundos/cfo/accounts/<int:account_id>/fees/confirm
POST /api/v1/fundos/cfo/accounts/<int:account_id>/fees/post-accrual
GET /api/v1/fundos/cfo/accounts/<int:account_id>/k1
GET /api/v1/fundos/cfo/accounts/<int:account_id>/k1/<int:lp_id>/<int:tax_year>
GET /api/v1/fundos/cfo/accounts/<int:account_id>/k1/<int:lp_id>/<int:tax_year>/overrides
POST /api/v1/fundos/cfo/accounts/<int:account_id>/k1/<int:lp_id>/<int:tax_year>/overrides
POST /api/v1/fundos/cfo/accounts/<int:account_id>/k1/bulk-preview
POST /api/v1/fundos/cfo/accounts/<int:account_id>/k1/bulk-upload
POST /api/v1/fundos/cfo/accounts/<int:account_id>/k1/generate
GET /api/v1/fundos/cfo/accounts/<int:account_id>/lp-terms
POST /api/v1/fundos/cfo/accounts/<int:account_id>/lp-terms/upsert
GET /api/v1/fundos/cfo/accounts/<int:account_id>/movers
GET /api/v1/fundos/cfo/accounts/<int:account_id>/performance
GET /api/v1/fundos/cfo/accounts/<int:account_id>/period-close
GET /api/v1/fundos/cfo/accounts/<int:account_id>/period-close/<int:close_id>
POST /api/v1/fundos/cfo/accounts/<int:account_id>/period-close/run
GET /api/v1/fundos/cfo/accounts/<int:account_id>/risk
GET /api/v1/fundos/cfo/chart-of-accounts worked example above
GET /api/v1/fundos/cfo/gl-trial-balance
GET /api/v1/fundos/cfo/gl/accounts
GET /api/v1/fundos/cfo/gl/journal
POST /api/v1/fundos/cfo/gl/journal
GET /api/v1/fundos/cfo/gl/journal/<int:entry_id>
POST /api/v1/fundos/cfo/gl/journal/<int:entry_id>/reverse
GET /api/v1/fundos/cfo/journal
POST /api/v1/fundos/cfo/journal
GET /api/v1/fundos/cfo/journal/by-ref/<path:reference>
POST /api/v1/fundos/cfo/journal/by-ref/<path:reference>/reverse
POST /api/v1/fundos/cfo/journal/multi
POST /api/v1/fundos/cfo/report worked example above
GET /api/v1/fundos/cfo/trial-balance
POST /api/v1/fundos/cfo/waterfall worked example above
CIM / Reports (9)
POST /api/v1/fundos/cim/generate worked example above
GET /api/v1/fundos/cim/reports worked example above
DELETE /api/v1/fundos/cim/reports/<int:report_id>
GET /api/v1/fundos/cim/reports/<int:report_id> worked example above
PATCH /api/v1/fundos/cim/reports/<int:report_id>/section/<section_key>
POST /api/v1/fundos/cim/reports/<int:report_id>/section/<section_key>/regenerate
POST /api/v1/fundos/cim/reports/<int:report_id>/section/<section_key>/suggest
POST /api/v1/fundos/cim/reports/<int:report_id>/status
GET /api/v1/fundos/cim/templates worked example above
Compliance (22)
GET /api/v1/fundos/compliance/dashboard
GET /api/v1/fundos/compliance/filings worked example above
POST /api/v1/fundos/compliance/filings
PATCH /api/v1/fundos/compliance/filings/<int:filing_id>
GET /api/v1/fundos/compliance/kyc worked example above
POST /api/v1/fundos/compliance/kyc
PATCH /api/v1/fundos/compliance/kyc/<int:record_id>
GET /api/v1/fundos/compliance/obligations worked example above
POST /api/v1/fundos/compliance/obligations
PATCH /api/v1/fundos/compliance/obligations/<int:ob_id>
GET /api/v1/fundos/compliance/program/exam-readiness
GET /api/v1/fundos/compliance/program/findings
GET /api/v1/fundos/compliance/program/side-letters
GET /api/v1/fundos/compliance/program/status
GET /api/v1/fundos/compliance/trade/check worked example above
GET /api/v1/fundos/compliance/trade/checks
GET /api/v1/fundos/compliance/trade/preclearance
POST /api/v1/fundos/compliance/trade/preclearance
POST /api/v1/fundos/compliance/trade/preclearance/<int:req_id>/review
GET /api/v1/fundos/compliance/trade/restricted
POST /api/v1/fundos/compliance/trade/restricted
POST /api/v1/fundos/compliance/trade/restricted/<int:sec_id>/toggle
Credits & Billing (7)
GET /api/v1/fundos/credits/balance
GET /api/v1/fundos/credits/invoices
POST /api/v1/fundos/credits/portal
POST /api/v1/fundos/credits/subscribe
POST /api/v1/fundos/credits/topup/checkout
GET /api/v1/fundos/credits/topup/packages
GET /api/v1/fundos/credits/transactions
Data Rooms (VDR) (72)
GET /api/v1/fundos/vdr/analytics
GET /api/v1/fundos/vdr/analytics/drilldown
GET /api/v1/fundos/vdr/analytics/export
POST /api/v1/fundos/vdr/analyze worked example above
GET /api/v1/fundos/vdr/cron/reap-pending-uploads
POST /api/v1/fundos/vdr/cron/reap-pending-uploads
GET /api/v1/fundos/vdr/diligence/runs/<int:run_id>
GET /api/v1/fundos/vdr/diligence/runs/<int:run_id>/events.json
GET /api/v1/fundos/vdr/diligence/runs/<int:run_id>/stream
GET /api/v1/fundos/vdr/documents/<int:doc_id>/tracked-links
POST /api/v1/fundos/vdr/documents/<int:doc_id>/tracked-links
GET /api/v1/fundos/vdr/google/browse
POST /api/v1/fundos/vdr/google/connect
POST /api/v1/fundos/vdr/google/disconnect
GET /api/v1/fundos/vdr/google/drives
GET /api/v1/fundos/vdr/google/oauth/callback
GET /api/v1/fundos/vdr/google/status
POST /api/v1/fundos/vdr/nda/accept
GET /api/v1/fundos/vdr/nda/status
GET /api/v1/fundos/vdr/rooms
POST /api/v1/fundos/vdr/rooms
DELETE /api/v1/fundos/vdr/rooms/<int:room_id>
GET /api/v1/fundos/vdr/rooms/<int:room_id>
PATCH /api/v1/fundos/vdr/rooms/<int:room_id>
GET /api/v1/fundos/vdr/rooms/<int:room_id>/analytics
GET /api/v1/fundos/vdr/rooms/<int:room_id>/audit
GET /api/v1/fundos/vdr/rooms/<int:room_id>/compare/docs
POST /api/v1/fundos/vdr/rooms/<int:room_id>/compare/run
POST /api/v1/fundos/vdr/rooms/<int:room_id>/diligence/run
GET /api/v1/fundos/vdr/rooms/<int:room_id>/documents
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents
DELETE /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>
GET /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>
PATCH /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/confirm
GET /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/download-url
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/multipart/abort
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/multipart/complete
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/multipart/list-parts
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/multipart/presign-parts
GET /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/stream
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/track-time
PUT /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/upload
GET /api/v1/fundos/vdr/rooms/<int:room_id>/documents/<int:doc_id>/watermarked-stream
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents/multipart/initiate
POST /api/v1/fundos/vdr/rooms/<int:room_id>/documents/presign
GET /api/v1/fundos/vdr/rooms/<int:room_id>/folders
POST /api/v1/fundos/vdr/rooms/<int:room_id>/folders
DELETE /api/v1/fundos/vdr/rooms/<int:room_id>/folders/<int:folder_id>
PATCH /api/v1/fundos/vdr/rooms/<int:room_id>/folders/<int:folder_id>
POST /api/v1/fundos/vdr/rooms/<int:room_id>/import/gdrive
GET /api/v1/fundos/vdr/rooms/<int:room_id>/intelligence
GET /api/v1/fundos/vdr/rooms/<int:room_id>/members
POST /api/v1/fundos/vdr/rooms/<int:room_id>/members
DELETE /api/v1/fundos/vdr/rooms/<int:room_id>/members/<int:user_id>
PATCH /api/v1/fundos/vdr/rooms/<int:room_id>/members/<int:user_id>
GET /api/v1/fundos/vdr/rooms/<int:room_id>/qa
POST /api/v1/fundos/vdr/rooms/<int:room_id>/qa
POST /api/v1/fundos/vdr/rooms/<int:room_id>/qa/<int:question_id>/answer
GET /api/v1/fundos/vdr/rooms/<int:room_id>/reports
GET /api/v1/fundos/vdr/rooms/<int:room_id>/share-access-log
GET /api/v1/fundos/vdr/rooms/<int:room_id>/share-links
POST /api/v1/fundos/vdr/rooms/<int:room_id>/share-links
DELETE /api/v1/fundos/vdr/share-links/<int:link_id>
GET /api/v1/fundos/vdr/share/<token>
GET /api/v1/fundos/vdr/share/<token>/documents
GET /api/v1/fundos/vdr/share/<token>/documents/<int:doc_id>
GET /api/v1/fundos/vdr/share/<token>/documents/<int:doc_id>/stream
GET /api/v1/fundos/vdr/share/<token>/folders
POST /api/v1/fundos/vdr/share/<token>/nda/accept
DELETE /api/v1/fundos/vdr/tracked-links/<int:link_id>
GET /api/v1/fundos/vdr/tracked-links/<int:link_id>/stats
Deal CRM (22)
GET /api/v1/fundos/crm/contacts
POST /api/v1/fundos/crm/contacts
DELETE /api/v1/fundos/crm/contacts/<int:contact_id>
GET /api/v1/fundos/crm/contacts/<int:contact_id>
PATCH /api/v1/fundos/crm/contacts/<int:contact_id>
POST /api/v1/fundos/crm/contacts/bulk-import
POST /api/v1/fundos/crm/contacts/bulk-import/preview
GET /api/v1/fundos/crm/deals worked example above
POST /api/v1/fundos/crm/deals worked example above
GET /api/v1/fundos/crm/deals/<int:deal_id> worked example above
PATCH /api/v1/fundos/crm/deals/<int:deal_id> worked example above
GET /api/v1/fundos/crm/deals/<int:deal_id>/activities
POST /api/v1/fundos/crm/deals/<int:deal_id>/activity worked example above
POST /api/v1/fundos/crm/deals/<int:deal_id>/bind-room
GET /api/v1/fundos/crm/deals/<int:deal_id>/contacts
POST /api/v1/fundos/crm/deals/<int:deal_id>/contacts worked example above
POST /api/v1/fundos/crm/deals/<int:deal_id>/notes
POST /api/v1/fundos/crm/deals/<int:deal_id>/screen
POST /api/v1/fundos/crm/deals/<int:deal_id>/stage worked example above
GET /api/v1/fundos/crm/pipeline worked example above
POST /api/v1/fundos/crm/screen
GET /api/v1/fundos/crm/stages
Exception Inbox (8)
GET /api/v1/fundos/exceptions
GET /api/v1/fundos/exceptions/<int:exc_id>
POST /api/v1/fundos/exceptions/<int:exc_id>/run-playbook
POST /api/v1/fundos/exceptions/<int:exc_id>/update
GET /api/v1/fundos/exceptions/playbooks
POST /api/v1/fundos/exceptions/playbooks
GET /api/v1/fundos/exceptions/playbooks/<int:pb_id>
GET /api/v1/fundos/exceptions/playbooks/runs/<int:run_id>
Fund Administration (11)
POST /api/v1/fundos/fund-admin/<int:fa_id>/admin-tb-rec/run
GET /api/v1/fundos/fund-admin/capital-calls
GET /api/v1/fundos/fund-admin/distributions
GET /api/v1/fundos/fund-admin/funds
GET /api/v1/fundos/fund-admin/lp-statements
GET /api/v1/fundos/fund-admin/nav-runs
GET /api/v1/fundos/fund-admin/nav-runs/<int:run_id>
GET /api/v1/fundos/fund-admin/nav-runs/<int:run_id>/capital-accounts
POST /api/v1/fundos/fund-admin/nav-runs/<int:run_id>/capital-accounts/<int:lp_id>/send
GET /api/v1/fundos/fund-admin/nav-runs/<int:run_id>/capital-accounts/<int:lp_id>/statement
GET /api/v1/fundos/fund-admin/positions
Fund Graph (3)
GET /api/v1/fundos/graph/backlinks
GET /api/v1/fundos/graph/graph
GET /api/v1/fundos/graph/paths
Fund Graph — entity memory (1)
GET /api/v1/fundos/entity-memory
Fund Intelligence (21)
POST /api/v1/fundos/intelligence/analyze-compliance
GET /api/v1/fundos/intelligence/anticipated-qa
POST /api/v1/fundos/intelligence/anticipated-qa
POST /api/v1/fundos/intelligence/anticipated-qa/<int:qa_id>/dismiss
POST /api/v1/fundos/intelligence/anticipated-qa/<int:qa_id>/publish
POST /api/v1/fundos/intelligence/anticipated-qa/bulk-publish
POST /api/v1/fundos/intelligence/assess-completeness
GET /api/v1/fundos/intelligence/benchmark
POST /api/v1/fundos/intelligence/benchmark
GET /api/v1/fundos/intelligence/changes
GET /api/v1/fundos/intelligence/completeness
GET /api/v1/fundos/intelligence/compliance
POST /api/v1/fundos/intelligence/detect-changes
GET /api/v1/fundos/intelligence/entity-map
POST /api/v1/fundos/intelligence/extract-entities
GET /api/v1/fundos/intelligence/red-flags
POST /api/v1/fundos/intelligence/red-flags/<int:flag_id>/false-positive
POST /api/v1/fundos/intelligence/red-flags/<int:flag_id>/resolve
GET /api/v1/fundos/intelligence/runs
POST /api/v1/fundos/intelligence/scan-room
GET /api/v1/fundos/intelligence/scan-stream
HF Ops (15)
GET /api/v1/fundos/ops/breaks
POST /api/v1/fundos/ops/breaks/<int:break_id>/escalate
POST /api/v1/fundos/ops/breaks/<int:break_id>/reassign
POST /api/v1/fundos/ops/breaks/<int:break_id>/resolve
GET /api/v1/fundos/ops/close
GET /api/v1/fundos/ops/close/<int:close_id>
GET /api/v1/fundos/ops/dashboard
GET /api/v1/fundos/ops/dtcc/dashboard
GET /api/v1/fundos/ops/pb-breaks
GET /api/v1/fundos/ops/pb-connectors
GET /api/v1/fundos/ops/pnl
GET /api/v1/fundos/ops/pnl/<int:run_id>
GET /api/v1/fundos/ops/recons
GET /api/v1/fundos/ops/recons/<int:run_id>
GET /api/v1/fundos/ops/risk
Integrations (1)
POST /api/v1/fundos/integrations/vantedge/connect
Internal (1)
GET /api/v1/fundos/internal/org-status
Investor Portal (7)
GET /api/v1/fundos/investors/capital-calls worked example above
GET /api/v1/fundos/investors/lp worked example above
POST /api/v1/fundos/investors/lp worked example above
GET /api/v1/fundos/investors/lp/<int:lp_id> worked example above
POST /api/v1/fundos/investors/lp/<int:lp_id>/capital-calls worked example above
GET /api/v1/fundos/investors/lp/<int:lp_id>/memory
GET /api/v1/fundos/investors/lp/<int:lp_id>/memory/search
LP CRM & Fundraising (62)
POST /api/v1/fundos/lp-crm/agent-actions/<int:action_id>/approve
POST /api/v1/fundos/lp-crm/agent-actions/<int:action_id>/reject
GET /api/v1/fundos/lp-crm/agent-runs/<int:run_id>
GET /api/v1/fundos/lp-crm/agent-runs/<int:run_id>/stream
POST /api/v1/fundos/lp-crm/autopilot/run
POST /api/v1/fundos/lp-crm/calendar/connect/google
POST /api/v1/fundos/lp-crm/calendar/connect/microsoft
GET /api/v1/fundos/lp-crm/calendar/connections
DELETE /api/v1/fundos/lp-crm/calendar/connections/<int:conn_id>
GET /api/v1/fundos/lp-crm/calendar/meetings/<int:meeting_id>
GET /api/v1/fundos/lp-crm/calendar/meetings/<int:meeting_id>/attendees
POST /api/v1/fundos/lp-crm/calendar/meetings/<int:meeting_id>/confirm-lp
POST /api/v1/fundos/lp-crm/calendar/meetings/<int:meeting_id>/dismiss
GET /api/v1/fundos/lp-crm/calendar/meetings/<int:meeting_id>/participants
POST /api/v1/fundos/lp-crm/calendar/meetings/<int:meeting_id>/reassign-lp
POST /api/v1/fundos/lp-crm/calendar/meetings/<int:meeting_id>/reject-lp
GET /api/v1/fundos/lp-crm/calendar/meetings/<int:meeting_id>/transcript
POST /api/v1/fundos/lp-crm/calendar/rematch
POST /api/v1/fundos/lp-crm/calendar/sync-now
GET /api/v1/fundos/lp-crm/calendar/upcoming
GET /api/v1/fundos/lp-crm/consultants
GET /api/v1/fundos/lp-crm/consultants/<int:lp_id>
POST /api/v1/fundos/lp-crm/consultants/<int:lp_id>/relationships
DELETE /api/v1/fundos/lp-crm/consultants/relationships/<int:rel_id>
POST /api/v1/fundos/lp-crm/emails/<int:email_id>/draft-reply
POST /api/v1/fundos/lp-crm/emails/<int:email_id>/extract-todos
POST /api/v1/fundos/lp-crm/emails/<int:email_id>/mark-replied
POST /api/v1/fundos/lp-crm/emails/<int:email_id>/triage-deal
GET /api/v1/fundos/lp-crm/funds
GET /api/v1/fundos/lp-crm/inboxes
DELETE /api/v1/fundos/lp-crm/inboxes/<int:inbox_id>
POST /api/v1/fundos/lp-crm/inboxes/<int:inbox_id>/approve-candidates
POST /api/v1/fundos/lp-crm/inboxes/<int:inbox_id>/dismiss-candidates
POST /api/v1/fundos/lp-crm/inboxes/<int:inbox_id>/scan
GET /api/v1/fundos/lp-crm/inboxes/<int:inbox_id>/scan/stream
POST /api/v1/fundos/lp-crm/inboxes/imap
GET /api/v1/fundos/lp-crm/lps
POST /api/v1/fundos/lp-crm/lps
DELETE /api/v1/fundos/lp-crm/lps/<int:lp_id>
GET /api/v1/fundos/lp-crm/lps/<int:lp_id>
PATCH /api/v1/fundos/lp-crm/lps/<int:lp_id>
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/blurb
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/blurb/refresh-ai
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/calendar/scan-history
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/data-room
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/default-fund
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/emails
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/enrichment
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/meetings
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/people
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/room-docs
POST /api/v1/fundos/lp-crm/lps/<int:lp_id>/todos
POST /api/v1/fundos/lp-crm/lps/bulk
GET /api/v1/fundos/lp-crm/meetings/<int:meeting_id>
POST /api/v1/fundos/lp-crm/meetings/<int:meeting_id>/followup-draft
GET /api/v1/fundos/lp-crm/meetings/<int:meeting_id>/followup-draft/stream
POST /api/v1/fundos/lp-crm/meetings/<int:meeting_id>/followup-mark-sent
POST /api/v1/fundos/lp-crm/meetings/<int:meeting_id>/followup-save
POST /api/v1/fundos/lp-crm/meetings/<int:meeting_id>/followup/answer/<int:qidx>/<action>
DELETE /api/v1/fundos/lp-crm/people/<int:person_id>
POST /api/v1/fundos/lp-crm/room-docs/<int:grant_id>/toggle
POST /api/v1/fundos/lp-crm/todos/<int:todo_id>/status
LP Portal (12)
GET /api/v1/fundos/investor-portal/calls
POST /api/v1/fundos/investor-portal/calls
DELETE /api/v1/fundos/investor-portal/calls/<int:call_id>
GET /api/v1/fundos/investor-portal/calls/<int:call_id>
POST /api/v1/fundos/investor-portal/calls/<int:call_id>/payment
POST /api/v1/fundos/investor-portal/calls/<int:call_id>/schedule-reminders
POST /api/v1/fundos/investor-portal/calls/<int:call_id>/status
GET /api/v1/fundos/investor-portal/lps
POST /api/v1/fundos/investor-portal/lps
DELETE /api/v1/fundos/investor-portal/lps/<int:lp_id>
GET /api/v1/fundos/investor-portal/lps/<int:lp_id>
PATCH /api/v1/fundos/investor-portal/lps/<int:lp_id>
MCP Connections (5)
GET /api/v1/fundos/mcp-connections
POST /api/v1/fundos/mcp-connections
DELETE /api/v1/fundos/mcp-connections/<int:connection_id>
PATCH /api/v1/fundos/mcp-connections/<int:connection_id>
POST /api/v1/fundos/mcp-connections/<int:connection_id>/health
ODD / Diligence (42)
GET /api/v1/fundos/odd/drive/connections
GET /api/v1/fundos/odd/drive/folders
POST /api/v1/fundos/odd/drive/runs
GET /api/v1/fundos/odd/drive/runs/<int:run_id>
POST /api/v1/fundos/odd/drive/runs/<int:run_id>/actions/<int:action_id>/approve
POST /api/v1/fundos/odd/drive/runs/<int:run_id>/actions/<int:action_id>/reject
GET /api/v1/fundos/odd/drive/runs/<int:run_id>/answers
PATCH /api/v1/fundos/odd/drive/runs/<int:run_id>/answers/<int:answer_id>
POST /api/v1/fundos/odd/drive/runs/<int:run_id>/answers/<int:answer_id>/accept
POST /api/v1/fundos/odd/drive/runs/<int:run_id>/answers/<int:answer_id>/drop
POST /api/v1/fundos/odd/drive/runs/<int:run_id>/answers/<int:answer_id>/regenerate
POST /api/v1/fundos/odd/drive/runs/<int:run_id>/continue
GET /api/v1/fundos/odd/drive/runs/<int:run_id>/events
POST /api/v1/fundos/odd/drive/runs/<int:run_id>/finalize
POST /api/v1/fundos/odd/drive/runs/<int:run_id>/rerun
POST /api/v1/fundos/odd/generate worked example above
GET /api/v1/fundos/odd/profiles
POST /api/v1/fundos/odd/profiles
DELETE /api/v1/fundos/odd/profiles/<int:profile_id>
GET /api/v1/fundos/odd/profiles/<int:profile_id>
PATCH /api/v1/fundos/odd/profiles/<int:profile_id>
GET /api/v1/fundos/odd/profiles/<int:profile_id>/answer-bank
PATCH /api/v1/fundos/odd/profiles/<int:profile_id>/answer-bank/<int:item_id>
POST /api/v1/fundos/odd/profiles/<int:profile_id>/answer-bank/sync
POST /api/v1/fundos/odd/profiles/<int:profile_id>/refresh
GET /api/v1/fundos/odd/profiles/<int:profile_id>/refresh/stream
GET /api/v1/fundos/odd/profiles/<int:profile_id>/responses
POST /api/v1/fundos/odd/profiles/<int:profile_id>/responses
POST /api/v1/fundos/odd/profiles/<int:profile_id>/sync
POST /api/v1/fundos/odd/profiles/import/gdrive
GET /api/v1/fundos/odd/profiles/import/gdrive/stream
POST /api/v1/fundos/odd/profiles/import/kela
GET /api/v1/fundos/odd/profiles/import/kela/stream
GET /api/v1/fundos/odd/responses/<int:response_id>
GET /api/v1/fundos/odd/responses/<int:response_id>/download/<doc_type>
GET /api/v1/fundos/odd/responses/<int:response_id>/preview
POST /api/v1/fundos/odd/responses/<int:response_id>/review
DELETE /api/v1/fundos/odd/responses/<int:response_id>/share
POST /api/v1/fundos/odd/responses/<int:response_id>/share
GET /api/v1/fundos/odd/responses/share-public/<token>
GET /api/v1/fundos/odd/template/<int:template_id>/preview-html
GET /api/v1/fundos/odd/templates
Pricer (8)
GET /api/v1/fundos/pricer/deals
GET /api/v1/fundos/pricer/deals/<int:deal_id>/pricings
GET /api/v1/fundos/pricer/pricings
DELETE /api/v1/fundos/pricer/pricings/<int:pricing_id>
GET /api/v1/fundos/pricer/pricings/<int:pricing_id>
POST /api/v1/fundos/pricer/remittances
POST /api/v1/fundos/pricer/run worked example above
POST /api/v1/fundos/pricer/tapes
Reports (12)
GET /api/v1/fundos/reports
DELETE /api/v1/fundos/reports/<int:report_id>
GET /api/v1/fundos/reports/<int:report_id>
GET /api/v1/fundos/reports/<int:report_id>/docx
GET /api/v1/fundos/reports/<int:report_id>/pdf
GET /api/v1/fundos/reports/<int:report_id>/status
POST /api/v1/fundos/reports/detect-deal-type
POST /api/v1/fundos/reports/generate
POST /api/v1/fundos/reports/save-deal-type
GET /api/v1/fundos/reports/stream-generate
GET /api/v1/fundos/reports/templates
POST /api/v1/fundos/reports/upload-template
Risk (14)
POST /api/v1/fundos/risk/agent/scan
GET /api/v1/fundos/risk/alerts worked example above
POST /api/v1/fundos/risk/alerts/<int:alert_id>/resolve worked example above
GET /api/v1/fundos/risk/by-vi-deal/<vi_deal_id>
POST /api/v1/fundos/risk/check worked example above
GET /api/v1/fundos/risk/covenants worked example above
POST /api/v1/fundos/risk/covenants worked example above
DELETE /api/v1/fundos/risk/covenants/<int:cov_id>
GET /api/v1/fundos/risk/covenants/<int:cov_id>
PATCH /api/v1/fundos/risk/covenants/<int:cov_id>
GET /api/v1/fundos/risk/facilities
GET /api/v1/fundos/risk/facilities/<int:facility_id>
GET /api/v1/fundos/risk/facilities/<int:facility_id>/bb/<int:run_id>
POST /api/v1/fundos/risk/facilities/<int:facility_id>/bb/run
Syndication (8)
GET /api/v1/fundos/syndication worked example above
POST /api/v1/fundos/syndication worked example above
DELETE /api/v1/fundos/syndication/<int:synd_id>
GET /api/v1/fundos/syndication/<int:synd_id> worked example above
POST /api/v1/fundos/syndication/<int:synd_id>/allocate worked example above
DELETE /api/v1/fundos/syndication/<int:synd_id>/allocations/<int:alloc_id>
PATCH /api/v1/fundos/syndication/<int:synd_id>/allocations/<int:alloc_id>
POST /api/v1/fundos/syndication/<int:synd_id>/status
Tasks (4)
GET /api/v1/fundos/tasks/holds
GET /api/v1/fundos/tasks/holds/<int:hold_id>
POST /api/v1/fundos/tasks/holds/<int:hold_id>/confirm
POST /api/v1/fundos/tasks/holds/<int:hold_id>/refund
Team (2)
GET /api/v1/fundos/team
POST /api/v1/fundos/team/run
Trading / OMS (24)
GET /api/v1/fundos/oms/fix-config
POST /api/v1/fundos/oms/fix-config
GET /api/v1/fundos/oms/fix-status
GET /api/v1/fundos/oms/limits
POST /api/v1/fundos/oms/limits
POST /api/v1/fundos/oms/limits/<int:limit_id>/delete
GET /api/v1/fundos/oms/locates
POST /api/v1/fundos/oms/locates
GET /api/v1/fundos/oms/models
POST /api/v1/fundos/oms/models
GET /api/v1/fundos/oms/models/<int:model_id>
GET /api/v1/fundos/oms/orders
POST /api/v1/fundos/oms/orders
GET /api/v1/fundos/oms/orders/<int:order_id>
POST /api/v1/fundos/oms/orders/<int:order_id>/cancel
POST /api/v1/fundos/oms/orders/<int:order_id>/replace
GET /api/v1/fundos/oms/orders/<int:order_id>/ticket
GET /api/v1/fundos/oms/positions
GET /api/v1/fundos/oms/positions/lots
POST /api/v1/fundos/oms/pretrade
GET /api/v1/fundos/oms/rebalance
POST /api/v1/fundos/oms/rebalance/<int:proposal_id>/approve
POST /api/v1/fundos/oms/rebalance/propose
GET /api/v1/fundos/oms/tax-summary
Transactions (24)
GET /api/v1/fundos/transactions worked example above
POST /api/v1/fundos/transactions
DELETE /api/v1/fundos/transactions/<int:tx_id>
GET /api/v1/fundos/transactions/<int:tx_id> worked example above
PATCH /api/v1/fundos/transactions/<int:tx_id>
POST /api/v1/fundos/transactions/<int:tx_id>/extract-cps
POST /api/v1/fundos/transactions/<int:tx_id>/link-room
GET /api/v1/fundos/transactions/<int:tx_id>/milestones
POST /api/v1/fundos/transactions/<int:tx_id>/milestones
GET /api/v1/fundos/transactions/<int:tx_id>/parties
POST /api/v1/fundos/transactions/<int:tx_id>/parties
POST /api/v1/fundos/transactions/<int:tx_id>/parties/<int:idx>/signed
POST /api/v1/fundos/transactions/<int:tx_id>/status worked example above
GET /api/v1/fundos/transactions/<int:tx_id>/tasks
POST /api/v1/fundos/transactions/<int:tx_id>/tasks worked example above
DELETE /api/v1/fundos/transactions/<int:tx_id>/tasks/<int:task_id>
PATCH /api/v1/fundos/transactions/<int:tx_id>/tasks/<int:task_id> worked example above
POST /api/v1/fundos/transactions/<int:tx_id>/tasks/<int:task_id>/complete
GET /api/v1/fundos/transactions/<int:tx_id>/tasks/<int:task_id>/documents
POST /api/v1/fundos/transactions/<int:tx_id>/tasks/<int:task_id>/documents
DELETE /api/v1/fundos/transactions/<int:tx_id>/tasks/<int:task_id>/documents/<int:assoc_id>
POST /api/v1/fundos/transactions/<int:tx_id>/tasks/<int:task_id>/documents/<int:assoc_id>/compare
POST /api/v1/fundos/transactions/<int:tx_id>/tasks/<int:task_id>/documents/prepare
POST /api/v1/fundos/transactions/draft worked example above
Usage (1)
POST /api/v1/fundos/usage
Admin (17) UI-backing
GET /api/v1/fundos/admin/audit
POST /api/v1/fundos/admin/email/test
GET /api/v1/fundos/admin/invitations/pending
GET /api/v1/fundos/admin/invite-links
POST /api/v1/fundos/admin/invite-links
POST /api/v1/fundos/admin/invite-links/<int:link_id>/revoke
GET /api/v1/fundos/admin/notifications
POST /api/v1/fundos/admin/notifications/mark
GET /api/v1/fundos/admin/notifications/summary
GET /api/v1/fundos/admin/oauth/clients
POST /api/v1/fundos/admin/oauth/tokens/<int:token_id>/revoke
POST /api/v1/fundos/admin/security/mfa-required
GET /api/v1/fundos/admin/sidebar-tabs
POST /api/v1/fundos/admin/sidebar-tabs
GET /api/v1/fundos/admin/usage-traces
GET /api/v1/fundos/admin/users
PATCH /api/v1/fundos/admin/users/<int:user_id>/modules
Compare (2) UI-backing
GET /api/v1/fundos/compare/docs
POST /api/v1/fundos/compare/run
Copilot (1) UI-backing
POST /api/v1/fundos/copilot/ask
Dashboard (3) UI-backing
GET /api/v1/fundos/dashboard/admin
GET /api/v1/fundos/dashboard/compliance
GET /api/v1/fundos/dashboard/gp
Developer (3) UI-backing
GET /api/v1/fundos/developer/dashboard
POST /api/v1/fundos/developer/keys
POST /api/v1/fundos/developer/keys/<int:key_id>/revoke
Marketplace (7) UI-backing
POST /api/v1/fundos/marketplace/install/dashboard/<int:item_id>
POST /api/v1/fundos/marketplace/install/dd-checklist/<int:item_id>
POST /api/v1/fundos/marketplace/install/odd-template/<int:item_id>
POST /api/v1/fundos/marketplace/odd-template/<int:item_id>/delete
POST /api/v1/fundos/marketplace/odd-template/upload
POST /api/v1/fundos/marketplace/rename/odd-template/<int:item_id>
GET /api/v1/fundos/marketplace/templates
Notifications (3) UI-backing
GET /api/v1/fundos/notifications
POST /api/v1/fundos/notifications/mark
GET /api/v1/fundos/notifications/summary
Q&A (9) UI-backing
GET /api/v1/fundos/qa/export
GET /api/v1/fundos/qa/questions
POST /api/v1/fundos/qa/questions
GET /api/v1/fundos/qa/questions/<int:question_id>
POST /api/v1/fundos/qa/questions/<int:question_id>/answer
POST /api/v1/fundos/qa/questions/<int:question_id>/assign
POST /api/v1/fundos/qa/questions/<int:question_id>/status
POST /api/v1/fundos/qa/questions/<int:question_id>/toggle-public
GET /api/v1/fundos/qa/team
Session / identity (3) UI-backing
GET /api/v1/fundos/me
GET /api/v1/fundos/me/billing/outstanding
GET /api/v1/fundos/me/modules
Superadmin (29) UI-backing
GET /api/v1/fundos/superadmin/credits
GET /api/v1/fundos/superadmin/credits/<int:org_id>
POST /api/v1/fundos/superadmin/credits/add
GET /api/v1/fundos/superadmin/dashboard
GET /api/v1/fundos/superadmin/drill/revenue
GET /api/v1/fundos/superadmin/drill/revenue-split
GET /api/v1/fundos/superadmin/drill/rooms
GET /api/v1/fundos/superadmin/drill/storage
GET /api/v1/fundos/superadmin/drill/usage
GET /api/v1/fundos/superadmin/drill/users
GET /api/v1/fundos/superadmin/invoices
POST /api/v1/fundos/superadmin/invoices/<int:inv_id>/mark-paid
POST /api/v1/fundos/superadmin/invoices/<int:inv_id>/send
POST /api/v1/fundos/superadmin/invoices/<int:inv_id>/void
POST /api/v1/fundos/superadmin/invoices/create
GET /api/v1/fundos/superadmin/model-pricing
POST /api/v1/fundos/superadmin/model-pricing/<model_name>
PUT /api/v1/fundos/superadmin/model-pricing/<model_name>
GET /api/v1/fundos/superadmin/orgs
GET /api/v1/fundos/superadmin/orgs/<int:org_id>
POST /api/v1/fundos/superadmin/orgs/<int:org_id>/activate
POST /api/v1/fundos/superadmin/orgs/<int:org_id>/change-plan
POST /api/v1/fundos/superadmin/orgs/<int:org_id>/set-margin
POST /api/v1/fundos/superadmin/orgs/<int:org_id>/signup-review
POST /api/v1/fundos/superadmin/orgs/<int:org_id>/suspend
GET /api/v1/fundos/superadmin/signup-review
GET /api/v1/fundos/superadmin/workspace-access
POST /api/v1/fundos/superadmin/workspace-access/grant
DELETE /api/v1/fundos/superadmin/workspace-access/revoke
Workspaces (3) UI-backing
GET /api/v1/fundos/workspaces/lookup
POST /api/v1/fundos/workspaces/relink
POST /api/v1/fundos/workspaces/sync
MCP Setup Quick Start
  1. Go to Settings → MCP Connections and click Add connection.
  2. Enter the server URL (HTTPS, SSE, or stdio command) and pick the modules that should use this source.
  3. Toggle BYOD mode if source documents should never be stored in VantedgeAI — outputs only.
  4. VantedgeAI will run a health check. Healthy connections appear as source options inside each module's UI and API.
  5. In API calls, reference the connection via {"type": "mcp", "connection_id": N, "path": "..."}.