diff --git a/doc/README.md b/doc/README.md
index 8750c475..c4139f10 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -748,10 +748,13 @@ curl https://127.0.0.1:7000/api/v1/get/cryptocurrency/bitcoin/item --header "Aut
-### Add term tracker: `api/v1/add/tracker/term`
+### Add term tracker: `api/v1/add/tracker`
#### Description
-Add term tracker
+Create a new tracker (word, set, regex).
+
+You need to use a regex if you want to use one of the following special characters [<>~!?@#$%^&*|()_-+={}\":;,.\'\n\r\t]/\\
+
**Method** : `POST`
@@ -788,13 +791,24 @@ Add term tracker
#### Example
```
-curl https://127.0.0.1:7000/api/v1/add/tracker/term --header "Authorization: iHc1_ChZxj1aXmiFiF1mkxxQkzawwriEaZpPqyTQj " -H "Content-Type: application/json" --data @input.json -X POST
+curl https://127.0.0.1:7000/api/v1/add/tracker --header "Authorization: iHc1_ChZxj1aXmiFiF1mkxxQkzawwriEaZpPqyTQj " -H "Content-Type: application/json" --data @input.json -X POST
```
#### input.json Example
```json
{
-
+ "term": "test test2 test3",
+ "type": "set",
+ "nb_words": 2,
+ "tags": [
+ "mytags",
+ "othertags"
+ ],
+ "mails": [
+ "mail@mail.test",
+ "othermail@mail.test"
+ ],
+ "level": 1
}
```
@@ -803,24 +817,31 @@ curl https://127.0.0.1:7000/api/v1/add/tracker/term --header "Authorization: iHc
```json
{
-
+ "uuid": "6a16b06e-38e5-41e1-904d-3960610647e8"
}
```
#### Expected Fail Response
-**HTTP Status Code** : `400`
+**HTTP Status Code** : 400
```json
+ {"status": "error", "reason": "Term not provided"}
+ {"status": "error", "reason": "Term type not provided"}
+ {"status": "error", "reason": "special character not allowed", "message": "Please use a regex or remove all special characters"}
+ {"status": "error", "reason": "Incorrect type"}
+```
+**HTTP Status Code** : 409
+```json
+ {"status": "error", "reason": "Term already tracked"}
```
-
-### Delete term tracker: `api/v1/delete/tracker/term`
+### Delete term tracker: `api/v1/delete/tracker`
#### Description
-Delete term tracker
+Delete a tracker
**Method** : `DELETE`
@@ -837,13 +858,13 @@ Delete term tracker
#### Example
```
-curl https://127.0.0.1:7000/api/v1/add/tracker/term --header "Authorization: iHc1_ChZxj1aXmiFiF1mkxxQkzawwriEaZpPqyTQj " -H "Content-Type: application/json" --data @input.json -X POST
+curl https://127.0.0.1:7000/api/v1/delete/tracker --header "Authorization: iHc1_ChZxj1aXmiFiF1mkxxQkzawwriEaZpPqyTQj " -H "Content-Type: application/json" --data @input.json -X POST
```
#### input.json Example
```json
{
-
+ "uuid": "6a16b06e-38e5-41e1-904d-3960610647e8"
}
```
@@ -852,7 +873,7 @@ curl https://127.0.0.1:7000/api/v1/add/tracker/term --header "Authorization: iHc
```json
{
-
+ "uuid": "6a16b06e-38e5-41e1-904d-3960610647e8"
}
```
@@ -860,17 +881,22 @@ curl https://127.0.0.1:7000/api/v1/add/tracker/term --header "Authorization: iHc
**HTTP Status Code** : `400`
```json
+ {"status": "error", "reason": "Invalid uuid"}
+
+```
+
+**HTTP Status Code** : `404`
+
+```json
+ ({"status": "error", "reason": "Unknown uuid"}
```
-
-
-
-### Delete term tracker: `api/v1/delete/tracker/term/item`
+### Delete term tracker: `api/v1/get/tracker/item`
#### Description
-Delete term tracker
+Get tracked items by date-range
**Method** : `POST`
@@ -904,29 +930,40 @@ Delete term tracker
#### Example
```
-curl https://127.0.0.1:7000/api/v1/add/tracker/term --header "Authorization: iHc1_ChZxj1aXmiFiF1mkxxQkzawwriEaZpPqyTQj " -H "Content-Type: application/json" --data @input.json -X POST
+curl https://127.0.0.1:7000/api/v1/get/tracker/item --header "Authorization: iHc1_ChZxj1aXmiFiF1mkxxQkzawwriEaZpPqyTQj " -H "Content-Type: application/json" --data @input.json -X POST
```
#### input.json Example
```json
{
-
+ "uuid": "6a16b06e-38e5-41e1-904d-3960610647e8",
+ "date_from": "20190823",
+ "date_to": "20190829",
+ "items": [
+ {
+ "id": "submitted/2019/08/25/4f929998-3921-4be3-b448-be3bf1722d6b.gz",
+ "date": 20190825,
+ "tags": [
+ "infoleak:automatic-detection=\"credential\"",
+ "mytags",
+ "othertags",
+ ]
+ }
+ ]
}
```
-#### Expected Success Response
-**HTTP Status Code** : `200`
-
-```json
- {
-
- }
-```
-
-#### Expected Fail Response
**HTTP Status Code** : `400`
```json
+ {"status": "error", "reason": "Invalid uuid"}
+
+```
+
+**HTTP Status Code** : `404`
+
+```json
+ ({"status": "error", "reason": "Unknown uuid"}
```
diff --git a/var/www/modules/restApi/Flask_restApi.py b/var/www/modules/restApi/Flask_restApi.py
index 01b08a44..cc32afd6 100644
--- a/var/www/modules/restApi/Flask_restApi.py
+++ b/var/www/modules/restApi/Flask_restApi.py
@@ -317,7 +317,7 @@ def get_all_tags():
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # TRACKER # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-@restApi.route("api/v1/add/tracker/term", methods=['POST'])
+@restApi.route("api/v1/add/tracker", methods=['POST'])
@token_required('analyst')
def add_tracker_term():
data = request.get_json()
@@ -326,7 +326,7 @@ def add_tracker_term():
res = Term.parse_json_term_to_add(data, user_id)
return Response(json.dumps(res[0], indent=2, sort_keys=True), mimetype='application/json'), res[1]
-@restApi.route("api/v1/delete/tracker/term", methods=['DELETE'])
+@restApi.route("api/v1/delete/tracker", methods=['DELETE'])
@token_required('analyst')
def delete_tracker_term():
data = request.get_json()
@@ -335,7 +335,7 @@ def delete_tracker_term():
res = Term.parse_tracked_term_to_delete(data, user_id)
return Response(json.dumps(res[0], indent=2, sort_keys=True), mimetype='application/json'), res[1]
-@restApi.route("api/v1/get/tracker/term/item", methods=['POST'])
+@restApi.route("api/v1/get/tracker/item", methods=['POST'])
@token_required('analyst')
def get_tracker_term_item():
data = request.get_json()