Kruncher Logo
For Builders · APIs, MCP and modules

Every capability Kruncher has, as something you can call.

Ingest a document. Analyze a company, a person, or a whole fund. Score it against your own criteria, keep it under watch, and extract exactly the metadata your model consumes. This page is the catalog.

We give you the infrastructure. You build the service.
Quick start

One key, one base URL, one envelope

Every call carries your API key in the Authorization header and comes back in the same envelope, so a client you write once reads every response on this page.

  • metadata carries the result code and title
  • data carries the entity, or the list of them
  • pagination appears wherever a list can run long
Full reference, paths and parameters
Call
GET https://api.kruncher.ai/api/integration/projects
  ?page=0&pageSize=20

Authorization: YOUR_API_KEY
Envelopeevery response
{
  "metadata": {
    "code": "1000",
    "title": "Successful",
    "description": ""
  },
  "data": [ ... ],
  "pagination": {
    "page": 0,
    "pageSize": 20,
    "totalCount": 42,
    "nextPage": true
  }
}
The API catalog

Five families, one data layer

Structured, sourced, timestamped output on every call. Take one family, or chain all five.

01Documents API

Everything starts with a document

Send a deck, a data room file, a financial statement or a spreadsheet. Nothing is extracted until the engine knows which document it is reading and which entity the content belongs to.

  • Ingest a document

    Upload one file or a folder. Each file is classified, parsed and resolved to the company, fund or person it describes before any figure is read.

    Returns: A document id, its class, and the entity it resolved to

  • Extract metadata

    Point the extractor at your own field definitions and get exactly the fields your model consumes. The thousand data points become the sixty, or the thirty two, you actually use.

    Returns: Your schema, filled, with provenance on every value

  • Attach to an entity

    Add files to a company or a fund that already exists, so the record keeps one history instead of forking into a second one.

    Returns: The updated entity, with the new sources listed

Ingest and classify a data room file
Requestmultipart upload
{
  "file": "Q1-2026-report.pdf",
  "resolveTo": "fund",
  "fields": [
    "nav",
    "unfunded",
    "accrued_carry"
  ]
}
Response
{
  "documentId": "doc_9f2c41",
  "class": "quarterly_report",
  "period": "2026-03-31",
  "resolved": {
    "type": "fund",
    "name": "Elmsworth Europe VII"
  },
  "fields": [
    {
      "field": "nav",
      "value": "1246629.00",
      "currency": "USD",
      "status": "extracted",
      "source": {
        "file": "Q1-2026-report.pdf",
        "page": "14"
      }
    },
    {
      "field": "accrued_carry",
      "value": null,
      "status": "missing",
      "reason": "not printed in this document"
    }
  ]
}
02Companies API

One company, one resolved record

Analyze any company against a thesis you define, score it on your own criteria, and keep it under watch afterwards. Roughly a thousand structured data points, each one sourced and timestamped.

  • Analyze a company

    Run a full analysis from your documents and the premium sources underneath: profile, financials, employee growth, web traffic, competitive landscape, founding team, market sizing and investor history.

    Returns: The full company model, every field sourced and dated

  • Score a company

    Score against your own criteria. Up to 500 deal score parameters, weighted the way your firm decides, returned with the reasoning behind each contribution.

    Returns: Deal score, thesis match, and the reasoning per dimension

  • Monitor a company

    Put a company under continuous watch. Re analysis on the cadence you set, with 600 configurable signals across people, liquidity, M&A and business deals. Add your own on top.

    Returns: Signal events with source and date, pushed by webhook

  • Search and retrieve

    Find companies across your own pipeline and the wider universe, filtered on the attributes your thesis actually turns on.

    Returns: A paginated list of resolved companies

Analyze a company against a thesis
Request
{
  "companyWebsite": "https://novacrop.com",
  "criteriaId": "agritech_series_a",
  "prompt": "Weight unit economics.",
  "sections": [
    "financials",
    "team",
    "competitors"
  ]
}
Responseabridged
{
  "metadata": { "code": "1000" },
  "data": {
    "id": "521a93a6-091d-4943-ba13-7c1a654a14ae",
    "companyName": "NovaCrop",
    "companyIndustry": ["AgriTech", "SaaS"],
    "companyStage": "seriesA",
    "processing": "completed",
    "projectScores": [
      { "score": 8.5, "scoreText": "Strong Fit" }
    ],
    "analyses": [
      {
        "id": "analysis_xyz789",
        "type": "company",
        "status": "completed",
        "createdAt": "2026-09-16T10:30:00Z"
      }
    ],
    "datapoints": 1043,
    "sources": ["crunchbase", "linkedin", "registry"]
  }
}
03People API

The founder, the operator, the counterparty

Resolve a person from a name and a company, then enrich them into a structured, sourced profile. Entity resolution collapses the same person appearing under different spellings into one node.

  • Find a person

    Resolve a founder, an executive or a professional from a name, a company or a LinkedIn URL, narrowed by the role you are looking for.

    Returns: A resolved person, or an explicit no match

  • Analyze a person

    Career history, current and prior roles, education, co founder history, prior company outcomes and public signal activity, each claim carrying its source.

    Returns: The full person model, every field sourced

  • Warm paths

    See who on your own team is connected to that person, drawn from the address books and inboxes you have connected.

    Returns: Connections, ranked by strength, with where each lives

Resolve and enrich a founder
Request
{
  "fullName": "Marta Vellone",
  "companyName": "NovaCrop",
  "linkedinUrl": "linkedin.com/in/mv",
  "type": "founder"
}
Responseabridged
{
  "metadata": { "code": "1000" },
  "data": {
    "fullName": "Marta Vellone",
    "currentRole": "Co-founder & CEO",
    "pastExperience": [
      {
        "role": "VP Engineering",
        "name": "Torvex",
        "startDate": "2017-04",
        "endDate": "2021-11",
        "isTopCompany": true
      }
    ],
    "education": [
      {
        "universityName": "ETH Zurich",
        "degree": "MSc Computer Science",
        "isTopSchool": true
      }
    ],
    "connections": [
      {
        "memberName": "Your partner",
        "source": "linkedin",
        "degree": 1
      }
    ]
  }
}
04Funds API

A data room in, a register out

Analyze a whole fund, not just the companies inside it. The fund family is resolved from the LPA before a single figure is extracted, so sleeve mechanics stop being a manual job and nothing is counted twice.

  • Analyze a fund

    Point a run at a data room. Every file is classified, the fund structure is resolved from the LPA, figures are extracted against your definitions, derived, validated, and returned as a workbook. One fund in about an hour, ten in parallel inside ninety minutes.

    Returns: A run id, then the workbook, cell by cell

  • Read the workbook

    Every position carries its status, its source file and page, the competing candidates, and the deterministic checks that ran against it. Nothing is asserted and nothing is guessed.

    Returns: Sheets, cells, candidates, checks and annotations

  • Estimate NAV

    An independent value for each holding as of today, taken down to the fund's stake and set against the GP's mark, with a confidence level attached.

    Returns: Per holding estimate, stake value, and variance to NAV

  • Update incrementally

    Feed a completed run new documents only. The pipeline loads the base run as the baseline and stamps every row with how it relates to it: carried, restated, new period or new.

    Returns: A new run, diffed against the base

Run a fund extraction, then read a holding
Request
{
  "name": "Elmsworth Europe VII",
  "folderPath": "/dataroom/elm-vii",
  "refDate": "2026-03-31",
  "projectMode": "analyze",
  "customerIsInvestor": true
}
Responseabridged
{
  "metadata": { "code": "1000" },
  "data": {
    "id": "3dc77b09-2f9f-4009",
    "name": "Elmsworth Europe VII",
    "status": "completed",
    "refDate": "2026-03-31",
    "portfolio": { "total": 19, "held": 9 },
    "companies": [
      {
        "name": "Torvex",
        "holding": "held",
        "stake": 0.342,
        "nav": 1027680102,
        "estimate": {
          "basis": "enterprise",
          "stakeValue": 891616572,
          "vsNavPct": -13.2,
          "level": "low",
          "asOfDate": "2026-09-16"
        },
        "signals": { "count": 3, "positive": 2 }
      }
    ],
    "validation": {
      "summary": { "pass": 44, "warn": 3, "fail": 0 }
    }
  }
}
05Graph & Agents

Query what surrounds an entity, or let an agent do it

The same data layer, reachable where your agents and your systems already are. No UI to adopt, and your governance boundary stays where it is.

  • Knowledge graph

    Traverse typed, directional relationships across millions of companies: investor, partner, vendor, customer, competitor, founder, executive. Every edge resolves to a source.

    Returns: Nodes and edges, each with provenance

  • MCP server

    Connect Claude, ChatGPT or your own agents straight to the data layer and query it conversationally, inside your own governance boundary.

    Returns: Tools and resources your agent can call directly

  • Chat with the data

    Ask any question across every company, document and note you hold, and get an answer with the source and the date behind each claim.

    Returns: An answer, plus the passages it was drawn from

  • Co Worker agents

    Build repeatable agents on the same primitives, so a research routine your team runs by hand becomes something that runs on a schedule.

    Returns: A task run, with its artifacts

  • Webhooks

    A completion webhook per run and per signal, so your systems react rather than poll.

    Returns: The event, and the entity it fired on

Walk the edges around a company
Request
{
  "entity": "novacrop.com",
  "edges": [
    "investor",
    "competitor",
    "customer"
  ],
  "depth": 1
}
Responseabridged
{
  "metadata": { "code": "1000" },
  "data": {
    "node": { "type": "company", "name": "NovaCrop" },
    "edges": [
      {
        "type": "investor",
        "target": "Corvale Partners XI",
        "since": "2024-06",
        "source": "registry"
      },
      {
        "type": "competitor",
        "target": "Kelvara",
        "confidence": "high",
        "source": "analysis_xyz789"
      },
      {
        "type": "customer",
        "target": "Draymont",
        "source": "quarterly_report"
      }
    ]
  }
}
The module catalog

What the platform does with the same primitives

Five modules and the data layer beneath them. Each one is a place to see the APIs already composed into a working workflow.

Build on top of Kruncher

You are not buying a tool. You are building on a base.

We are the layer, not the stack

Kruncher gives you the infrastructure: ingestion, entity resolution, the premium sources, the graph and the analysis engine. What you build on it stays yours, and we do not want visibility into it.

Composable, not adoptable

There is no UI to adopt. Several customers run entirely on the API and the MCP server and never open the platform. Take one primitive or take all of them.

Configurable downward

The roughly one thousand data points per company can become the sixty your model consumes. Narrowing the schema improves accuracy rather than reducing value.

Maintained as a component

Managers change how they report every few weeks and models move faster than that. The upkeep sits with us, not with the one or two engineers on your team who also have deals to do.

What teams have built on it
Portfolio valuation and mark reviewSecondary and fund of funds assessmentKYC and KYB compliance validationCRM enrichment at scaleCorporate and competitive intelligenceDeal origination tooling
Models and deployment

Run it on the models your risk function already approved

Kruncher is model agnostic by design, and deploys where your data has to stay.

Anthropic

Claude models, and the MCP standard Kruncher exposes its data layer through.

NVIDIA

Accelerated compute behind ingestion, extraction and the analysis pipeline.

Microsoft Azure

Isolated tenants, Entra identity, and the deployment target most institutions already run on.

Google

Gemini models and GCP as a deployment target, for teams standardized there.

Open source and self hosted models are supported, and the pipeline can run entirely on your compute with no egress to a vendor endpoint. Security, compliance and data residency.

Tell us what you are building.

Access to the APIs, the MCP server and the knowledge graph starts with a call. Bring the use case and we will tell you in that call which primitives it needs.