PKCE mandatory from 2026-09-14 Details
Employment Hero LogoEmployment Hero

Form

This endpoint retrieves a paginated list of forms for the organisation.

GET
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms

Path Parameters

organisation_iduuidrequired

The ID of the organisation

Query Parameters

statusenum<string>

Filter by form status

category_iduuid

Filter by category ID

page_indexnumber

Current page index

Default1
Min1
item_per_pagenumber

Number of items per page

Default20
Max100

Response Body

dataobject
itemsobject[]
iduuid

Unique identifier for the custom form.

namestring

The name of the custom form.

statusenum<string>

The current status of the custom form.

category_iduuid

Unique identifier of the category the form belongs to.

category_namestring

The name of the category the form belongs to.

descriptionstring

A description of the custom form.

created_atdatetime

The date and time the form was created.

updated_atdatetime

The date and time the form was last updated.

page_indexnumber

Current page index

Default1
Min1
item_per_pagenumber

Number of items per page

Default20
Max100
total_itemsnumber

Total items

total_pagesnumber

Total pages

Example

curl -X GET \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "items": [      {        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",        "name": "Employee Onboarding Checklist",        "status": "active",        "category_id": "c1d2e3f4-a5b6-7890-abcd-ef1234567890",        "category_name": "HR",        "description": "Standard onboarding form for new employees.",        "created_at": "2024-01-15T09:00:00+10:00",        "updated_at": "2024-03-20T14:30:00+10:00"      }    ],    "page_index": 1,    "item_per_page": 20,    "total_items": 1,    "total_pages": 1  }}

This endpoint retrieves a single form, including its sections and questions.

GET
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id

Path Parameters

organisation_iduuidrequired

The ID of the organisation

form_iduuidrequired

The ID of the custom form to retrieve

Response Body

dataobject
iduuid

Unique identifier for the custom form.

namestring

The name of the custom form.

statusenum<string>

The current status of the custom form.

category_iduuid

Unique identifier of the category the form belongs to.

category_namestring

The name of the category the form belongs to.

descriptionstring

A description of the custom form.

created_atdatetime

The date and time the form was created.

updated_atdatetime

The date and time the form was last updated.

submission_policiesenum<string>[]

Who is allowed to submit the form. Always includes self.

employee_file_view_policiesenum<string>[]

Who can view the submitted response in the employee file.

sectionsobject[]

The sections and questions of the form.

Example

curl -X GET \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",    "name": "Employee Onboarding Checklist",    "status": "active",    "category_id": "c1d2e3f4-a5b6-7890-abcd-ef1234567890",    "category_name": "HR",    "description": "Standard onboarding form for new employees.",    "created_at": "2024-01-15T09:00:00+10:00",    "updated_at": "2024-03-20T14:30:00+10:00",    "submission_policies": [      "self",      "primary_manager"    ],    "employee_file_view_policies": [      "affected_employee",      "primary_manager"    ],    "sections": [      {        "id": "section-1",        "name": "Personal Details",        "description": null,        "questions": [          {            "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",            "text": "What is your employment type?",            "description": "",            "type": "dropdown",            "required": true,            "key": "q-employment-type",            "visibility_condition": null,            "options": [              {                "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",                "text": "Full-time"              },              {                "id": "d4e5f6a7-b8c9-0123-def0-234567890123",                "text": "Part-time"              }            ]          },          {            "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",            "text": "How many hours per week?",            "description": "",            "type": "number",            "required": false,            "key": "q-weekly-hours",            "visibility_condition": {              "source_question_key": "q-employment-type",              "operator": "equals",              "value": "Part-time"            }          }        ]      }    ]  }}

This endpoint creates a new custom form with its sections and questions. Forms are published immediately by default; set draft to true to save the form without publishing it.

Note

When publishing (draft is false), access is required. Drafts ignore access and notification settings.

POST
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms

Path Parameters

organisation_iduuidrequired

The ID of the organisation.

Request Body

namestringrequired

The name of the form. Must be unique within the organisation (max 255 characters).

descriptionstring

An optional description of the form.

category_iduuidrequired

The ID of the category to assign to this form. Must belong to the organisation.

draftboolean

When true, the form is created in draft state and is not published. When false (the default), the form is published immediately and access becomes required.

sectionsobject[]required

The sections of the form. At least one section is required.

accessobject

Who the form is assigned to. Required when publishing (draft is false); ignored for drafts. Provide all_members, or any combination of the specific recipient lists.

end_datedate

The date when the form expires, in YYYY-MM-DD format. Must be in the future.

assignees_notification_policyenum<string>

Who is notified that the form has been assigned to them when it is published.

assignees_notification_listobject

The specific assignees to notify on publish. Required when assignees_notification_policy is specific. Must be a subset of access.

submission_policiesenum<string>[]

Additional roles allowed to submit the form on behalf of the affected employee. self submission is always enabled and does not need to be specified.

employee_file_view_policiesenum<string>[]

Who can view submitted responses for this form in the employee file.

notification_policiesenum<string>[]

Response notification policies. Use this array form when configuring multiple notification triggers; it does not include none.

notification_recipientsobject

Recipients to notify about responses, grouped by type. Used together with notification_policies.

Draft versus published forms

Set draft to true to save the form without publishing it. Draft forms ignore access and notification settings.

To publish immediately, set draft to false (the default). When publishing, access (who receives the form) is required.

Response Body

Returns HTTP 201 Created with the full detail of the newly created form, including all sections and questions.

dataobject
iduuid

Unique identifier for the custom form.

namestring

The name of the custom form.

statusenum<string>

The current status of the custom form.

category_iduuid

Unique identifier of the category the form belongs to.

category_namestring

The name of the category the form belongs to.

descriptionstring

A description of the custom form.

created_atdatetime

The date and time the form was created.

updated_atdatetime

The date and time the form was last updated.

submission_policiesenum<string>[]

Who is allowed to submit the form. Always includes self.

employee_file_view_policiesenum<string>[]

Who can view the submitted response in the employee file.

sectionsobject[]

The sections and questions of the form.

Example

curl -X POST \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ" \  -H "Content-Type: application/json" \  -d '{    "name": "Employee Onboarding Checklist",    "description": "Standard onboarding form for new employees.",    "category_id": "c1d2e3f4-a5b6-7890-abcd-ef1234567890",    "draft": false,    "sections": [      {        "name": "Personal Details",        "questions": [          {            "text": "What is your employment type?",            "type": "dropdown",            "required": true,            "key": "q-employment-type",            "selection_options": [              {                "text": "Full-time"              },              {                "text": "Part-time"              }            ]          },          {            "text": "How many hours per week?",            "type": "number",            "required": false,            "key": "q-weekly-hours",            "visibility_condition": {              "source_question_key": "q-employment-type",              "operator": "equals",              "value": "Part-time"            }          }        ]      }    ],    "access": {      "all_members": false,      "employee_ids": [        "6664453a-c118-48f1-897e-3df62d45bd84"      ]    },    "assignees_notification_policy": "all",    "submission_policies": [      "primary_manager"    ],    "employee_file_view_policies": [      "affected_employee",      "primary_manager"    ]  }'

Response

{  "data": {    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",    "name": "Employee Onboarding Checklist",    "status": "active",    "category_id": "c1d2e3f4-a5b6-7890-abcd-ef1234567890",    "category_name": "HR",    "description": "Standard onboarding form for new employees.",    "created_at": "2024-01-15T09:00:00+10:00",    "updated_at": "2024-03-20T14:30:00+10:00",    "submission_policies": [      "self",      "primary_manager"    ],    "employee_file_view_policies": [      "affected_employee",      "primary_manager"    ],    "sections": [      {        "id": "section-1",        "name": "Personal Details",        "description": null,        "questions": [          {            "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",            "text": "What is your employment type?",            "description": "",            "type": "dropdown",            "required": true,            "key": "q-employment-type",            "visibility_condition": null,            "options": [              {                "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",                "text": "Full-time"              },              {                "id": "d4e5f6a7-b8c9-0123-def0-234567890123",                "text": "Part-time"              }            ]          },          {            "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",            "text": "How many hours per week?",            "description": "",            "type": "number",            "required": false,            "key": "q-weekly-hours",            "visibility_condition": {              "source_question_key": "q-employment-type",              "operator": "equals",              "value": "Part-time"            }          }        ]      }    ]  }}

This endpoint updates an existing form. All fields are optional — only the fields you provide are changed. Note that including sections replaces the form's entire section and question structure.

PATCH
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id

Path Parameters

organisation_iduuidrequired

The ID of the organisation the form belongs to.

form_iduuidrequired

The ID of the form to update.

Request Body

namestring

The name of the form. Must be unique within the organisation (max 255 characters).

descriptionstring

A description of the form.

category_iduuid

The ID of the category to assign to this form. Must belong to the organisation.

sectionsobject[]

The sections of the form. Draft forms only — returns 422 if the form is active, completed, or archived. When provided, replaces all existing sections entirely. At least one section is required. Omit this field to leave existing sections unchanged.

submission_policiesenum<string>[]

Additional roles allowed to submit the form on behalf of the affected employee. self submission is always enabled and does not need to be specified. Pass an empty array to clear all additional policies.

employee_file_view_policiesenum<string>[]

Who can view submitted responses for this form in the employee file. Pass an empty array to clear all policies.

notification_policiesenum<string>[]

Response notification policies. Pass an empty array to disable response notifications.

notification_recipientsobject

Recipients to notify about responses, grouped by type. Used together with notification_policies.

Sections replacement behaviour

When sections is included in the request, the entire sections structure is replaced. All existing sections and questions are discarded and rebuilt from the provided payload. Omit sections entirely to leave the existing structure unchanged.

Response Body

Returns the full updated form, including all sections and questions.

dataobject
iduuid

Unique identifier for the custom form.

namestring

The name of the custom form.

statusenum<string>

The current status of the custom form.

category_iduuid

Unique identifier of the category the form belongs to.

category_namestring

The name of the category the form belongs to.

descriptionstring

A description of the custom form.

created_atdatetime

The date and time the form was created.

updated_atdatetime

The date and time the form was last updated.

submission_policiesenum<string>[]

Who is allowed to submit the form. Always includes self.

employee_file_view_policiesenum<string>[]

Who can view the submitted response in the employee file.

sectionsobject[]

The sections and questions of the form.

Example

curl -X PATCH \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ" \  -H "Content-Type: application/json" \  -d '{    "name": "Employee Onboarding Checklist",    "sections": [      {        "name": "Personal Details",        "questions": [          {            "text": "What is your employment type?",            "type": "dropdown",            "required": true,            "key": "q-employment-type",            "selection_options": [              {                "text": "Full-time"              },              {                "text": "Part-time"              }            ]          },          {            "text": "How many hours per week?",            "type": "number",            "required": false,            "key": "q-weekly-hours",            "visibility_condition": {              "source_question_key": "q-employment-type",              "operator": "equals",              "value": "Part-time"            }          }        ]      }    ],    "submission_policies": [      "primary_manager"    ]  }'

Response

{  "data": {    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",    "name": "Employee Onboarding Checklist",    "status": "active",    "category_id": "c1d2e3f4-a5b6-7890-abcd-ef1234567890",    "category_name": "HR",    "description": "Standard onboarding form for new employees.",    "created_at": "2024-01-15T09:00:00+10:00",    "updated_at": "2024-03-20T14:30:00+10:00",    "submission_policies": [      "self",      "primary_manager"    ],    "employee_file_view_policies": [      "affected_employee",      "primary_manager"    ],    "sections": [      {        "id": "section-1",        "name": "Personal Details",        "description": null,        "questions": [          {            "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",            "text": "What is your employment type?",            "description": "",            "type": "dropdown",            "required": true,            "key": "q-employment-type",            "visibility_condition": null,            "options": [              {                "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",                "text": "Full-time"              },              {                "id": "d4e5f6a7-b8c9-0123-def0-234567890123",                "text": "Part-time"              }            ]          },          {            "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",            "text": "How many hours per week?",            "description": "",            "type": "number",            "required": false,            "key": "q-weekly-hours",            "visibility_condition": {              "source_question_key": "q-employment-type",              "operator": "equals",              "value": "Part-time"            }          }        ]      }    ]  }}

This endpoint permanently deletes a form along with all of its associated data.

Note

This action cannot be undone. Only draft and active forms that have no submitted responses can be deleted. Forms in completed or archived status, or forms that already have responses, cannot be deleted.

DELETE
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id

Path Parameters

organisation_iduuidrequired

The ID of the organisation the form belongs to.

form_iduuidrequired

The ID of the form to delete. Only draft and active forms that have no submitted responses can be deleted; completed and archived forms, or forms with responses, cannot.

Response Body

Returns HTTP 204 No Content on success. No response body is included.

Example

curl -X DELETE \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

This endpoint does not return a response body.

Publishes a draft form, transitioning it from draft to active. Publishing grants access to the employees, contractors, teams, and/or work locations specified in access, and can optionally configure submission-notification routing in the same call.

Note

Only forms in draft status can be published. Publishing a form that is already active, completed, or archived returns a 422 error.

POST
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/publish

Path Parameters

organisation_iduuidrequired

The ID of the organisation the form belongs to.

form_iduuidrequired

The ID of the form to publish. The form must currently be in draft status.

Request Body

accessobjectrequired

Who is granted access to the form. Must specify all_members: true, or at least one of employee_ids, contractor_ids, group_ids, work_location_ids.

all_membersboolean

Give every employee and contractor in the organisation access to the form.

employee_idsuuid[]

Employee UUIDs to grant access to.

contractor_idsuuid[]

Contractor UUIDs to grant access to.

group_idsuuid[]

Group UUIDs to grant access to.

work_location_idsuuid[]

Work location UUIDs to grant access to.

assignees_notification_policyenum<string>required

Who to notify that the form has been assigned to them.

assignees_notification_listobject

Who to notify when assignees_notification_policy is specific. Required in that case, and must be a subset of access.

end_datedate

The date access to the form ends, in YYYY-MM-DD format. Cannot be in the past.

notification_policiesenum<string>[]

Submission notification routing policies — when to notify recipients of a form submission. Omit to leave any existing routing configuration unchanged, or pass [] to explicitly clear it.

notification_recipientsobject

Who receives submission notifications.

Response Body

Returns the form with status set to active on success.

dataobject
iduuid

Unique identifier for the custom form.

namestring

The name of the custom form.

statusenum<string>

The current status of the custom form.

category_iduuid

Unique identifier of the category the form belongs to.

category_namestring

The name of the category the form belongs to.

descriptionstring

A description of the custom form.

created_atdatetime

The date and time the form was created.

updated_atdatetime

The date and time the form was last updated.

Example

curl -X POST \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/publish" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ" \  -H "Content-Type: application/json" \  -d '{    "access": {      "employee_ids": [        "0139ebb7-6f3e-4bc0-954e-9e50614fccd1"      ]    },    "assignees_notification_policy": "specific",    "assignees_notification_list": {      "employee_ids": [        "0139ebb7-6f3e-4bc0-954e-9e50614fccd1"      ]    },    "end_date": "2026-12-31",    "notification_policies": [      "each_response",      "daily_summary"    ],    "notification_recipients": {      "member_ids": [        "3f7f1c8d-2f0a-4d3c-9c7c-2ecb1d3d1c7b"      ],      "roles": [        "admins_owners"      ]    }  }'

Response

{  "data": {    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",    "name": "Employee Onboarding Checklist",    "status": "active",    "category_id": "c1d2e3f4-a5b6-7890-abcd-ef1234567890",    "category_name": "HR",    "description": "Standard onboarding form for new employees.",    "created_at": "2024-01-15T09:00:00+10:00",    "updated_at": "2024-03-20T14:30:00+10:00"  }}

Assigns an active form to the specified employees, contractors, teams, and/or work locations as a to-do task, creating a completion request for each assignee. Optionally notify assignees by email that the form has been assigned to them.

Note

Only forms in active status can be assigned. Assigning a form that is draft, completed, or archived returns a 422 error.

POST
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/assign

Path Parameters

organisation_iduuidrequired

The ID of the organisation the form belongs to.

form_iduuidrequired

The ID of the form to assign. The form must currently be in active status.

Request Body

assigneesobjectrequired

Who to create a to-do assignment for. Must specify all_members: true, or at least one of employee_ids, contractor_ids, group_ids, work_location_ids.

all_membersboolean

Assign every employee and contractor in the organisation.

employee_idsuuid[]

Employee UUIDs to assign.

contractor_idsuuid[]

Contractor UUIDs to assign.

group_idsuuid[]

Group UUIDs to assign.

work_location_idsuuid[]

Work location UUIDs to assign.

assignees_notification_policyenum<string>required

Who to notify that the form has been assigned to them.

Response Body

Returns HTTP 200 OK on success.

dataobject
successboolean

Indicates the assignment was created successfully.

Example

curl -X POST \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/assign" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ" \  -H "Content-Type: application/json" \  -d '{    "assignees": {      "employee_ids": [        "0139ebb7-6f3e-4bc0-954e-9e50614fccd1"      ]    },    "assignees_notification_policy": "all"  }'

Response

{  "data": {    "success": true  }}

Closes an active form, stopping it from accepting new submissions. Existing responses are preserved.

Note

Only forms in active status can be closed. Closing a form that is draft, completed, or archived returns a 422 error.

POST
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/close

Path Parameters

organisation_iduuidrequired

The ID of the organisation the form belongs to.

form_iduuidrequired

The ID of the form to close. The form must currently be in active status.

Response Body

Returns HTTP 200 OK on success.

dataobject
successboolean

Indicates the form was closed successfully.

Example

curl -X POST \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/close" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "success": true  }}

Archives an active or completed form, moving it out of the active lifecycle while preserving all existing responses.

Note

Only forms in active or completed status with at least one response can be archived. Archiving a draft or already-archived form, or a form with zero responses, returns a 422 error.

POST
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/archive

Path Parameters

organisation_iduuidrequired

The ID of the organisation the form belongs to.

form_iduuidrequired

The ID of the form to archive. The form must currently be in active or completed status, and have at least one response.

Response Body

Returns HTTP 200 OK on success.

dataobject
successboolean

Indicates the form was archived successfully.

Example

curl -X POST \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/archive" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "success": true  }}

This endpoint retrieves a paginated list of received responses for a form.

GET
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/responses

Path Parameters

organisation_iduuidrequired

The ID of the organisation

form_iduuidrequired

The ID of the custom form

Query Parameters

statusenum<string>

Filter by approval status

member_iduuid

Filter by the UUID of the member who submitted the response

submitted_afterdatetime

Return responses submitted at or after this time

submitted_beforedatetime

Return responses submitted at or before this time

page_indexnumber

Current page index

Default1
Min1
item_per_pagenumber

Number of items per page

Default20
Max100

Response Body

dataobject
itemsobject[]
iduuid

Unique identifier for the form response.

form_iduuid

The ID of the custom form this response belongs to.

member_iduuid

The ID of the member the response is about (the affected employee).

submitter_iduuid

The ID of the member who submitted the response. May differ from member_id when submitted on behalf of another member.

statusenum<string>

The approval status of the response.

submitted_atdatetime

The date and time the response was submitted.

page_indexnumber

Current page index

Default1
Min1
item_per_pagenumber

Number of items per page

Default20
Max100
total_itemsnumber

Total items

total_pagesnumber

Total pages

Example

curl -X GET \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/responses" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "items": [      {        "id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",        "form_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",        "member_id": "0139ebb7-6f3e-4bc0-954e-9e50614fccd1",        "submitter_id": "0139ebb7-6f3e-4bc0-954e-9e50614fccd1",        "status": "approved",        "submitted_at": "2024-04-01T10:00:00+10:00"      }    ],    "page_index": 1,    "item_per_page": 20,    "total_items": 1,    "total_pages": 1  }}

This endpoint retrieves a single form response, including all submitted answers.

GET
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/responses/:response_id

Path Parameters

organisation_iduuidrequired

The ID of the organisation

form_iduuidrequired

The ID of the custom form

response_iduuidrequired

The ID of the form response to retrieve

Response Body

dataobject
iduuid

Unique identifier for the form response.

form_iduuid

The ID of the custom form this response belongs to.

member_iduuid

The ID of the member the response is about (the affected employee).

submitter_iduuid

The ID of the member who submitted the response. May differ from member_id when submitted on behalf of another member.

statusenum<string>

The approval status of the response.

submitted_atdatetime

The date and time the response was submitted.

answersobject[]

The answers for all questions in the form. Includes empty answers for unanswered questions.

Example

curl -X GET \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/responses/:response_id" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",    "form_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",    "member_id": "0139ebb7-6f3e-4bc0-954e-9e50614fccd1",    "submitter_id": "0139ebb7-6f3e-4bc0-954e-9e50614fccd1",    "status": "approved",    "submitted_at": "2024-04-01T10:00:00+10:00",    "answers": [      {        "question_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",        "text": "What is your full name?",        "description": "Please enter your legal full name.",        "question_type": "short_text",        "answer_value": [          "Jane Smith"        ]      },      {        "question_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",        "text": "Please sign to acknowledge",        "description": "",        "question_type": "signature",        "signed": true      },      {        "question_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",        "text": "Employment type",        "description": "",        "question_type": "dropdown",        "answer_value": []      },      {        "question_id": "d4e5f6a7-b8c9-0123-def0-234567890123",        "text": "Start date",        "description": "",        "question_type": "date",        "answer_value": [          "2026-05-08"        ]      },      {        "question_id": "e5f6a7b8-c9d0-1234-ef01-345678901234",        "text": "Interview time",        "description": "",        "question_type": "date_time",        "answer_value": [          "2026-05-08T09:30:00+10:00"        ]      },      {        "question_id": "f6a7b8c9-d0e1-2345-f012-456789012345",        "text": "Upload your resume",        "description": "",        "question_type": "file_upload",        "answer_value": [          "https://files.cdn.ehrocks.com/private/resume.pdf?Expires=1778585222&Signature=example&Key-Pair-Id=K1RS1L24D262S5"        ]      }    ]  }}

This endpoint approves a pending form response.

POST
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/responses/:response_id/approve

Path Parameters

organisation_iduuidrequired

The ID of the organisation

form_iduuidrequired

The ID of the custom form

response_iduuidrequired

The ID of the form response to approve

Response Body

Returns a 200 status on successful approval. Returns 404 if the response is not found, 403 if approval is forbidden, or 422 if the response is not pending.

dataobject
successboolean

Indicates if the response was successfully approved

Example

curl -X POST \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/responses/:response_id/approve" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "success": true  }}

This endpoint declines a pending form response with a reason.

POST
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/responses/:response_id/decline

Path Parameters

organisation_iduuidrequired

The ID of the organisation

form_iduuidrequired

The ID of the custom form

response_iduuidrequired

The ID of the form response to decline

Request Body

reasonstringrequired

The reason the response is being declined

Response Body

Returns a 200 status on successful decline. Returns 404 if the response is not found, 403 if decline is forbidden, 400 if reason is missing, or 422 if the response is not pending.

dataobject
successboolean

Indicates if the response was successfully declined

Example

curl -X POST \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/responses/:response_id/decline" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ" \  -H "Content-Type: application/json" \  -d '{    "reason": "Does not meet requirements"  }'

Response

{  "data": {    "success": true  }}

This endpoint retrieves a paginated list of members assigned to a specific form along with their completion status.

GET
https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/assignments

Path Parameters

organisation_iduuidrequired

The ID of the organisation

form_iduuidrequired

The ID of the form

Query Parameters

statusesenum<string>[]

Filter assignments by completion status. Multiple values can be provided.

page_indexnumber

Current page index

Default1
Min1
item_per_pagenumber

Number of items per page

Default20
Max100

Response Body

A paginated list of members assigned to the form along with their completion status.

dataobject
itemsobject[]
member_iduuid

Unique identifier for the member.

member_namestring

Full name of the member.

assigned_atdatetime

The date and time the form was assigned to the member.

statusenum<string>

The completion status of the form assignment.

page_indexnumber

Current page index

Default1
Min1
item_per_pagenumber

Number of items per page

Default20
Max100
total_itemsnumber

Total items

total_pagesnumber

Total pages

Example

curl -X GET \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/forms/:form_id/assignments" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "items": [      {        "member_id": "6664453a-c118-48f1-897e-3df62d45bd84",        "member_name": "John Doe",        "assigned_at": "2024-03-15T09:00:00+10:00",        "status": "completed"      },      {        "member_id": "b992fc49-7e98-4743-b53b-51bec9cf4dc3",        "member_name": "Jane Smith",        "assigned_at": "2024-03-16T10:30:00+10:00",        "status": "pending"      }    ],    "page_index": 1,    "item_per_page": 20,    "total_items": 2,    "total_pages": 1  }}

This endpoint retrieves a paginated list of form responses for a specific member.

GET
https://api.employmenthero.com/api/v1/organisations/:organisation_id/members/:member_id/form_responses

Path Parameters

organisation_iduuidrequired

The ID of the organisation

member_iduuidrequired

The ID of the member

Query Parameters

statusesenum<string>[]

Filter by approval statuses. Multiple values can be provided.

from_datedate

Return responses submitted on or after this date (YYYY-MM-DD)

to_datedate

Return responses submitted on or before this date (YYYY-MM-DD)

sortenum<string>

Sort order for the results. Prefix with - for descending order.

page_indexnumber

Current page index

Default1
Min1
item_per_pagenumber

Number of items per page

Default20
Max100

Response Body

A paginated list of form responses submitted by or about the specified member.

dataobject
itemsobject[]
form_iduuid

The ID of the custom form.

form_namestring

The name of the custom form.

response_iduuid

The ID of the form response.

statusenum<string>

The approval status of the form response.

submitted_atdatetime

The date and time the response was submitted (RFC3339).

updated_atdatetime

The date and time the response was last updated (RFC3339).

page_indexnumber

Current page index

Default1
Min1
item_per_pagenumber

Number of items per page

Default20
Max100
total_itemsnumber

Total items

total_pagesnumber

Total pages

Example

curl -X GET \  "https://api.employmenthero.com/api/v1/organisations/:organisation_id/members/:member_id/form_responses" \  -H "Authorization: Bearer AUXJ3123xyrj123fdsjkl124aAJKQ"

Response

{  "data": {    "items": [      {        "form_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",        "form_name": "Employee Onboarding Checklist",        "response_id": "f1e2d3c4-b5a6-7890-abcd-ef1234567890",        "status": "submitted",        "submitted_at": "2024-04-01T10:00:00+10:00",        "updated_at": "2024-04-01T10:00:00+10:00"      }    ],    "page_index": 1,    "item_per_page": 20,    "total_items": 1,    "total_pages": 1  }}