Skip to content
Back to Steward

Tasks

A task is a unit of compliance or onboarding work that Steward raises on an application: a missing document, a failed document validation, a screening match to review, and so on. Every task belongs to an application, and may point at a specific sub-entity within it.

type Raised for
MISSING_DOCUMENT A required document has not been provided
DOCUMENT_VALIDATION_FAILED A document failed validation
SCREENING_MATCH A screening hit needs review
PENDING_ONBOARDING Onboarding is incomplete
PERIODIC_REVIEW A scheduled re-review is due
ONBOARDING_ORG_CHART_REVIEW The ownership / org chart needs review
MISSING_FIELD A required piece of information is absent
COMPLIANCE_PRECONDITION_UNMET A compliance precondition is not yet met
status Meaning
PENDING Open
MISSING_DATA Blocked waiting on data
RESOLVED Complete

A task may be scoped to a sub-entity via its entityType (DOCUMENT, SCREENING_HIT, APPLICATION, PROFILE_FIELD, or INDIVIDUAL) and entityId.

GET /tasks lists tasks and GET /tasks/{id} returns one. PATCH /tasks/{id} updates a task: you can change its status, assigneeId, and reviewerId. A task’s type, title, and application are fixed once created.

POST /tasks/bulk/update applies one nested patch with those same writable fields to up to 500 taskIds. Omitted fields stay unchanged, while null clears assigneeId or reviewerId. Undeclared fields are ignored. Repeated ids are coalesced in request order, and exact no-ops are skipped without another write. The complete selection is checked before mutation: missing ids return 404, foreign-account ids return a generic 403, and tasks on Steward-hidden applications return 404.

A grouped screening-match task still cannot be resolved directly. If the common patch would resolve any grouped screening task, the whole request returns 400 before a task is updated; use the screening group verdict operation instead. Other task edits remain allowed.

Narrow the list with applicationId for a single application, or applicationIds to pull the open work for several at once without a request per application. Both are optional; omit them to page through every task on the account.

Tasks default to orderBy=createdAt&order=desc. Use orderBy=updatedAt to list the most recently updated tasks first. Keep the same sort field and direction when following nextCursor.

Terminal window
# List tasks
curl https://api.getsteward.ai/api/v1/tasks \
-H "Authorization: Bearer stw_live_your_api_key_here"
# Mark a task resolved
curl -X PATCH https://api.getsteward.ai/api/v1/tasks/{id} \
-H "Authorization: Bearer stw_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{ "status": "RESOLVED" }'