Change cleaning settings
curl --request POST \
--url https://api.redem.io/v3/changeCleaningSettings \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"surveyName": "Customer-Satisfaction-2025",
"activateCleaning": true,
"cleaningSettings": {
"redemScore": 60,
"GQS": {
"activate": true,
"score": 20,
"minDataPoints": 2
}
}
}
'import requests
url = "https://api.redem.io/v3/changeCleaningSettings"
payload = {
"surveyName": "Customer-Satisfaction-2025",
"activateCleaning": True,
"cleaningSettings": {
"redemScore": 60,
"GQS": {
"activate": True,
"score": 20,
"minDataPoints": 2
}
}
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
surveyName: 'Customer-Satisfaction-2025',
activateCleaning: true,
cleaningSettings: {redemScore: 60, GQS: {activate: true, score: 20, minDataPoints: 2}}
})
};
fetch('https://api.redem.io/v3/changeCleaningSettings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.redem.io/v3/changeCleaningSettings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'surveyName' => 'Customer-Satisfaction-2025',
'activateCleaning' => true,
'cleaningSettings' => [
'redemScore' => 60,
'GQS' => [
'activate' => true,
'score' => 20,
'minDataPoints' => 2
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.redem.io/v3/changeCleaningSettings"
payload := strings.NewReader("{\n \"surveyName\": \"Customer-Satisfaction-2025\",\n \"activateCleaning\": true,\n \"cleaningSettings\": {\n \"redemScore\": 60,\n \"GQS\": {\n \"activate\": true,\n \"score\": 20,\n \"minDataPoints\": 2\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.redem.io/v3/changeCleaningSettings")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"surveyName\": \"Customer-Satisfaction-2025\",\n \"activateCleaning\": true,\n \"cleaningSettings\": {\n \"redemScore\": 60,\n \"GQS\": {\n \"activate\": true,\n \"score\": 20,\n \"minDataPoints\": 2\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.redem.io/v3/changeCleaningSettings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"surveyName\": \"Customer-Satisfaction-2025\",\n \"activateCleaning\": true,\n \"cleaningSettings\": {\n \"redemScore\": 60,\n \"GQS\": {\n \"activate\": true,\n \"score\": 20,\n \"minDataPoints\": 2\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Successfully updated 120 respondents",
"results": {
"updated": 120,
"surveyName": "Customer-Satisfaction-2025"
}
}Endpoints
Change Cleaning Settings
Applies new cleaning settings to all respondents in a survey, or turns cleaning off for them. Scores are not recalculated and no credits are charged. Any saved AI explanation on an affected respondent is cleared.
POST
/
v3
/
changeCleaningSettings
Change cleaning settings
curl --request POST \
--url https://api.redem.io/v3/changeCleaningSettings \
--header 'Content-Type: application/json' \
--header 'api-key: <api-key>' \
--data '
{
"surveyName": "Customer-Satisfaction-2025",
"activateCleaning": true,
"cleaningSettings": {
"redemScore": 60,
"GQS": {
"activate": true,
"score": 20,
"minDataPoints": 2
}
}
}
'import requests
url = "https://api.redem.io/v3/changeCleaningSettings"
payload = {
"surveyName": "Customer-Satisfaction-2025",
"activateCleaning": True,
"cleaningSettings": {
"redemScore": 60,
"GQS": {
"activate": True,
"score": 20,
"minDataPoints": 2
}
}
}
headers = {
"api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
surveyName: 'Customer-Satisfaction-2025',
activateCleaning: true,
cleaningSettings: {redemScore: 60, GQS: {activate: true, score: 20, minDataPoints: 2}}
})
};
fetch('https://api.redem.io/v3/changeCleaningSettings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.redem.io/v3/changeCleaningSettings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'surveyName' => 'Customer-Satisfaction-2025',
'activateCleaning' => true,
'cleaningSettings' => [
'redemScore' => 60,
'GQS' => [
'activate' => true,
'score' => 20,
'minDataPoints' => 2
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.redem.io/v3/changeCleaningSettings"
payload := strings.NewReader("{\n \"surveyName\": \"Customer-Satisfaction-2025\",\n \"activateCleaning\": true,\n \"cleaningSettings\": {\n \"redemScore\": 60,\n \"GQS\": {\n \"activate\": true,\n \"score\": 20,\n \"minDataPoints\": 2\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.redem.io/v3/changeCleaningSettings")
.header("api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"surveyName\": \"Customer-Satisfaction-2025\",\n \"activateCleaning\": true,\n \"cleaningSettings\": {\n \"redemScore\": 60,\n \"GQS\": {\n \"activate\": true,\n \"score\": 20,\n \"minDataPoints\": 2\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.redem.io/v3/changeCleaningSettings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"surveyName\": \"Customer-Satisfaction-2025\",\n \"activateCleaning\": true,\n \"cleaningSettings\": {\n \"redemScore\": 60,\n \"GQS\": {\n \"activate\": true,\n \"score\": 20,\n \"minDataPoints\": 2\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Successfully updated 120 respondents",
"results": {
"updated": 120,
"surveyName": "Customer-Satisfaction-2025"
}
}This endpoint applies cleaning settings to every respondent in a survey. Use it when you change your cleaning rules and want existing respondents to match them, without resubmitting each respondent.
- Turn cleaning on (
activateCleaning: true): storescleaningSettingson each respondent and re-evaluates exclusion against the new thresholds. - Turn cleaning off (
activateCleaning: false): removes the stored settings and clears exclusions for all respondents in the survey.
- Scores are not recalculated. Only exclusion status and reasons change.
- No credits are charged.
- Any saved AI explanation on an affected respondent is cleared.
POST /v2/changeCleaningSettings.
For the structure of cleaningSettings, see Add Respondent. The request uses the same thresholds and categories.Authorizations
Body
application/json
Request body for changing cleaning settings.
The survey name.
true applies cleaningSettings and excludes respondents that fall below the thresholds. false turns cleaning off for all respondents and clears their exclusions.
Cleaning thresholds stored on every respondent in the survey. Unknown keys are rejected.
Show child attributes
Show child attributes

