Get Form Completion
Retrieve a form submission record and its associated contact data
Returns a single form completion record — including the submitted answers, tagged merge values, IP geolocation data, processing status, and the contact_id once async contact enrichment has finished.
Requires a valid `api_key` in the JSON request body
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
api_key |
body | string |
Yes | Your Zyntro API key |
org_id |
body | string |
Yes | Your organization UUID |
member_id |
body | string |
Yes | The member UUID |
brand_id |
body | string |
Yes | Your brand ID |
form_id |
body | string |
Yes | The UUID of the form the completion belongs to |
completion_id |
body | string |
Yes | The completion UUID returned by Submit Form or appended to the redirect URL |
Important:
The `contact_id` field may be `null` immediately after submission. Contact creation and enrichment run asynchronously — it may take a few seconds to complete. Poll this endpoint until `contact_id` is populated if you need the contact record. The `status` field indicates processing state.
Request Body
Content-Type: application/json
Example
json
{
"org_id": "YOUR_ORG_ID",
"api_key": "YOUR_API_KEY",
"form_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
"brand_id": "1",
"member_id": "YOUR_MEMBER_ID",
"completion_id": "c9d8e7f6-a5b4-3210-fedc-ba9876543210"
}
Code Samples
bash
curl -X POST https://app.zyntrohq.com/public/forms/getFormCompletion \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"org_id": "YOUR_ORG_ID",
"member_id": "YOUR_MEMBER_ID",
"brand_id": "1",
"form_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
"completion_id": "c9d8e7f6-a5b4-3210-fedc-ba9876543210"
}'
Response
200
Completion retrieved
json
{
"data": {
"status": "processed",
"answers": {
"email": "[email protected]",
"message": "I would like to learn more about the enterprise plan.",
"interest": "enterprise",
"first_name": "Jane"
},
"form_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
"ip_data": {
"city": "San Francisco",
"country": "United States",
"timezone": "America/Los_Angeles",
"ip_address": "203.0.113.42",
"country_code": "US"
},
"contact_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"created_at": "2026-04-02 14:30:00",
"completion_id": "c9d8e7f6-a5b4-3210-fedc-ba9876543210",
"tagged_values": {
"{email}": "[email protected]",
"{full_name}": "Jane",
"{first_name}": "Jane"
}
},
"status": "success"
}
200
Contact enrichment still pending
json
{
"data": {
"status": "processing",
"answers": {
"email": "[email protected]"
},
"form_id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
"ip_data": [],
"contact_id": null,
"created_at": "2026-04-02 14:30:00",
"completion_id": "c9d8e7f6-a5b4-3210-fedc-ba9876543210",
"tagged_values": {
"{email}": "[email protected]"
}
},
"status": "success"
}
200
Error response
json
{
"data": [
"Completion not found"
],
"status": "error"
}
Tip:
When your form has a `redirect_url` configured in form actions, the `completion_id` is automatically appended as a query parameter to that URL along with any other configured params. Your landing page or backend can extract the `completion_id` from the URL and call this endpoint to retrieve the full submission data and associated contact.
Errors
| Code | Message | Resolution |
|---|---|---|
MISSING_FIELD |
Missing required field: {field} A required parameter is missing. |
Include all six required fields. |
INVALID_API_KEY |
Invalid API Key No active user matches the key. |
Verify your key. |
INACTIVE_USER |
Inactive user account The account is deactivated. |
Contact your admin. |
MEMBER_NOT_FOUND |
Member not found The member_id does not exist. |
Use a valid member ID. |
NOT_FOUND |
Completion not found No completion with that ID exists for this form. |
Verify both the completion_id and form_id. The completion must belong to the specified form. |