Skip to Content
Docs are evolving — expect frequent updates.
FundsUpload & Run

Upload & Run

Starting a fund analysis takes two calls:

  1. Upload the data room with POST /fund/upload. Files are stored in a folder and you get back its folderPath.
  2. Run the analysis with POST /fund/run, passing that folderPath and a name.

Processing takes minutes. Poll Fund Detail for status, or subscribe to the fundAnalysisCompleted webhook.

Headers

HeaderRequiredDescription
AuthorizationYesYour API key (format: YOUR_API_KEY)
Content-TypeYesmultipart/form-data for upload (set by your HTTP client); application/json for run

1. Upload the data room

POST https://api.kruncher.ai/api/integrationfund/fund/upload

Send the documents as multipart/form-data, repeating the files field once per file.

Form fields

FieldTypeRequiredDescription
filesfile (repeatable)YesPDF, XLSX or XLS. Max 100 MB per file per request
folderPathstringNoA folderPath returned by an earlier upload. Files are added to that folder instead of a new one

A data room bigger than one request fits comfortably: upload the first batch, then call again with folderPath set to the value you got back. Each call adds to the same folder. The run itself accepts up to 50 files in total.

Request

CODE
# First batch — creates the folder
curl -X POST "https://api.kruncher.ai/api/integrationfund/fund/upload" \
  -H "Authorization: YOUR_API_KEY_HERE" \
  -F "files=@Q2-2026-quarterly-report.pdf" \
  -F "files=@Q2-2026-capital-account.pdf" \
  -F "files=@schedule-of-investments.xlsx"
 
# Second batch — adds to the same folder
curl -X POST "https://api.kruncher.ai/api/integrationfund/fund/upload" \
  -H "Authorization: YOUR_API_KEY_HERE" \
  -F "folderPath=fund-uploads/6d5c4b3a-2f1e-4d0c-9b8a-7f6e5d4c3b2a" \
  -F "files=@LPA.pdf" \
  -F "files=@structure-chart.pdf"

Response

CODE
{
  "metadata": { "code": "1000", "title": "Successful", "description": "" },
  "data": {
    "folderPath": "fund-uploads/6d5c4b3a-2f1e-4d0c-9b8a-7f6e5d4c3b2a",
    "fileNames": [
      "Q2-2026-quarterly-report.pdf",
      "Q2-2026-capital-account.pdf",
      "schedule-of-investments.xlsx"
    ]
  }
}
FieldTypeDescription
folderPathstringPass to /fund/run, or to another upload to add files
fileNamesstring[]The files stored by this call

2. Start the run

POST https://api.kruncher.ai/api/integrationfund/fund/run

Body

FieldTypeRequiredDescription
namestringYesFund name shown in Kruncher
folderPathstringYesFrom the upload response
refDatestringNoReporting date of the documents (YYYY-MM-DD)
projectModestringNonone, bookmark or analyze: whether the portfolio companies become Kruncher companies, and whether they are analysed. Default bookmark
fundstageIdstring (uuid)NoFund stage to place the fund in
projectstageIdstring (uuid)NoPipeline stage for the portfolio companies created by bookmark / analyze
projectlistIdstring (uuid)NoList to add those companies to
customerIsInvestorbooleanNoYour firm is an LP in this fund

projectMode:

ValueEffect
nonePortfolio companies stay as names in the fund run
bookmarkEach portfolio company is created as a Kruncher company (no company analysis, no extra credits)
analyzeEach portfolio company is created and a company analysis is started for it, at the usual per-company cost

Request

CODE
curl -X POST "https://api.kruncher.ai/api/integrationfund/fund/run" \
  -H "Authorization: YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Northwind Growth Fund II",
    "folderPath": "fund-uploads/6d5c4b3a-2f1e-4d0c-9b8a-7f6e5d4c3b2a",
    "refDate": "2026-06-30",
    "projectMode": "bookmark",
    "customerIsInvestor": true
  }'

Response

CODE
{
  "metadata": { "code": "1000", "title": "Successful", "description": "" },
  "data": {
    "fundExtractionId": "3f1c9a2e-7b4d-4e1a-9c2f-5d6e7f8a9b0c",
    "name": "Northwind Growth Fund II",
    "status": "pending",
    "refDate": "2026-06-30",
    "createdAt": "2026-09-21T08:02:10.000Z"
  }
}
FieldTypeDescription
fundExtractionIdstringThe new run. Use it with every read endpoint
namestringFund name
statusstringAlways pending on creation
refDatestring/nullThe reporting date you passed
createdAtstringISO 8601 timestamp

Credits and limits

  • A run costs 10 credits, charged when the run is accepted. With no credits left the call answers Error131 and nothing is charged.
  • A data room of more than 50 files is refused with Error209 before charging. Remove documents that do not carry fund data, or split the room.
  • Each file may be at most 100 MB; allowed types are PDF, XLSX and XLS.
  • projectMode: analyze additionally charges the usual company-analysis credits per portfolio company.

Errors

CodeHTTPEndpointMeaning
Error131402runYour plan has no credits left
Error209400runThe folder holds more than 50 files
Error100404uploadfolderPath does not name a folder you uploaded
Error0500bothKruncher cannot reach its analysis engine; retry later

A run that fails during processing is not an HTTP error: its status becomes error and errorMessage on Fund Detail explains why. The fundAnalysisCompleted webhook is not sent for failed runs.

Last updated on