Pathwize API
Results
Pull labeled items with the experts' answers, agreement and flags.
GET/tasks/{task_id}/results
Returns items that are labeled or flagged, oldest first, flattened so each row is ready to write into your database. Poll it on a schedule with since set to your last run, or page through everything with starting_after.
curl "https://www.gopathwize.com/api/v1/tasks/TASK_ID/results?since=2026-09-25T00:00:00Z&format=jsonl" \
-H "Authorization: Bearer pw_live_..."Query parameters
sincestring- Only results labeled after this ISO 8601 timestamp. Use the time of your previous poll.
starting_afterstring- Item ID to page from (exclusive).
limitinteger- 1 to 1,000, default 100.
formatstringjson(default, a list object) orjsonl(one object per line,X-Has-Moreheader for paging).
The result object
{
"id": "werk-nord-2026-09-25-000871",
"status": "labeled",
"label": "Bauschutt",
"labels_all": ["Bauschutt", "Bauschutt"],
"agreement": 1.0,
"raters": 2,
"boxes": [
{ "label": "Gipskarton", "x": 1210, "y": 844, "w": 320, "h": 198, "rater": 1 }
],
"note": null,
"flags": [],
"labeled_at": "2026-09-25T13:40:12.000Z",
"group": "werk-nord",
"captured_at": "2026-09-25T05:12:04.000Z",
"meta": { "site": "Werk Nord", "scale_kg": 12480 }
}Attributes
labelstring | null- The final answer after applying your disagreement rule (majority by default). Null when no majority exists and the item is flagged.
labels_allstring[]- Every rater's answer, in rater order. With multi-select enabled each entry can be a comma-joined list.
agreementnumber | null- Share of raters that gave the final label, 0 to 1. Null for items that had a single rater (outside the overlap sample).
ratersinteger- How many experts labeled this item.
boxesarray- For bounding-box tasks: pixel coordinates (top-left origin) per box with its label and rater index. Empty for classification.
notestring | null- Free-text notes from experts, joined with newlines, when notes are enabled.
flagsstring[]- Zero or more of
low_agreement,unreadable,wrong_data,needs_review. Filter these out or route them to a human. metaobject- Exactly what you sent with the item.
Polling pattern
- 1Store the timestamp of your last successful poll.
- 2Request
/results?since=<that timestamp>&limit=1000and page withstarting_afterwhilehas_moreis true. - 3Upsert rows by
id. A result can appear again if an item was re-labeled after a flag; the newerlabeled_atwins. - 4Save the poll time. Every 10 to 15 minutes is plenty; results do not change faster than experts work.
Exports
The dashboard offers the same data as a CSV or COCO download per task (the format you chose under Output format). The API is the better fit for anything recurring.