---
title: "Update click"
method: POST
path: "/v2/client/clicks/{clickId}"
tags: ["Surveys"]
---

# Update click

`POST /v2/client/clicks/{clickId}`

Updates the click with the action and returns the changed state of the click, hence the GET click endpoint does not have to be called after calling this endpoint.

The action can be one of the following:
- `answer` - answers a question
- `skip` - skip a question, if skipping is allowed
- `leave` - either leaves the survey or the click flow with a supplied reason
- `rate` - when a survey is completed, this action can be used to rate the survey

## Path parameters

- `clickId` string, required

## Request body

- V2UpdateClickBody
  - `answer_question` V2UpdateClickBodyAnswerQuestion
    - `answers` string[], required
  - `skip_question` boolean
  - `leave_survey` V2UpdateClickBodyLeaveSurvey
    - `reason` 'OTHER' | 'TECHNICAL' | 'SENSITIVE' | 'TOO_LONG' | 'UNINTERESTING', required
  - `rate_survey` V2UpdateClickBodyRateSurvey — Deprecated. Sending it performs no action.
    - `rating` integer, required

## Response `200`

OK

- object
  - `data` V2Click
    - `answer_question` V2ClickAnswerQuestion
      - `question` V2Question, required
        - `id` string, required — unique identifier of the question
        - `language` string, ISO 639-1, required
        - `type` 'TEXT' | 'SINGLE' | 'MULTI' | 'NUMBER' | 'DATE', required
        - `localized_text` string, required
        - `answers` V2QuestionAnswer[], required
          - `code` string, required
          - `localized_text` string, required
        - `can_skip` boolean, required
        - `is_duplicate` boolean, required — Indicates if a similar question was already asked to the user.
        - `example` string — Optional example answer for this question.
        - `validation_info` V2QuestionValidationInfo — Validation info for a question. - If regex is not null, every answer value must match the regex. - If the question is of type TEXT, this object will contain the min and max length of the answer. - If the question is of type NUMBER, this object will contain the min and max value of the answer. - If the question is of type DATE, this object will contain the min and max date of the answer. The BIRTHDATE question is a special case, min & max are the min and max age of the user. - If the question is of type SINGLE or MULTI, min and max will contain the min and max number of answers that the user can select.
          - `min` integer
          - `max` integer
          - `regex` string
    - `redirect` V2ClickRedirect
      - `url` string, required
      - `type` 'termination' | 'survey' | 'start_bonus', required — `termination` = User terminated during the click and has to be redirected back. URL is taken from the app's settings. `survey` = User completed the click and can open the survey. URL is redirecting the user into the survey. `start_bonus` = User completed the start bonus and has to be redirected back. URL is taken from the app's settings.
    - `answered_questions` integer, required
    - `required_questions` integer, required
    - `click_type` 'survey' | 'start_bonus', required — survey = this is a regular click; start_bonus = this is a start bonus click;
    - `question_mode` 'default' | 'first', required — default = this is a regular click; first = this is the first click with more questions than usual;
    - `survey_details` V2ClickSurveyDetails, required
      - `id` string, required
      - `cpi` string, required — CPI of this survey in USD without any formatting applied.
      - `value` string, required — CPI formatted according to your app settings. Can be shown to the user directly.
      - `loi` number, float, required — Assumed length of the survey in minutes
      - `country` string, ISO 3166-1 alpha-2, required
      - `language` string, ISO 639-1, required
      - `rating` integer, required — Difficulty ranking of this survey. 1-5 (1 = hard, 5 = easy)
      - `category` V2SurveyCategory, required
        - `name` string, required — Localized category name
        - `icon_name` string, required
        - `icon_url` string, required — If not empty: url to an icon for the category.
        - `name_internal` string, required — Internal, un-localized, machine-friendly name of the category

## Other responses

- `422` — Bad Request

---

[API](https://skmtc.net/bitlabs/apis/bitlabs-client-api.md) · [All operations](https://skmtc.net/bitlabs/apis/bitlabs-client-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bitlabs/bitlabs-client-api/revisions/99209a6285bf/schema)
