Get responses

Reads one response of a form.

GET /v1/form/forms/{id}/responses/{response}

Addresshttps://api.hanzo.ai/v1/form/forms/{id}/responses/{response}
MethodGET
Operationget_form_response
AuthAuthorization: Bearer $HANZO_API_KEY

Reads one response of a form. An org admin only.

Request

2 fields.

FieldInTypeRequiredDescription
idpathstringyesID is the form's id or slug, from the path.
responsepathstringyesResponse is the response's id, from the path.

Response

StatusBodyMeaning
200form.Responseok
defaultproblem-detailsrefused

200 body — 31 fields.

FieldInTypeAlwaysDescription
answersbodyform.Answer[]—Answers are the answers, in the form's field order.
answers[].booleanbodyboolean—
answers[].choicesbodystring[]—
answers[].datebodystring—
answers[].fieldbodystring—Field is the ref of the field answered.
answers[].numberbodynumber (double)—
answers[].textbodystring—
answers[].typebodystring—Type is the field's type.
completedbodyboolean—Completed is whether the response was submitted whole; false is one saved part way.
createdbodystring—Created is when the record was first written, RFC 3339.
durationbodyinteger (int64)—Duration is how many seconds lay between landing and submitting.
externalbodystring—External is an imported response's id where it came from.
filedbodyboolean—Filed is whether a completed response is on the CRM's timeline.
filingbodystring—Filing is why the last filing failed; empty once it is filed.
formbodystring—Form is the form's id.
hiddenbodyobject—Hidden are the values the page passed in, by name.
hidden.*bodystring—
idbodystring—ID is the response's id: derived from the form and the submission's token (from the form and the address on a subscribe form), so a retried submission is this same response.
landed_atbodystring—LandedAt is when the respondent opened the form, RFC 3339, as their page said.
pathbodystring—Path is the page the form was answered on.
respondentbodyform.Respondent—
respondent.emailbodystring—Email is the address the response is from: the account's, else the email field's.
respondent.kindbodystring—Kind is account (a signed-in person, from their token), email (an email field's answer), visitor (the page's visitor id) or none.
respondent.person_idbodystring—PersonID is the CRM person the address is: the one key a response, a list membership, an email event and an experiment share.
respondent.subjectbodystring—Subject is the signed-in person's IAM subject.
respondent.verifiedbodyboolean—Verified is whether the respondent is who the response says: true only for a signed-in person, from their token.
respondent.visitorbodystring—Visitor is the page's visitor id.
sourcebodystring—Source is web, or import for a response brought in from elsewhere.
submitted_atbodystring—SubmittedAt is when the response was completed, RFC 3339.
tokenbodystring—Token is the submission token the response was made under.
updatedbodystring—Updated is when it last changed, RFC 3339.

Failure carries the platform error shape — see Errors.

Examples

hanzo form forms responses get <id> <response>
import { Configuration, FormApi } from 'hanzoai';

const api = new FormApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getFormResponse({ id: 'id', response: 'response' });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import FormApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = FormApi(client).get_form_response(id='id', response='response')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.FormAPI.GetFormResponse(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, form_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = form_api::get_form_response(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.FormApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new FormApi(client).getFormResponse();

The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →

curl https://api.hanzo.ai/v1/form/forms/<id>/responses/<response> \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool form, op get_form_response — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "form",
         "arguments": {
           "op": "get_form_response",
           "input": {
             "id": "<id>",
             "response": "<response>"
           }
         }
       }
     }'

Form API · All Hanzo APIs · Interactive reference

Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.