Forms API

Create, distribute, and manage custom forms and surveys through the CitoHR API.

Get Forms

Retrieve forms with pagination and filtering. Requires ADMIN role.

GET /api/forms

Query parameters:

  • page - Page number (default: 1)
  • limit - Items per page (default: 10)
  • status - Filter by status: DRAFT, PUBLISHED, CLOSED (optional)
  • search - Search forms by title (optional)

Create Form

Create a new custom form. Requires ADMIN role.

POST /api/forms

Request body:

{
  "title": "Employee Satisfaction Survey",
  "description": "Annual employee feedback survey",
  "isAnonymous": false,
  "requireAuthentication": true,
  "allowMultipleSubmissions": false,
  "maxSubmissions": 1,
  "openDate": "2024-01-15T00:00:00.000Z",
  "closeDate": "2024-02-15T00:00:00.000Z"
}

Get Form by ID

Retrieve a specific form by ID. Requires ADMIN role.

GET /api/forms/{id}

Update Form

Update an existing form. Requires ADMIN role.

PUT /api/forms/{id}

Delete Form

Delete a form. Requires ADMIN role.

DELETE /api/forms/{id}

Get Form Questions

Retrieve questions for a specific form.

GET /api/forms/{id}/questions

Submit Form Response

Submit a response to a form.

POST /api/forms/submit/{formId}

Request body:

{
  "answers": [
    {
      "questionId": "question-id",
      "value": "Answer text"
    }
  ]
}

Get Form Responses

Retrieve responses for a form. Requires ADMIN role.

GET /api/forms/{id}/responses

Query parameters:

  • page - Page number (default: 1)
  • limit - Items per page (default: 10)

Get Form Analytics

Retrieve analytics and statistics for a form. Requires ADMIN role.

GET /api/forms/{id}/analytics

Distribute Form

Distribute a form to users. Requires ADMIN role.

POST /api/forms/{id}/distribute

Get Public Form

Retrieve a public form (does not require authentication).

GET /api/forms/public/{id}