Skip to Content
Docs are evolving — expect frequent updates.
Company ReportCompany Report

Company Report

There are three endpoints for retrieving analysis and report data. Each returns a different shape optimized for specific use cases.

Which Endpoint Should I Use?

Use CaseEndpointInput
Consuming analysis data programmatically (KPIs, founders, data points)/analysis/detailanalysisId
Report/PDF-style generation (formatted text, deal score)/retrievereportanalysisId + projectId
Full project context for app/UI (voting, events, fit scoring)/project/fullreportprojectId (+ optional analysisId)

Quick rule:

  • Need the normalized analysis data model → use /analysis/detail
  • Need export/report strings → use /retrievereport
  • Need end-to-end project context → use /project/fullreport

Headers (all endpoints)

HeaderRequiredDescription
AuthorizationYesYour API key (format: YOUR_API_KEY)

How to Get projectId and analysisId

Use Search Companies to find the project, then Retrieve Companies to get analyses and pick the latest analysisId.

CODE
const API_KEY = "YOUR_API_KEY_HERE";
const BASE_URL = "https://api.kruncher.ai/api";
 
async function getIds(companyName) {
  const search = await fetch(
    `${BASE_URL}/integration/project/search?keywords=${encodeURIComponent(companyName)}`,
    { headers: { Authorization: API_KEY } }
  ).then((r) => r.json());
 
  if (!search.data?.data?.length) {
    throw new Error(`Company not found: ${companyName}`);
  }
 
  const projectId = search.data.data[0].id;
  const projects = await fetch(
    `${BASE_URL}/integration/projects`,
    { headers: { Authorization: API_KEY, "Content-Type": "application/json" } }
  ).then((r) => r.json());
 
  const project = projects.data.find((p) => p.id === projectId);
  if (!project?.analyses?.length) {
    throw new Error("No analyses found for this project");
  }
 
  const latest = project.analyses.sort(
    (a, b) => new Date(b.createdAt) - new Date(a.createdAt)
  )[0];
 
  return { projectId, analysisId: latest.id };
}

Analysis Detail

GET https://api.kruncher.ai/api/integration/analysis/detail

Returns the richest structured analysis data. Contains flattened KPI values, founders, data points, and company fit dimensions — all keyed for programmatic access.

Best for: consuming analysis data in code, building custom views, extracting specific KPIs.

Query Parameters

ParameterTypeRequiredDescription
analysisIdstring (UUID)YesThe analysis to retrieve

Code Examples

CODE
const analysisId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890";
const response = await fetch(
  `https://api.kruncher.ai/api/integration/analysis/detail?analysisId=${analysisId}`,
  { headers: { "Authorization": API_KEY } }
);
 
const result = await response.json();
const { analysisObject, analysisData, founders, dataPointsObject } = result.data;
 
console.log("Fit:", analysisObject.projectfit_saas_scoreLabel);
console.log("Founders:", founders.map(f => f.fullName).join(", "));
console.log("Valuation:", dataPointsObject.valuationCurrency);

Response Shape

CODE
{
  "metadata": { "code": "1000", "title": "Successful", "description": "" },
  "data": {
    "analysisObject": {
      "projectLink": "https://kruncher.ai/app/project/?projectId=...",
      "projectfit_<code>_scoreLabel": "Strong Fit",
      "projectfit_<code>_explanation": "...",
      "projectfit_<code>_score": 8.5,
      "projectfit_<code>_scoreColor": "Green"
    },
    "analysisData": {
      "<entityKey>": {
        "text": "value",
        "structuredData": null,
        "type": "string",
        "source": "document",
        "sources": [],
        "comments": []
      }
    },
    "kruncherEntityCompanyId": "uuid",
    "kruncherEntityCompanyDomainsCsv": "example.com",
    "founders": [
      {
        "fullName": "John Doe",
        "emailsCsv": "john@company.com",
        "tagsString": "CEO, Founder"
      }
    ],
    "projectId": "uuid",
    "projectcompanyfit": {
      "projectcompanyfitdimensions": [
        { "code": "saas", "scoreLabel": "Strong Fit", "explanation": "...", "score": 8.5 }
      ]
    },
    "dataPoints": [
      { "metricKey": "valuationCurrency", "dataType": "currency", "floatValue": 5000000 }
    ],
    "dataPointsObject": {
      "valuationCurrency": 5000000,
      "foundYearInteger": 2020,
      "numberOfEmployeesInteger": 50
    },
    "analysisStructure": {
      "<entityKey>": { "value": {}, "text": "...", "structuredData": null }
    },
    "project": {}
  }
}

Response Fields

FieldDescription
analysisObjectFlattened KPI values + project data. Fit scores follow the pattern projectfit_<code>_score/scoreLabel/explanation/scoreColor.
analysisDataChapter/row remap — each entity key maps to its text value, structured data, type, source, and comments.
foundersArray of founder records with names, emails, and role tags.
dataPointsArray of typed metric data points (integer, float, currency, date, boolean).
dataPointsObjectFlattened key-value map of data points for easy access (e.g., valuationCurrency, foundYearInteger).
projectcompanyfitCompany fit dimensions with per-dimension scores and explanations.
analysisStructureRaw analysis object keyed by entity key.
projectFull project object.

Retrieve Report

GET https://api.kruncher.ai/api/integration/retrievereport

Returns the report generation payload with pre-formatted strings suitable for export, PDF generation, or LLM context. This is the recommended endpoint for API integrations, MCP tools, and LLM connectors.

Best for: report/PDF-style generation, formatted text output, deal scoring context.

Query Parameters

ParameterTypeRequiredDescription
analysisIdstring (UUID)YesThe analysis to retrieve the report for
projectIdstring (UUID)YesThe project that owns the analysis

Code Examples

CODE
const projectId = "521a93a6-091d-4943-ba13-7c1a654a14ae";
const analysisId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890";
 
const url = new URL("https://api.kruncher.ai/api/integration/retrievereport");
url.searchParams.set("projectId", projectId);
url.searchParams.set("analysisId", analysisId);
 
const result = await fetch(url, {
  headers: { Authorization: API_KEY, "Content-Type": "application/json" }
}).then((r) => r.json());
 
console.log("Report:", result.data);

Response Shape

Contains the analysis detail plus report generation fields including formatted chapter strings, project detail strings, and deal scoring data.


Full Report

GET https://api.kruncher.ai/api/integration/project/fullreport

Returns a complete project context bundle combining project details, analysis, voting, company fit, and events in a single call. Provides everything needed to render a full project view.

Best for: dashboards, comprehensive project views, app/UI rendering with voting and events context.

Query Parameters

ParameterTypeRequiredDescription
projectIdstring (UUID)YesThe project to retrieve
analysisIdstring (UUID)NoSpecific analysis. If omitted, uses latest completed analysis.

Code Examples

CODE
const projectId = "521a93a6-091d-4943-ba13-7c1a654a14ae";
 
const response = await fetch(
  `https://api.kruncher.ai/api/integration/project/fullreport?projectId=${projectId}`,
  { headers: { "Authorization": API_KEY } }
);
 
const result = await response.json();
const { projectDetail, projectvotesummary, analysisDetail, projectcompanyfit } = result.data;
 
console.log("Project:", projectDetail.name);
console.log("Votes:", projectvotesummary);
console.log("Company fit:", projectcompanyfit);

Response Shape

CODE
{
  "metadata": { "code": "1000", "title": "Successful", "description": "" },
  "data": {
    "projectDetail": {
      "id": "uuid",
      "name": "TechStartup",
      "companyName": "TechStartup Inc.",
      "companyWebsite": "https://techstartup.com",
      "processing": "completed",
      "analyses": [],
      "projectscores": [],
      "projectstatus": { "name": "Active", "code": "active" }
    },
    "projectvotesummary": {},
    "analysisDetail": {},
    "projectcompanyfit": {},
    "eventsConfigsRelevantCompanyEvent": {}
  }
}

Response Fields

FieldDescription
projectDetailFull project object with analyses, scores, status, and owner.
projectvotesummaryVoting summary with individual votes from team members.
analysisDetailFull analysis detail (null if no completed analysis exists).
projectcompanyfitCompany fit scoring across configured dimensions.
eventsConfigsRelevantCompanyEventRelevant company events and event configurations.

Last updated on