Skip to content
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.
formatstring
json (default, a list object) or jsonl (one object per line, X-Has-More header 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

  1. 1
    Store the timestamp of your last successful poll.
  2. 2
    Request /results?since=<that timestamp>&limit=1000 and page with starting_after while has_more is true.
  3. 3
    Upsert rows by id. A result can appear again if an item was re-labeled after a flag; the newer labeled_at wins.
  4. 4
    Save 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.