Skip to Content
Docs are evolving — expect frequent updates.
FundsFund Workbook

Fund Workbook

Returns the workbook Kruncher builds from the data room: a fund sheet with the fund-level cells, a schedule of investments, and one sheet per portfolio company. It is the same projection the Workbook tab renders in the app, with every reviewer annotation (value edits, candidate changes, flags) already applied — the figure you read here is the figure a reviewer signed off.

Endpoint

GET https://api.kruncher.ai/api/integrationfund/fund/workbook

Headers

HeaderRequiredDescription
AuthorizationYesYour API key (format: YOUR_API_KEY)

Parameters

ParameterTypeRequiredDescription
fundExtractionIdstring (uuid)YesThe run to read. Must be completed

Request

CODE
curl -X GET "https://api.kruncher.ai/api/integrationfund/fund/workbook?fundExtractionId=3f1c9a2e-7b4d-4e1a-9c2f-5d6e7f8a9b0c" \
  -H "Authorization: YOUR_API_KEY_HERE"

Response

CODE
{
  "metadata": { "code": "1000", "title": "Successful", "description": "" },
  "data": {
    "fundExtractionId": "3f1c9a2e-7b4d-4e1a-9c2f-5d6e7f8a9b0c",
    "name": "Northwind Growth Fund II",
    "status": "completed",
    "refDate": "2026-06-30",
    "showDerivedMetrics": true,
    "workbook": {
      "sheets": [
        {
          "id": "2.1",
          "title": "Fund",
          "kind": "fund",
          "blocks": [
            {
              "title": "Fund performance",
              "cells": [
                { "cell": "C7", "label": "NAV", "value": 182400000, "unit": "currency", "currency": "EUR", "status": "extracted", "sourceFile": "Q2-2026-quarterly-report.pdf", "pageNumber": 4 },
                { "cell": "C9", "label": "nTVPI", "value": 1.62, "unit": "x", "currency": null, "status": "extracted", "sourceFile": "Q2-2026-quarterly-report.pdf", "pageNumber": 4 },
                { "cell": "C10", "label": "nDPI", "value": 0.41, "unit": "x", "currency": null, "status": "computed", "sourceFile": null, "pageNumber": null }
              ]
            },
            {
              "title": "Fund terms",
              "cells": [
                { "cell": "C21", "label": "Vintage", "value": 2019, "unit": "year", "currency": null, "status": "extracted", "sourceFile": "LPA.pdf", "pageNumber": 12 },
                { "cell": "C22", "label": "Management fee", "value": null, "unit": "percent", "currency": null, "status": "missing", "sourceFile": null, "pageNumber": null }
              ]
            }
          ]
        },
        {
          "id": "3.1",
          "title": "Schedule of investments",
          "kind": "schedule",
          "columns": ["Company", "Status", "Cost", "NAV", "Distributions", "Total value", "Gross TVPI"],
          "rows": [
            ["Acme Robotics", "active", 12000000, 31500000, 0, 31500000, 2.63],
            ["Blue Ledger", "exited", 8000000, 0, 19200000, 19200000, 2.4]
          ],
          "totals": ["Total", null, 20000000, 31500000, 19200000, 50700000, 2.54]
        },
        {
          "id": "4.1",
          "title": "Acme Robotics",
          "kind": "company",
          "years": [2024, 2025],
          "quarters": ["Q1 2026", "Q2 2026"],
          "blocks": [
            {
              "title": "Financials",
              "cells": [
                { "cell": "C5", "label": "Revenue FY2025", "value": 14200000, "unit": "currency", "currency": "EUR", "status": "extracted", "sourceFile": "Q2-2026-quarterly-report.pdf", "pageNumber": 17 }
              ]
            }
          ]
        }
      ],
      "summary": {
        "positions": 14,
        "extracted": 212,
        "notFound": 9,
        "missing": 31,
        "input": 4,
        "withAttention": 6,
        "computed": 38,
        "annotated": 5,
        "valueEdited": 3,
        "candidateChanged": 1,
        "flaggedForReview": 1,
        "reportedAsError": 0
      }
    }
  }
}

Response Fields

FieldTypeDescription
fundExtractionIdstringThe run
namestringFund name
statusstringRun status
refDatestringReporting date (YYYY-MM-DD)
showDerivedMetricsbooleanWhether computed cells are included
workbook.sheets[]arrayOne sheet per section, in workbook order
workbook.sheets[].idstringSheet id. 2.1 is the fund sheet, 3.1 the schedule of investments, then one sheet per company
workbook.sheets[].kindstringfund, schedule or company
workbook.sheets[].blocks[]arrayFund and company sheets: groups of cells with a title
workbook.sheets[].blocks[].cells[]arrayEach cell: cell (the spreadsheet address, e.g. C7), label, value, unit, currency, status, plus provenance fields such as sourceFile and pageNumber
workbook.sheets[].columns / rows / totalsarraySchedule sheet: tabular layout
workbook.sheets[].years / quartersarrayCompany sheets: the periods the sheet covers
workbook.summaryobjectCell counts by state across the workbook (see below)

Well-known fund sheet cells

CellFigure
C7NAV
C9nTVPI (net TVPI)
C10nDPI (net DPI)
C21Vintage

Cell status values

StatusMeaning
extractedRead from a document; sourceFile and pageNumber say where
computedDerived from other cells (only when showDerivedMetrics is true)
inputTyped in by a reviewer
notFoundLooked for in the documents but not present
missingNot covered by the documents uploaded

summary also counts reviewer activity: annotated, valueEdited, candidateChanged, flaggedForReview, reportedAsError, and withAttention (cells that still need a look).

Errors

CodeHTTPMeaning
Error100404No run with that fundExtractionId in your workspace
Error212403Your user has no role on this fund
Error0500Kruncher cannot reach its analysis engine; retry later

A run that is not yet completed has no workbook; check available.workbook on Fund Detail first.

Last updated on