Skip to main content

Fetch completed form responses

Goal

Pull a Patient's answered Form data, structured JSON, not a PDF, for mapping into your EHR or downstream system.

Prerequisites

Steps

1. List responses

curl --request GET \
--url 'https://api.app.zentake.com/v2/responses?patient=<patient_id>' \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <your_api_key>' \
--header 'X-API-SECRET: <your_api_secret>'

Available filters: patient, form, packet, document, packet_response, id, submitted_after, submitted_before, submitted_on. Full reference: Get responses.

The list endpoint returns a lighter ResponseList shape, form_id / form_name / document_id / document_name / packet_response_id instead of nested objects, and no answers array, to keep listing fast.

include_answers is expensive

You can pass ?include_answers=true to get the full nested payload (including answers) directly from the list endpoint, but the spec warns this "can significantly slow down requests", prefer retrieving individual responses by id instead, as in the next step.

2. Check which responses are actually complete

Each entry has is_submitted and submitted_at, a Response can exist before it's finished (the Patient opened the form but hasn't submitted yet). Only treat is_submitted: true responses as complete.

3. Retrieve the full response

curl --request GET \
--url https://api.app.zentake.com/v2/responses/<response_id> \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <your_api_key>' \
--header 'X-API-SECRET: <your_api_secret>'

The full response includes:

FieldNotes
answersanswer_raw, plus derived answer_text / answer_num / answer_date / answer_time / answer_datetime, notes, answer_choices
answer_signaturesE-signatures captured on the form
answer_matrix_cellsAnswers to matrix/grid questions
answer_filesUploaded files (e.g., insurance card photos)
patient, form, packet_response, documentRelated resources

Full field reference: Response concept page and Get response by id.

Contains PHI

A Response holds the Patient's actual answers, medical history, insurance details, signed consent. Handle and store this payload as PHI.

What success looks like

  • is_submitted: true and a populated submitted_at.
  • answers (and, where relevant, answer_signatures / answer_matrix_cells / answer_files) populated with the Patient's submitted data.

Next