API reference
Scans
Scans run analysis over a project's connected systems and produce an architecture graph, findings and a posture score.
Start a scan
POST
/api/projects/{projectId}/scansReturns the new scan with a status. When a queue is configured the status is queued/running — poll the list until it settles.
curl -X POST https://api.riscly.com/api/projects/PROJECT_ID/scans \
-H "Authorization: Bearer $RISCLY_TOKEN" \
-H "x-org-id: $RISCLY_ORG_ID" \
-H "Content-Type: application/json" -d '{}'List scans
GET
/api/projects/{projectId}/scans[
{
"id": "scn_1",
"status": "succeeded",
"reliabilityScore": 82,
"graph": { "nodes": [], "edges": [] },
"createdAt": "2026-06-29T10:00:00.000Z"
}
]Polling
See the scanning guide for a ready-made poll-until-done loop.Fan out to multiple repos
Turn extra selected repositories into their own projects during onboarding.
POST
/api/projects/{projectId}/scans/fan-out| Field | Type | Description |
|---|---|---|
reposrequired | string[] | Repository identifiers to create projects for. |
Chat over a scan
Grounded AI chat about the project's latest scan.
POST
/api/projects/{projectId}/scans/chatconst { reply } = await riscly(
`/projects/${projectId}/scans/chat`,
{
method: "POST",
body: JSON.stringify({
messages: [{ role: "user", content: "What is my biggest risk?" }],
}),
},
).then((r) => r.json());Predict failures
POST
/api/projects/{projectId}/scans/predictModel-driven predictions over the latest scan; tier depends on plan.