> For the complete documentation index, see [llms.txt](https://klearstack.gitbook.io/klearstack-api-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://klearstack.gitbook.io/klearstack-api-documentation/dynamic-audit-rules/submit-user-reviews-on-dynamic-rules.md).

# Submit User Reviews on Dynamic Rules

Endpoint Name: `URL/access/klearstack/submit_user_reviews_on_audit_rules`

Request type : `POST`

Authorization: Bearer token as header

Endpoint Details: The `submit_user_reviews_on_audit_rules` endpoint will be used to submit user reviews on dynamically generated audit rules.&#x20;

<table data-header-hidden><thead><tr><th width="119"></th><th></th></tr></thead><tbody><tr><td>Method</td><td>URL</td></tr><tr><td>POST</td><td><code>URL/access/klearstack/submit_user_reviews_on_audit_rules</code></td></tr></tbody></table>

### Request Body

<table data-header-hidden><thead><tr><th width="206.20001220703125"></th><th width="84"></th><th width="101.181884765625"></th><th></th></tr></thead><tbody><tr><td>Params</td><td>Values</td><td>Required</td><td>Description</td></tr><tr><td>company_name</td><td>string</td><td>Yes</td><td>Name of the company for which the user is logging in</td></tr><tr><td>reviews</td><td>string</td><td>Yes</td><td>User review along with decision like <code>'approved','rejected','approved_and_enabled'</code><br>Sample Data:[{"rule_id":"6a2aaa034de66a36f6f69ba6","decision":"rejected","comments":"Rejected"},{"rule_id":"6a2aaa034de66a36f6f69ba7","decision":"<code>approved</code>","comments":"Rejected"}]</td></tr></tbody></table>

### Shell (cURL)

* Request Body

```sh
curl --location "URL/access/klearstack/submit_user_reviews_on_audit_rules" \
  --header "Authorization: Bearer your_token_here" \
  --form "company_name=Replace_Company_Name_Here" \
  --form "reviews=[{'rule_id':'6a2aaa034de66a36f6f69ba6','decision':'rejected','comments':'Rejected'},{'rule_id':'6a2aaa034de66a36f6f69ba7','decision':'approved','comments':'Rejected'}]" \
  
```

### Python

* Request Body

```python
import requests

url = "URL/access/klearstack/submit_user_reviews_on_audit_rules"

payload = {'company_name': 'Replace_Company_Name_Here',
'reviews': '[{\'rule_id\':\'6a2aaa034de66a36f6f69ba6\',\'decision\':\'rejected\',\'comments\':\'Rejected\'},{\'rule_id\':\'6a2aaa034de66a36f6f69ba7\',\'decision\':\'approved\',\'comments\':\'Rejected\'}]'}
files=[

]
headers = {
  'Authorization': 'Bearer your_token_here'
}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
```

### Java (OkHttp)

* Request Body

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
  .addFormDataPart("company_name","Replace_Company_Name_Here")
  .addFormDataPart("reviews","[{'rule_id':'6a2aaa034de66a36f6f69ba6','decision':'rejected','comments':'Rejected'},{'rule_id':'6a2aaa034de66a36f6f69ba7','decision':'approved','comments':'Rejected'}]")
  .build();
Request request = new Request.Builder()
  .url("URL/access/klearstack/submit_user_reviews_on_audit_rules")
  .method("POST", body)
  .addHeader("Authorization", "Bearer your_token_here")
  .build();
Response response = client.newCall(request).execute();
```

### Node.js (Axios)

* Request Body

```javascript
const axios = require('axios');
const FormData = require('form-data');
let data = new FormData();
data.append('company_name', 'Replace_Company_Name_Here');
data.append('reviews', '[{\'rule_id\':\'6a2aaa034de66a36f6f69ba6\',\'decision\':\'rejected\',\'comments\':\'Rejected\'},{\'rule_id\':\'6a2aaa034de66a36f6f69ba7\',\'decision\':\'approved\',\'comments\':\'Rejected\'}]');

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'URL/access/klearstack/submit_user_reviews_on_audit_rules',
  headers: { 
    'Authorization': 'Bearer your_token_here', 
    ...data.getHeaders()
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
```

### JavaScript (XHR)

* Request Body

```javascript
// WARNING: For POST requests, body is set to null by browsers.
var data = new FormData();
data.append("company_name", "Replace_Company_Name_Here");
data.append("reviews", "[{'rule_id':'6a2aaa034de66a36f6f69ba6','decision':'rejected','comments':'Rejected'},{'rule_id':'6a2aaa034de66a36f6f69ba7','decision':'approved','comments':'Rejected'}]");

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
  if(this.readyState === 4) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "URL/access/klearstack/submit_user_reviews_on_audit_rules");
xhr.setRequestHeader("Authorization", "Bearer your_token_here");

xhr.send(data);
```

### API Response

<table data-header-hidden><thead><tr><th width="147"></th><th></th></tr></thead><tbody><tr><td>Status code</td><td>Example Response</td></tr><tr><td>200</td><td><p></p><pre class="language-json"><code class="lang-json">{
    "success": true,
    "submitted": 1,
    "matched": 0,
    "modified": 0,
    "folder_assignment": {
        "success": true,
        "assigned": 0
    },
    "solution_assignment": {
        "success": true,
        "updated_solutions": 0,
        "updated_rule_links": 0
    },
    "validation_errors": []
}
</code></pre></td></tr><tr><td>400</td><td><code>{"success": False, "message": "Invalid decision value in reviews. Allowed values are: approved, rejected, approved_and_enabled"}</code></td></tr><tr><td>500</td><td><code>{'error': error}</code></td></tr><tr><td>400</td><td><code>{'status': 'fail', 'description': 'Failed to submit reviews'}</code></td></tr></tbody></table>
