Skip to main content
GET
/
report
/
{id}
/
score
curl http://localhost:3001/report/a1b2c3d4-e5f6-7890-abcd-ef1234567890/score
{
  "success": true,
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "complete",
    "scores": {
      "codeQuality": 82,
      "teamStrength": 75,
      "traction": 68,
      "socialPresence": 71,
      "overall": 74
    },
    "error": null
  }
}

Path Parameters

id
string
required
Report ID returned from POST /analyze.

Response

data
object
curl http://localhost:3001/report/a1b2c3d4-e5f6-7890-abcd-ef1234567890/score
{
  "success": true,
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "complete",
    "scores": {
      "codeQuality": 82,
      "teamStrength": 75,
      "traction": 68,
      "socialPresence": 71,
      "overall": 74
    },
    "error": null
  }
}

Polling Strategy

The analysis typically takes 10-30 seconds. A simple polling approach:
async function waitForReport(id) {
  while (true) {
    const res = await fetch(`http://localhost:3001/report/${id}/score`);
    const { data } = await res.json();

    if (data.status === "complete") return data.scores;
    if (data.status === "error") throw new Error(data.error);

    await new Promise(r => setTimeout(r, 2000)); // poll every 2s
  }
}