Responses
/v1/responsesList responses
Cursor-paginated, newest first. To sync incrementally, poll with ?status=completed&completedAfter=<the last completedAt you stored> rather than re-walking the list from the start.
Requires the responses:read scope.
Example request
curl https://api.acquainto.com/v1/responses \
-H "Authorization: Bearer acq_live_xxxxxxxx"Parameters
limitqueryintegerstarting_afterquerystringeflowIdquerystringOnly responses to this eflow.
statusquerystringComma-separated statuses to include.
completedAfterquerystringOnly responses completed strictly after this instant. The field to poll on for an incremental sync.
subjectRefquerystringOnly responses whose subjectRef exactly matches -- the respondent identifier you supplied when minting the invite link, e.g. an email address.
Responses
200List responsesdataarray of objectrequiredidstringrequiredA response id, prefixed `resp_`.
eflowIdstringrequiredA eflow id, prefixed `eflow_`.
status"active" | "completed" | "abandoned" | "expired"requiredsubjectRefstring | nullrequiredThe respondent identifier you supplied. Null once your `respondentLabelRetentionDays` policy has purged it.
refstring | nullrequiredUnverified attribution: the `?aq_ref=` value carried on the hosted eflow link, if any. This is a value the respondent's sender put on the URL, not something we verified -- treat it as a tag, never as identity. Null when the response carried none or your `respondentLabelRetentionDays` policy has since purged it (it ages out on the same clock as `subjectRef`).
startedAtstringrequiredcompletedAtstring | nullrequiredanswerCountintegerrequiredlanguagestring | nullrequiredThe language the conversation was actually held in, as a BCP-47 tag (`tr`, `pt-BR`). Detected from the respondent's first typed reply and fixed for the rest of the conversation. Null means no language was ever detected: nothing was typed, only options tapped. It is deliberately not the eflow's default language -- "we never detected one" and "this eflow opens in English" are different facts, and filtering a multi-market eflow by language needs them kept apart.
hasMorebooleanrequiredTrue when another page exists.
nextCursorstring | nullrequiredPass as `starting_after` to fetch the next page.
400The request was malformed or failed validation.errorobjectrequiredtype"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"requiredThe bucket a client branches on to decide how to react.
codestringrequiredStable machine-readable code. Branch on this, not on `message`.
messagestringrequiredHuman-readable. May change without notice.
paramstringThe offending request field, when the error names one.
requestIdstringrequiredEchoes the `req_...` id; quote it in support requests.
401Missing, invalid, or revoked credential.errorobjectrequiredtype"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"requiredThe bucket a client branches on to decide how to react.
codestringrequiredStable machine-readable code. Branch on this, not on `message`.
messagestringrequiredHuman-readable. May change without notice.
paramstringThe offending request field, when the error names one.
requestIdstringrequiredEchoes the `req_...` id; quote it in support requests.
403The credential lacks the scope this route requires.errorobjectrequiredtype"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"requiredThe bucket a client branches on to decide how to react.
codestringrequiredStable machine-readable code. Branch on this, not on `message`.
messagestringrequiredHuman-readable. May change without notice.
paramstringThe offending request field, when the error names one.
requestIdstringrequiredEchoes the `req_...` id; quote it in support requests.
429Rate limited. Retry after the interval in `Retry-After`.errorobjectrequiredtype"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"requiredThe bucket a client branches on to decide how to react.
codestringrequiredStable machine-readable code. Branch on this, not on `message`.
messagestringrequiredHuman-readable. May change without notice.
paramstringThe offending request field, when the error names one.
requestIdstringrequiredEchoes the `req_...` id; quote it in support requests.
500Something failed on our side. Safe to retry.errorobjectrequiredtype"invalid_request_error" | "authentication_error" | "permission_error" | "not_found_error" | "idempotency_error" | "rate_limit_error" | "api_error"requiredThe bucket a client branches on to decide how to react.
codestringrequiredStable machine-readable code. Branch on this, not on `message`.
messagestringrequiredHuman-readable. May change without notice.
paramstringThe offending request field, when the error names one.
requestIdstringrequiredEchoes the `req_...` id; quote it in support requests.
Browse every operation, with full request/response schemas, in the full API reference.