Update visit task

Update a task on a visit (mark complete, record values, add notes, etc.).
All body fields are optional; only provided fields are updated.

See VisitTaskUpdateInput for the per-question-type response shape.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

Unique visit identifier

string
required

Unique task identifier

Body Params

Update fields for a visit task. All fields are optional; only provided fields are
applied. Setting isCompleted to true records the current server time as the
completion time.

Setting isCompleted to false is a full reset. Every marked.* response
field is cleared (markedValue, normalizedValue, selectedOptionIds,
otherNotes, completedAt) and any of those fields supplied in the same
payload is intentionally ignored — the task will need to be re-submitted by
the caregiver. Top-level note and units are orthogonal to completion
and still applied if present.

Per question-type contract enforced on the canonical PUT:

  • radio / checkbox / scale: send selectedOptionIds only. Sending
    markedValue on a SELECT type returns 400 INVALID_FIELD_FOR_QUESTION_TYPE.
    Unknown option ids return 400 INVALID_OPTION_ID.
  • text / number: send markedValue only. Sending selectedOptionIds
    on a VALUE type returns 400 INVALID_FIELD_FOR_QUESTION_TYPE.
  • number with allowNA: true: send {na: true} to record an
    N/A response when no numeric value applies.
  • Report (task.t === 'Report'): parent-level completion requires
    every applicable sub-task to have a response, otherwise
    400 REPORT_SUBTASKS_INCOMPLETE. A sub-task carrying conditions is
    applicable only when those conditions are met by the answers currently
    persisted on the report — a sub-task shown only when another answer is
    "No" is not required while "Yes" is selected, and is reported with
    isApplicable: false on the task's options. Per-subtask completion is
    not yet exposed on the public API, so sub-task answers must already have
    been recorded by the caregiver app before completing the parent.
    Send markedValue: "Report Done" alongside isCompleted: true. The
    caregiver app writes that value on the parent when a report is submitted,
    and the visit-export integrations (HHA Exchange, Bayada) read the parent's
    markedValue — not completedTime — as the completion signal, so a report
    completed without it can be exported as not completed. This endpoint
    records what you send and does not supply the value for you.
  • plain Task (no questionType): completion alone is the answer;
    {isCompleted: true} with no value is accepted.

Sending {isCompleted: true} on a question-type task with no response
returns 400 MISSING_RESPONSE_FOR_COMPLETION.

boolean

Mark the task complete (true) or incomplete (false).

string | null

General task note (replaces any existing note).

string

Recorded value when marking the task. Use for text and number
question types only. For SELECT types (radio/checkbox/scale),
send selectedOptionIds and let the server derive markedValue
from the matching option labels.

string

Normalized form of markedValue for downstream reporting.

selectedOptionIds
array of strings

For radio / checkbox / scale tasks, the option ids (from
task.options[].id) chosen by the caregiver. Unknown ids
return 400 INVALID_OPTION_ID.

selectedOptionIds
boolean

For number-type tasks declaring allowNA: true, pass true to
express an N/A response when no numeric markedValue applies.
Ignored for other question types.

string | null

Free-form notes captured alongside the marked value (e.g. caregiver follow-up).

units
array of objects

Recorded unit values for numeric/unit-based tasks.

units
Responses

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json