> ## Documentation Index
> Fetch the complete documentation index at: https://docs.repdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Change Log

> Stay updated on the latest changes and improvements in the API.

<Update label="2026-02-27" description="v3.1.3">
  ## CHS Limit Update

  * <code style={{ color: "green" }}> POST /v3/addRespondent </code> - The maximum number of CHS question/answer pairs has been reduced from `1000` to `300`.

  Recommendation for integrators:

  * Send only the most relevant `interviewData` entries (up to 300) in a deterministic order.
  * If your source survey has more than 300 CHS pairs, trim before sending to keep payloads predictable.

  ## New Attribute: surveyPlatform

  * <code style={{ color: "green" }}> POST /v3/addRespondent </code> - You can now provide `surveyPlatform` as an optional top-level field in the request body. This value is stored with the respondent and can be used to identify survey-platform-origin traffic in downstream workflows.

  Recommended integration approach:

  * Send a stable platform identifier (for example, `qualtrics`, `decipher`, `keyingress`) for every respondent created through a survey tool integration.
  * Keep naming consistent across environments to avoid fragmented reporting (for example, use `qualtrics` instead of mixing `Qualtrics`, `QUALTRICS`, and `qtrx`).
  * If an internal connector is used, send a deterministic connector name (for example, `my-company-ingress`) instead of dynamic values.

  See the [v3 addRespondent endpoint documentation](/redem/api-reference/endpoints/v3/addRespondent) for request details.
</Update>

<Update label="2026-01-15" description="v3.1.2">
  ## New Attribute: Survey Description for CHS

  * <code style={{ color: "green" }}> POST /v3/addRespondent </code> - You can now provide a `surveyDescription` field when submitting CHS (Coherence Score) data points. This optional field provides additional context about the survey's purpose and intent, helping improve the quality and accuracy of the Coherence Score evaluation.

  The survey description is especially useful when your survey asks about current events that occurred after the training cutoff date of the large language models, such as recently opened facilities, current political events, product launches, or recent market changes.

  See the [Coherence Score documentation](/redem/knowledge-base/quality-checks/coherence-score#survey-description) for more details and examples.
</Update>

<Update label="2026-01-02" description="v3.1.1">
  ## New Attribute: Respondent Attributes

  * <code style={{ color: "green" }}> POST /v3/addRespondent </code> - You can now add additional attributes to the respondent, such as the panel source or the market of a respondent. These values will be available in the ReDem App and in the result export and can be used for further analysis of your data.

  See the [endpoint docs](/redem/api-reference/endpoints/v3/addRespondent#body-respondent-attributes) for further details.
</Update>

<Update label="2025-12-02" description="v3.1.0">
  ## New Endpoint: Recalculate Respondents

  * <code style={{ color: "green" }}> POST /v3/recalculateRespondents </code> - Recalculate specific quality checks for a list of respondents within a survey.

  See the [endpoint docs](/redem/api-reference/endpoints/v3/recalculateRespondents) for request/response details.
</Update>

<Update label="2025-11-17" description="v3">
  ## API v3 Released: OES v3 with Enhanced Category Detection and Effort Scale

  ### 🔥 OES v3 Now Available in ReDem API v3

  We're excited to announce the release of ReDem API v3, featuring a major upgrade to the OES (Open-Ended Scoring) quality check system. This release introduces improved category definitions, enhanced scoring accuracy, and a new effort scale metric.

  **All version 3 endpoints are now accessible via the <code>/v3</code> path (e.g., <code>/v3/addRespondent</code>), ensuring a clean separation from previous versions.**

  ### 🚀 What's new in OES v3?

  OES v3 introduces refined category definitions with clearer boundaries to reduce false positives and false negatives. The new categories are:

  * **VALID\_ANSWER**: Responses that adequately address the question
  * **NO\_ANSWER**: Responses that provide no meaningful information
  * **BAD\_LANGUAGE**: Responses containing inappropriate or offensive language
  * **GIBBERISH**: Responses that are nonsensical or incoherent
  * **OFF\_TOPIC**: Responses that do not address the question asked
  * **AI\_SUSPECT**: Responses that appear to be AI-generated
  * **WRONG\_LANGUAGE**: Responses in an unexpected language
  * **DUPLICATE\_ANSWER**: Responses that duplicate previous answers
  * **DUPLICATE\_RESPONDENT**: Responses that duplicate other respondents' answers

  ### Key improvements in OES v3:

  * **Clearer category boundaries**: Refined detection logic reduces false positives and false negatives across all categories, providing more accurate quality assessments.

  * **Enhanced scoring system**: OES v3 introduces an effort scale (LOW, MEDIUM, HIGH) that factors into the final quality score. For VALID\_ANSWER and NO\_ANSWER categories, the effort level directly influences the score calculation, providing more nuanced quality metrics.

  ### 🔄 Backward Compatibility: How do v1 and v2 work?

  Version 1 and version 2 endpoints remain available but use the legacy OES v2 classification system, which has less precise category boundaries and does not include the effort scale metric.

  ### ⛔ Deprecation Notice

  * **API v1**: Will be deprecated within 7 days of this notice. Please migrate to v2 or v3 immediately.

  * **API v2**: Will be deprecated on January 15th, 2026. We strongly encourage all teams and integrators to migrate to v3 endpoints before that date to take advantage of the improved OES accuracy and scoring system.

  We recommend upgrading to API v3 at your earliest convenience to benefit from the enhanced OES v3 quality checks and improved scoring accuracy.

  <Warning>
    **Important:** You cannot upgrade the API version for a survey that is currently running. Each survey is permanently tied to the API version it was created with. To use a newer API version, you must create a new survey with the updated endpoints. See the [Migration Guide](/redem/api-reference/others/migration-guide) for step-by-step instructions.
  </Warning>
</Update>

<Warning>
  **API v2 Deprecation Notice:** API v2 will be deprecated on January 15, 2026. We strongly encourage all teams and integrators to migrate to v3 endpoints before that date to take advantage of improved OES accuracy, enhanced scoring, and the latest features.
</Warning>

<Update label="2025-11-17" description="v2.2.0">
  ## New Endpoint: Update Respondents Excluded Status

  * <code style={{ color: "green" }}> POST /v2/updateRespondentsExcludedStatus </code> - Update the exclusion status of one or more respondents within a specific survey.

  See the [endpoint docs](/redem/api-reference/endpoints/v2/updateRespondentsExcludedStatus) for request/response details.
</Update>

<Update label="2025-10-22" description="v2.1.0">
  ## New Endpoints: Delete Surveys and Delete Respondents

  * <code style={{ color: "green" }}> POST /v2/deleteRespondents </code> - Delete one or more respondents from a survey and clean up related data.
  * <code style={{ color: "green" }}> POST /v2/deleteSurveys </code> - Delete one or more surveys and all associated data.

  See the endpoint docs for request/response details.
</Update>

<Update label="2025-06-16" description="v2">
  ## API v2 Released: Consistent CHS Question IDs Supported

  ### 🔥 New Versioning Layer Introduced Across the ReDem API

  We’re excited to introduce ReDem API v2 — a structured versioning layer that enables long-term enhancements while preserving backward compatibility with current integrations.

  **All version 2 endpoints are now accessible via the <code>/v2</code> path (e.g., <code>/v2/addRespondent</code>), ensuring a clean separation from legacy endpoints.**

  ### 🚀 What's new in v2?

  In version 2, each CHS interview entry must explicitly include the associated <code>questionId</code>.

  ```javascript theme={null}
  { 
    "questionId": "Q1"
    "question": "What type of accommodation did you stay in?", 
    "answer": "Hotel",
  }
  ```

  By making <code>questionId</code> a required field in <code>CHS</code> interviewData, you now have:

  * Consistent identifiers across all respondents
  * Clear mapping between survey questions and CHS results

  ### 🔄 Backward Compatibility: How does v1 work?

  In version 1, since <code>questionId</code> is not part of the schema:

  * The system auto-generates <code>questionIds</code> like <code>Q1</code>, <code>Q2</code>, etc. uniquely for each respondent, making cross-respondent comparisons unreliable.

  <Warning>This means <code>Q1</code> for one respondent may refer to a completely different question than <code>Q1</code> for another.</Warning>

  ### ⛔ Deprecation Notice: API v1

  Version 1 of the ReDem API will be **deprecated starting 16th September 2025**.

  We strongly encourage all teams and integrators to migrate to v2 endpoints before that date to avoid any disruption.

  <Warning>
    **Important:** You cannot upgrade the API version for a survey that is currently running. Each survey is permanently tied to the API version it was created with. To use a newer API version, you must create a new survey with the updated endpoints. See the [Migration Guide](/redem/api-reference/others/migration-guide) for step-by-step instructions.
  </Warning>
</Update>

<Update label="2025-03-11" description="Unversioned changes">
  ## API endpoint updates

  The <code style={{ color: "green" }}> POST /addRespondent </code> endpoint has been updated to rename parameters in the cleaning settings, changing from **camelCase to UPPERCASE\_UNDERSCORE** formatting.

  The following is an example of the new cleaning settings object:

  ```javascript theme={null}
    "redemScore": 60,
    "OES": {
      "activate": true,
      "score": 60,
      "minDataPoints":2,
      "categories": {
        "GENERIC_ANSWER": {"activate": true, "minDataPoints":2},
        "NO_INFORMATION": {"activate": true, "minDataPoints":3},
        // ... other categories ...
      }
    },
    "CHS": {"activate": true,"score": 50},
    "GQS": {"activate": true,"score": 40, "minDataPoints":2},
    "TS": {"activate": true,"score": 20},
    "BAS": {
      "activate": true,
      "score": 60, 
      "minDataPoints":2,
      "categories": {
        "UNNATURAL_TYPING": {"activate": true, "minDataPoints":2},
        "COPY_AND_PASTE": {"activate": true, "minDataPoints":2},
      }
    }
  ```
</Update>

<Update label="2025-03-05" description="Unversioned changes">
  ## API endpoint updates

  The following API endpoint changes have been implemented to improve consistency and standardization:

  <code style={{ color: "red" }}> POST /respondent/add </code> → <code style={{ color: "green" }}> POST /addRespondent </code> <br />

  * The `interactionData` field within `dataPoints` → `qualityCheck: BAS` has been modified to support additional interaction types. Now, it has been expanded to include both `KEYSTROKE` and `COPY_AND_PASTE` interactions, enhancing tracking capabilities.

  * Enhanced the **request body cleaning settings** by allowing **activate/deactivate** options for each quality check and enhanced **cleaning settings** by introducing **Behavioral Analytics Score (BAS)** along with its categories.

  * Renamed the **Fake Answer** category in **Open-Ended Score (OES)** to **AI-Generated Answer**.

  * We have **enhanced** the response structure by adding a field to retrieve **Behavioral Analytics Score (BAS)** results.

  <code style={{ color: "red" }}> GET /respondent/getRespondent </code> → <code style={{ color: "green" }}> POST /getRespondent </code> <br />

  * Previously with `GET` request we pass the `surveyName` and `respondentId` as a path parameters. Now we pass it in the request body.

  <code style={{ color: "red" }}> GET /respondent/getAllRespondents </code> → <code style={{ color: "green" }}> POST /getAllRespondents </code> <br />

  * Previously with `GET` request we pass the `surveyName` as a path parameter. Now we pass it in the request body.

  <code style={{ color: "red" }}> GET /survey/stop </code> → <code style={{ color: "green" }}> POST /stopSurvey</code> <br />

  * Previously with `GET` request we pass the `surveyName` as a path parameter. Now we pass it in the request body.

  <code style={{ color: "red" }}> GET /respondent/estimation </code> → <code style={{ color: "green" }}> POST /creditCalculation </code> <br />

  * Introduced a new variable, **`BASDataPoints`**, to specify the number of BAS data points required for credit calculation when evaluating a respondent.

  * Rename the variable **`CHSInterviews`** to **`CHSAnswers`** in the request body.

  * We have introduced a new response structure for the `POST /creditCalculation` endpoint, improving clarity by renaming several fields for better self-explanatory representation.

  ## Enhanced the quality checks by introducing Behavioral Analytics Score (BAS)

  We have enhanced the quality checks by introducing **Behavioral Analytics Score (BAS)** to evaluate the respondent's behavior and provide a score and categories based on the behavior.

  * Removed the **Copy-Paste** category from **Open-Ended Score (OES)** and incorporated it under **Behavioral Analytics Score (BAS)**.

  ## Streamlined the API response in error cases

  When a request fails due to invalid input or other errors, the all API returns a **400 Bad Request** status code. The response includes a descriptive `message` explaining the issue and an `error` object containing additional details to aid in diagnosing and resolving the problem.
</Update>

<Warning>
  **API v1 Deprecated:** API v1 is deprecated and no longer supported. Please migrate to v3 immediately to avoid disruption. v1 endpoints were scheduled for removal within 7 days of the v3 release notice on 2025-11-17.
</Warning>

<Update label="2025-02-20" description="v1">
  ## **ReDem 3.0 API - Initial Release**

  This initial release of the **ReDem API** empowers you to seamlessly integrate ReDem into your workflows and applications. As the backbone of our platform, the API provides direct access to all ReDem features, from real-time data insights to smooth integration with existing systems.

  Since the **ReDem Application** is entirely powered by this API, anything you can do in the app, you can also achieve programmatically—without limitations, unlocking endless possibilities!

  ### 🎉 Key Endpoints

  * <code style={{ color: "green" }}> POST /respondent/add</code> - Add a respondent to a survey.

  * <code style={{ color: "green" }}> GET /respondent/getRespondent</code> - Get a respondent's details.

  * <code style={{ color: "green" }}> GET /respondent/getAllRespondents</code> - Get all respondents for a survey.

  * <code style={{ color: "green" }}> GET /survey/stop</code> - Stop a survey.

  * <code style={{ color: "green" }}> GET /respondent/estimation</code> - Get a respondent's estimation.
</Update>
