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
}
}
Poll analysis status and scores (free, no paywall)
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
}
}
POST /analyze.Show properties
pending, scraping, analyzing, complete, error.error.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
}
}
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
}
}