Findings
Structured review findings — the durable ledger the website renders.
Base path /api/v1/findings on https://ionwarp.com. Authenticate with Authorization: Bearer $DASH_API_KEY and name the project with the Project-ID header. Writes are validated in declared mode; an operation this resource does not declare answers 405 operation_not_supported.
List findings
GET /api/v1/findings
curl "https://ionwarp.com/api/v1/findings?related_pr=141" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"Show me the open findings on PR 141data_query {
"collection": "findings",
"where": {
"related_pr": 141
}
}Returns a paginated list of finding objects, newest first.
{
"object": "list",
"data": [
{
"object": "finding",
"id": "obj_123",
"related_pr": 141,
"title": "Unbounded loop over untrusted input",
"severity": "major",
"domain": "security",
"reviewer": "reviewer",
"status": "open",
"resolved_at": "2026-07-25T12:00:00.000Z",
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
related_pr | number | filter | The pull request number this finding was raised on. |
severity | string | filter | critical | major | minor. |
domain | string | filter | The finding's domain (security, correctness, performance, …) — the reviewer's PRIMARY domain, not the reporting lens. |
status | string | filter | open | resolved | wontfix. A finding in the current pass's scope that is not re-reported becomes resolved; one outside the delta scope is untouched. (This description said dismissed until 2026-08-19 — a status no writer ever produced.) |
q | string | search | Free-text search across title, description, path. |
sort | string | sort | One of related_pr, severity, first_seen_sha; prefix with - to reverse. |
limit | number | page | Rows to return, 1–100. Defaults to 20. |
cursor | string | page | next_cursor from the previous page. |
Retrieve a finding
GET /api/v1/findings/learning-tests-run-under-bun
curl "https://ionwarp.com/api/v1/findings/learning-tests-run-under-bun" \
-H "Authorization: Bearer $DASH_API_KEY" \
-H "Project-ID: pr_acme"What is finding {id} about?data_get {
"collection": "findings",
"object_id": "learning-tests-run-under-bun"
}Returns the finding object.
{
"object": "finding",
"id": "obj_123",
"related_pr": 141,
"title": "Unbounded loop over untrusted input",
"severity": "major",
"domain": "security",
"reviewer": "reviewer",
"status": "open",
"resolved_at": "2026-07-25T12:00:00.000Z",
"created_at": "2026-07-25T12:00:00.000Z",
"updated_at": "2026-07-25T12:00:00.000Z"
}Parameters
| Parameter | Type | Kind | Description |
|---|---|---|---|
id | string | path | The finding's id or slug. |
What comes back (read-only)
Every finding carries the envelope below. The fields under it are computed or stamped by the platform — they are returned, never sent.
| Field | Type | Description |
|---|---|---|
object | string | Always finding. |
id | string | Stable object id. Also accepted in place of slug on any path. |
slug | string | URL-safe name, unique within the collection. |
created_at | string | ISO-8601 timestamp of the first write. |
updated_at | string | ISO-8601 timestamp of the most recent write. The cursor sorts on this. |
related_pr | number | The pull request number this finding was raised on. |
title | string | One-line finding title. |
severity | string | critical | major | minor. |
domain | string | The finding's domain (security, correctness, performance, …) — the reviewer's PRIMARY domain, not the reporting lens. |
reviewer | string | The reviewer lens that authored this finding (code-review, security-review, …) — stamped by the writer from the dispatcher's source_ids. Absent on rows written before 2026-08-27. |
status | string | open | resolved | wontfix. A finding in the current pass's scope that is not re-reported becomes resolved; one outside the delta scope is untouched. (This description said dismissed until 2026-08-19 — a status no writer ever produced.) |
resolved_at | string | When this finding moved to resolved (ISO 8601). The findings_fixed Home tile windows on this field, so a lifetime total can no longer render under a day caption. Absent on rows resolved before 2026-08-21 — those simply do not match a window, which is measured-missing, not zero. |
description | string | The FULL finding body — never clamped. This is the durable copy the GitHub comment renders a truncated view of. |
suggestion | string | The committable remediation, when the reviewer provided one. |
path | string | Repo-relative file path the finding anchors to. |
line | number | 1-indexed line the finding anchors to. |
first_seen_sha | string | The head sha the finding was first raised at. |
last_seen_sha | string | The most recent head sha the finding was re-confirmed at. |
review_task_id | string | The review task that most recently wrote this finding. |
confidence | string | high | medium | low — the reviewer's confidence. |
effort | string | quick | moderate | heavy — estimated fix effort. |
Errors
Failures use { error: { type, code, message, param } }. The full code table is generated at Error Codes.