Code Samples
The code samples included in this topic are for use with the Predictive Routing API.
cURL Examples
The Predictive Routing API Reference includes cURL examples. The Reference requires a password for access. Please contact your Genesys representative if you need to view this document.
Important
If you copy and past the cURL example code into a Windows-based code editor, you must remove the \ characters at the ends of the lines.Python Examples
The following examples provide a guideline for how to implement GPR API calls using Python. The examples are presented in the same groupings as in the Predictive Routing API Reference.
Authenticate Example
#POST / authenticate
    response = requests.post(
        '%s/api/v2.0/authenticate' % HOST,
        data={
            'username': USERNAME,
            'password': PASSWORD,
            'api_key': API_KEY
        }
    )
    token =  response.json()['token']
    print tokenDatasets Examples
# GET /datasets (get presigned URL) Get Dataset presigned URL for uploading file to S3
def get_presigned_url(token):
    response = requests.get(
        '%s/api/v2.0/datasets' % HOST,
        json={
            'token': token,
            'command': 'presigned_url',
            'filename': 'dataset.csv.zip'
        }
    )
    return response.json()['signed_url']# PUT /presigned URL (upload to S3) Upload dataset to S3
def upload_dataset_s3(presigned_url):
    response = requests.put(presigned_url,
        data = open(DATASET_PATH, 'rb').read()
    )
    return response.json()# POST /datasets (create using S3) Create a dataset using S3
def create_dataset_s3(token):
    response = requests.post(
        '%s/api/v2.0/datasets' % HOST,
        json={
            'token': token,
            'name': 'DatasetName',
            's3_separator': 'TAB',
            's3_filename': 'dataset.csv.zip',
            'encoding': 'shift-jis'
        }
    )
    return response.json()# PUT /datasets/{id}/ (using s3) Append a dataset using a file uploaded to S3.
def append_dataset_s3(token):
    response = requests.put(
        '%s/api/v2.0/datasets/%s/append' % (HOST, DATASET_ID),
        json={
            'token': token,
            's3_separator': 'TAB',
            's3_filename': 'dataset.csv.zip',
            'encoding': 'shift-jis'
        }
    )
    return response.json()# POST /datasets (create using file system)
def create_from_csv(token):
    response = requests.post(
        '%s/api/v2.0/datasets' % HOST,
        data={
            'token': token,
            'sep': 'TAB',
            'name': 'TestDataset ' + str(datetime.datetime.now())
        },
        files={
            'csv_file': open(SMALL_FILE, 'rb')
        }
    )
    return response.json()# GET /datasets Get all datasets details
def get_all_ds_details(token):
    response = requests.get(
        '%s/api/v2.0/datasets' % HOST,
        json={
            'token': token,
            'fields2show': ['name', 'id', 'sync_status']
        }
    )
    return response.json()# GET /datasets/{id} Get Dataset details.
def get_dataset_details(token):
    response = requests.get(
        '%s/api/v2.0/datasets/%s' % (HOST, DATASET_ID),
        json={
            'token': token,
            'include_cardinalities': 'false'
        }
    )
    return response.json()# PUT /datasets/{id} Edit dataset.
def edit_dataset(token):
    response = requests.put(
        '%s/api/v2.0/datasets/%s' % (HOST, DATASET_ID),
        data={
            'token': token,
            'name': 'NR TestDataset 2019-07-02 16:33:12.116667',
        }
    )
    return response.json()# DELETE /datasets/{id} Delete dataset.
def delete_dataset(token):
    response = requests.delete(
        '%s/api/v2.0/datasets/%s' % (HOST, DATASET_ID),
        data={
            'token': token,
        }
    )
    return response.json()# GET /datasets/{id}/data Get Dataset details using a filter or search.
def filter_ds(token):
    response = requests.get(
        '%s/api/v2.0/datasets/%s/data' % (HOST, DATASET_ID),
        json={
            'token': token,
            'skip': 0,
            'limit': 100,
            "filter": "Agent_Age>30&Agent_Skill2=Billing",
            "search": "Buyer"
        }
    )
    return response.json()# PUT /datasets/{id}/append (using file system) Append a dataset using a CSV file or a zipped CSV file.
def append_data_csv(token):
    response = requests.put(
        '%s/api/v2.0/datasets/%s/append' % (HOST, DATASET_ID),
        data={
            'token': token,
            'sep': 'TAB',
        },
        files={
            'csv_file': open(SMALL_FILE, 'rb')
        }
    )
    return response.json()# PUT /datasets/{id}/append (using JSON) Append a dataset using JSON batch data.
def append_data_batch(token, dataset_id):
    response = requests.put(
        '%s/api/v2.0/datasets/%s/append' % (HOST, dataset_id),
        json={
            'token': token,
            'batch_data': [
                {
                    "a": "1",
                    "b": "abc",
                    "ts": "12345"
                }]
        }
    )
    return response.json()# PUT /datasets/{id}/apply_sync Sync dataset.
def sync_dataset(token):
    response = requests.put(
        '%s/api/v2.0/datasets/%s' % (HOST, DATASET_ID),
        json={
            'token': token,
            'command': 'apply_sync'
        }
    )
    return response.json()# PUT /datasets/{id}/accept_sync Accept dataset.
def accept_sync(token):
    response = requests.put(
        '%s/api/v2.0/datasets/%s' % (HOST, DATASET_ID),
        json={
            'token': token,
            'command': 'accept_sync'
        }
    )
    return response.json()# PUT /datasets/{id}/cancel_sync Cancel dataset synchronization.
def cancel_sync(token):
    response = requests.put(
        '%s/api/v2.0/datasets/%s' % (HOST, DATASET_ID),
        json={
            'token': token,
            'command': 'cancel_sync'
        }
    )
    return response.json()Schemas Examples
# GET /schemas 	Get presigned URL
def get_presigned_url(token):
    response = requests.get(
        '%s/api/v2.0/schemas' % HOST
        json={
            'token': token,
            'command': 'presigned_url',
            'schema_type': 'customers',		# or 'agents'
            'filename': 'customers.csv'
        },
    )
    tuplex = (response.json()['signed_url'], response.json()['file_path'])
    return tuplex# PUT /presigned_url	Upload source file to s3(minio)
def upload_profile_s3(presigned_url):
    response = requests.put(
        presigned_url,
        data=open(PROFILE_PATH, 'rb').read()
    )
    return response# POST /schemas 	Upload from s3 to the GPR platform
def upload_from_s3(token, file_path):
    response = requests.post(
      '%s/api/v2.0/schemas' % HOST,
      data = {
              'token': token,
              'schema_type': 'customers',
              'command': 'finish_s3_upload',
              's3_separator': 'TAB',
              's3_filename': file_path
              }
    )
    return response.json()def upload_from_s3(token, file_path):
    response = requests.post(
      '%s/api/v2.0/schemas' % HOST,
      data = {
              'token': token,
              'schema_type': 'customers',
              'command': 'finish_s3_upload',
              's3_separator': 'TAB',
              's3_filename': file_path
              }
    )
    return response.json()# PUT /schemas (create schema from a sample
def create_schema_from_template(token):
    response = requests.put(
        '%s/api/v2.0/schemas' % (HOST),
        json={
            'token': token,
            'schema_type': 'agents',
            'sample_data': {
                'string_field': 'string',
                'integer_field': 1,
                'boolean_field': False
            }
        }
    )
    return response.json()# PUT /schemas (create final schema)
def create_final_schema(token):
    response = requests.put(
        '%s/api/v2.0/schemas' % (HOST),
        json={
            'token': token,
            'schema_type': 'agents',
            'schema_info': [
                {
                    'name': 'boolean_field',
                    'type': 'boolean'
                },
                {
                    'name': 'string_field',
                    'type': 'string',
                    'is_id': True
                },
                {
                    'name': 'integer_field',
                    'type': 'integer'
                }
            ]
        }
    )
    return response.json()# POST /schemas Sync, Cancel sync, Accept schema
def manage_schemas(token):
    response = requests.post(
        '%s/api/v2.0/schemas' % HOST,
        data={
            'token': token,
            'command': 'accept_sync',
            'schema_type': 'agents'
        }
    )
    return response.json()# DELETE /schemas Delete schema
def delete_schema(token):
    response = requests.delete(
        '%s/api/v2.0/schemas' % (HOST),
        data={
            'token': token,
            'schema_type': 'agents'
        }
    )
    return response.json()# GET /schemas Get schema details
def get_schema_details(token):
    response = requests.get(
        '%s/api/v2.0/schemas' % HOST,
        json={
            'token': token,
            'schema_type': 'agents'
        }
    )
    return response.json()# GET /schemas Get schema details
def get_schema_details(token):
    response = requests.get(
        '%s/api/v2.0/schemas' % HOST,
        json={
            'token': token,
            'schema_type': 'agents'
        }
    )
    return response.json()# POST /schemas (change fields visibility)
def change_schema_visibility(token):
    response = requests.post(
        '%s/api/v2.0/schemas' % HOST,
        json={
            'token': token,
            'command': 'fields_visibility',
            'schema_type': 'agents',
            'visible_fields': ['Agent_First']
        }
    )
    return response.json()Agents Examples
# POST /agents (create using file)
def upload_agents_csv(token):
    response = requests.post(
        '%s/api/v2.0/agents' % HOST,
        data={
            'token': token,
            'sep': 'COMMA',
            'encoding': 'shift-jis'
        },
        files={
            'csv_file': open(AGENTS_FILE, 'rb'),
        }
    )
    return response.json()# POST /agents (create using json)
def upload_agents_batch(token):
    response = requests.put(
        '%s/api/v2.0/agents' % (HOST),
        json={
            'token': token,
            'batch_data': [
                {
                    'Agent_AgentID': '1000',
                    'Agent_First': 'Jane',
                    'Agent_Last': 'Doe'
                }],
            'return_objects': True,
            'include_complex_attributes': True
        }
    )
    return response.json()# GET /agents Get Agent details
def get_agent_details_id(token):
    response = requests.get(
        '%s/api/v2.0/agents' % HOST,
        json={
            'token': token,
            'Agent_AgentID': '1000',
            'include_complex_attributes': True
        }
    )
    return response.json()def get_agent_details_search(token):
    response = requests.get(
        '%s/api/v2.0/agents' % HOST,
        json={
            'token': token,
            'filter': 'Agent_Experience>10&Agent_Location_Country=US',
            'search': 'John',
            'include_complex_attributes': True
        }
    )
    return response.json()#PUT /agents Edit agent record
def edit_agent(token):
    response = requests.put(
        '%s/api/v2.0/agents' % (HOST),
        json={
            'token': token,
            'batch_data': [
                {
                    'Agent_AgentID': '1000',
                    'Agent_First': 'Joe',
                    'Agent_Last': 'Doe'
                }]
        }
    )
    return response.json()#DELETE /agents Delete agent record.
def delete_agent(token):
    response = requests.delete(
        '%s/api/v2.0/agents' % (HOST),
        data={
            'token': token,
            'Agent_AgentID': '1000'
        }
    )
    return response.json()# POST /agents/compute_cardinalities
def agent_cardinalities(token):
    response = requests.post(
        '%s/api/v2.0/agents/compute_cardinalities' % HOST,
        data={
            'token': token
        }
    )
    return response.json()Customers Examples
#POST /customers (create using file)
def upload_customers_csv(token):
    response = requests.post(
        '%s/api/v2.0/customers' % HOST,
        data={
            'token': token,
            'sep': 'TAB',
            'encoding': 'shift-jis'
        },
        files={
            'csv_file': open(SMALL_FILE, 'rb'),
        }
    )
    return response.json()#POST /customers (create using JSON)
def upload_customers_batch(token):
    response = requests.put(
        '%s/api/v2.0/customers' % (HOST),
        json={
            'token': token,
            'batch_data': [
                {
                    'Customer_CustomerID': 'eafa71e9-85b9-4fa1-9395-2f6f3d7f1d65',
                    'Customer_AccountValue': 759696320,
                    'Customer_Age': 37,
                    'Customer_AgeBucket': 1,
                    'Customer_Location_Country': 'Canada',
                    'Customer_Location_State': 'BC',
                    'Customer_Intent': 'Opening Account',
                    'Customer_Income': 798884,
                    'Customer_Escalations': 3
                }],
            'return_objects': True,
            'include_complex_attributes': True
        }
    )
    return response.json()# GET /customers Get Customer details
def get_customer_details_id(token):
    response = requests.get(
        '%s/api/v2.0/customers' % HOST,
        json={
            'token': token,
            'Customer_CustomerID': 'eafa71e9-85b9-4fa1-9395-2f6f3d7f1d65',
            'include_complex_attributes': True
        }
    )
    return response.json()def get_customer_details_search(token):
    response = requests.get(
        '%s/api/v2.0/customers' % HOST,
        json={
            'token': token,
            'filter': 'Customer_Age>20&Customer_Location_Country=US',
            'search': 'male',
            'include_complex_attributes': True
        }
    )
    return response.json()#PUT /customers Edit Customer record
def edit_customer(token):
    response = requests.put(
        '%s/api/v2.0/customers' % (HOST),
        json={
            'token': token,
            'batch_data': [
                {
                    'Customer_CustomerID': 'eafa71e9-85b9-4fa1-9395-2f6f3d7f1d65',
                    'Customer_Age': '35'
                }]
        }
    )
    return response.json()#DELETE /customers Delete customer record.
def delete_customer(token):
    response = requests.delete(
        '%s/api/v2.0/customers' % (HOST),
        data={
            'token': token,
            'Customer_CustomerID': 'eafa71e9-85b9-4fa1-9395-2f6f3d7f1d65'
        }
    )
    return response.json()# POST /customers/compute_cardinalities
def customer_cardinalities(token):
    response = requests.post(
        '%s/api/v2.0/customers/compute_cardinalities' % HOST,
        data={
            'token': token
        }
    )
    return response.json()Predictors Examples
# POST /predictors (simple)
def create_predictor(token):
    response = requests.post(
        '%s/api/v2.0/predictors' % HOST,
        json={
            "token": token,
            "name": "TestPredictor2",
            "from_dt": int(time.mktime((2018, 1, 31, 0, 0, 0, 0, 0, 0))),  # Dummy range to fit my sample set
            "to_dt": int(time.mktime((2020, 1, 31, 0, 0, 0, 0, 0, 0))),
            "action_type": "agents",
            "context_type": "customers",
            "dataset": DATASET_ID,
            "metric": "NPS",
            "action_id_expression": "Agent_AgentID",
            "kpi_type": "Sales",
            "action_features_schema": [
                {
                    "label": "Agent_Skill4",
                    "type": "string",
                    "field_expr": "Agent_Skill4"
                },
                {
                    "label": "Agent_SalesConversionRate",
                    "type": "integer",
                    "field_expr": "Agent_SalesConversionRate"
                },
                {
                    "label": "Agent_Skill4_Level",
                    "type": "integer",
                    "field_expr": "Agent_Skill4_Level"
                }
            ],
            "context_features_schema": [
                {
                    "label": "Customer_Age",
                    "type": "integer",
                    "field_expr": "Customer_Age"
                },
                {
                    "label": "Customer_Location_Country",
                    "type": "string",
                    "field_expr": "Customer_Location_Country"
                },
                {
                    "label": "Customer_Intent",
                    "type": "string",
                    "field_expr": "Customer_Intent"
                }
            ],
        }
    )
    return response.json()# POST /predictors (composite)
def create_composite_predictor(token):
    response = requests.post(
        '%s/api/v2.0/predictors' % HOST,
        json={
            "token": token,
            "name": "composite_predictor",
            "predictor_type": "Composite Predictor",
            "predictors_list": [PREDICTOR_ID, PREDICTOR_ID2],
            "raw_expression": "($predictor1Name1 + $predictor2Name)/2"
        }
    )
    return response.json()# GET /predictors Get all predictors details
def get_predictors_info(token):
    response = requests.get(
        '%s/api/v2.0/predictors' % (HOST),
        json={
            'token': token,
            'fields2show': ['name', 'id']
        }
    )
    return response.json()# GET /predictors/{id} Get predictor details
def get_predictor_info(token):
    response = requests.get(
        '%s/api/v2.0/predictors/%s' % (HOST, PREDICTOR_ID),
        json={
            'token': token,
        }
    )
    return response.json()# PUT /predictors/{id} Edit predictor record
def edit_predictor(token):
    response = requests.put(
        '%s/api/v2.0/predictors/%s' % (HOST, PREDICTOR_ID),
        json={
            'token': token,
            'name': 'RenamedTestPredictor'
        }
    )
    return response.json()#DELETE /predictors/{id} Delete predictor record.
def delete_predictor(token):
    response = requests.delete(
        '%s/api/v2.0/predictors/%s' % (HOST, PREDICTOR_ID2),
        data={
            'token': token
        }
    )
    return response.json()# PUT /predictors/{id}/generate_data Generate predictor data.
def generate_training_data(token, from_timestamp, to_timestamp):
    response = requests.put(
        '%s/api/v2.0/predictors/%s' % (HOST, PREDICTOR_ID),
        json={
            'command': 'generate_data',
            'from_dt': from_timestamp,
            'to_dt': to_timestamp,
            'token': token
        }
    )
    return response.json()# PUT /predictors/{id}/purge_data Purge predictor data
def purge_training_data(token):
    response = requests.put(
        '%s/api/v2.0/predictors/%s' % (HOST, PREDICTOR_ID),
        json={
            'command': 'purge_data',
            'token': token
        }
    )
    return response.json()# GET /predictors/{id}/check_status Check status of predictor generate and purge jobs
def check_predictor_status(token):
    response = requests.get(
        '%s/api/v2.0/predictors/%s/check_status' % (HOST, PREDICTOR_ID),
        json={
            'token': token
        }
    )
    return response.json()# GET /predictors/{id}/data Get predictor data
def get_predictor_data(token):
    response = requests.get(
        '%s/api/v2.0/predictors/%s/data' % (HOST, PREDICTOR_ID),
        json={
            'token': token,
            'filter': 'act.Agent_Skill4_Level=1&ctx.Customer_Age>30'
        }
    )
    return response.json()# POST /predictors/{id}/copy_predictor Copy predictor
def copy_predictor(token):
    response = requests.post(
        '%s/api/v2.0/predictors/%s/copy_predictor' % (HOST, PREDICTOR_ID),
        json={
            'token': token
        }
    )
    return response.json()# POST /predictors/{id}/score Score actions for predictor context
def predictor_score(token):
    response = requests.post(
        '%s/api/v2.0/predictors/%s/copy_predictor' % (HOST, PREDICTOR_ID),
        json={
            'token': token,
            'context': {
                'Customer_Location_Country': 'US'
            },
            'action_filters': "Agent_Skill4_Level in ['4','5']",
            'format_as_map': True,
            'warnings': True
        }
    )
    return response.json()# POST /predictors/{id}/reset Reset predictor
def reset_predictor(token):
    response = requests.post(
        '%s/api/v2.0/predictors/%s/reset' % (HOST, PREDICTOR_ID),
        json={
            'token': token
        }
    )
    return response.json()# POST /predictors/{id}/feedback Predictor feedback
def predictor_feedback(token):
    response = requests.post(
        '%s/api/v2.0/predictors/%s/feedback' % (HOST, PREDICTOR_ID),
        json={
            'token': token,
            'action': {
                'action_id': 'UUID_2',
                'skill': 'testing2',
                'age': '28',
                'fluency': 'good2',
                'seniority': 'veteran2'
            },
            'context': {
                'age': '36',
                'gender': 'M',
                'location': 'San Francisco2',
                'n_subs': '16',
                'intention': 'closing an account',
                'seniority': 'ancient2'
            },
            'reward': 0
        }
    )
    return response.json()# POST /ab_testing/join A/B Test predictor
def ab_test(token):
    response = requests.post(
        '%s/api/v2.0/ab_testing/join' % (HOST),
        json={
            'token': token,
            'prrPredictor': 'RenamedTestPredictor',
            'from_date': '01/31/2018',
            'to_date': '01/31/2020'
        }
    )
    return response.json()Score Log Examples
# POST /score_log Log your predictor score log data
def score_log(token):
    response = requests.post(
        '%s/api/v2.0/score_log' % (HOST),
        json={
            'token': token,
            'prrPredictor': 'RenamedTestPredictor',
            'context': {
                'Customer_Location_Country': 'US'
            },
            'action_filters': "Agent_Skill4_Level in ['4','5']",
            'format_as_map': True,
            'warnings': True
        }
    )
    return response.json()# GET /score_log View your previously logged score data
def get_score_log(token):
    response = requests.get(
        '%s/api/v2.0/score_log' % (HOST),
        json={
            'token': token,
            'prrPredictor': 'RenamedTestPredictor',
            'context': {
                'Customer_Location_Country': 'US'
            }
        }
    )
    return response.json()Models (PredictorsModels) Examples
# POST /predictor_models Create predictor model.
def create_predictive_model(token):
    response = requests.post(
        '%s/api/v2.0/predictor_models' % HOST,
        json={
            "token": token,
            "display_name": "TestModel_DISJOINT",
            "predictor_id": PREDICTOR_ID,
            "model_type": "DISJOINT",
            "context_features": [
                {
                    "label": "Customer_Age",
                    "type": "integer",
                    "field_expr": "Customer_Age"
                },
                {
                    "label": "Customer_Location_Country",
                    "type": "string",
                    "field_expr": "Customer_Location_Country"
                },
                {
                    "label": "Customer_Intent",
                    "type": "string",
                    "field_expr": "Customer_Intent"
                }
            ],
            "action_features": [
                {
                    "label": "Agent_Skill4",
                    "type": "string",
                    "field_expr": "Agent_Skill4"
                },
                {
                    "label": "Agent_SalesConversionRate",
                    "type": "integer",
                    "field_expr": "Agent_SalesConversionRate"
                },
                {
                    "label": "Agent_Skill4_Level",
                    "type": "integer",
                    "field_expr": "Agent_Skill4_Level"
                }
            ],
            "train_data_percentage": 80,
        }
    )
    return response.json()# GET /predictor_models Get all predictor Models details
def get_models_info(token):
    response = requests.get(
        '%s/api/v2.0/predictor_models' % (HOST),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()# GET /predictor_models/{id} Get predictor Model details
def get_model_info(token):
    response = requests.get(
        '%s/api/v2.0/predictor_models/%s' % (HOST, MODEL_ID),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()# PUT /predictor_models/{id} Edit predictor model record
def edit_model(token):
    response = requests.put(
        '%s/api/v2.0/predictor_models/%s' % (HOST, MODEL_ID),
        json={
            "token": token,
            "display_name": "NewTestModel",
            "description": "Test model",
            "predictor_id": PREDICTOR_ID,
            "model_type": "HYBRID",
            "context_features": [
                {
                    "label": "Customer_Age",
                    "type": "integer",
                    "field_expr": "Customer_Age"
                },
                {
                    "label": "Customer_Location_Country",
                    "type": "string",
                    "field_expr": "Customer_Location_Country"
                },
                {
                    "label": "Customer_Intent",
                    "type": "string",
                    "field_expr": "Customer_Intent"
                }
            ],
            "action_features": [
                {
                    "label": "Agent_Skill4",
                    "type": "string",
                    "field_expr": "Agent_Skill4"
                },
                {
                    "label": "Agent_SalesConversionRate",
                    "type": "integer",
                    "field_expr": "Agent_SalesConversionRate"
                },
                {
                    "label": "Agent_Skill4_Level",
                    "type": "integer",
                    "field_expr": "Agent_Skill4_Level"
                }
            ],
            "train_data_percentage": 80,
        }
    )
    return response.json()# DELETE /predictor_models/{id} Delete predictor model
def delete_model(token):
    response = requests.delete(
        '%s/api/v2.0/predictor_models/%s' % (HOST, MODEL_ID3),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID,
            'hard': True
        }
    )
    return response.json()# DELETE /predictor_models (several models) Delete predictor models in batch
def delete_models_batch(token):
    response = requests.delete(
        '%s/api/v2.0/predictor_models' % (HOST),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID,
            'hard': True,
            'model_id': [
                MODEL_ID1,
                MODEL_ID2
            ]
        }
    )
    return response.json()# PUT /predictor_models/{id}/train Train predictor model
def train_model(token):
    response = requests.put(
        '%s/api/v2.0/predictor_models/%s/train' % (HOST, MODEL_ID),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()# PUT /predictor_models/{id}/retrain Retrain predictor model
def retrain_model(token):
    response = requests.put(
        '%s/api/v2.0/predictor_models/%s/retrain' % (HOST, MODEL_ID),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()# PUT /predictor_models/{id}/activate Activate predictor model
def activate_model(token):
    response = requests.put(
        '%s/api/v2.0/predictor_models/%s/activate' % (HOST, MODEL_ID),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()# PUT /predictor_models/{id}/deactivate Deactivate predictor model
def deactivate_model(token):
    response = requests.put(
        '%s/api/v2.0/predictor_models/%s/deactivate' % (HOST, MODEL_ID),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()# PUT /predictor_models/{id}/copy Copy predictor model
def copy_model(token):
    response = requests.put(
        '%s/api/v2.0/predictor_models/%s/copy' % (HOST, MODEL_ID),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()Analysis Examples
# GET /analysis Get analysis reports data
def get_analysis(token):
    response = requests.get(
        '%s/api/v2.0/analysis' % HOST,
        json={
            'token': token
        }
    )
    return response.json()# GET /analysis/{id} Get analysis report data by ID
def get_analysis_by_id(token):
    response = requests.get(
        '%s/api/v2.0/analysis/%s' % (HOST, REPORT_ID),
        json={
            'token': token
        }
    )
    return response.json()# DELETE /analysis/{id} Delete analysis report
def delete_analysis_report(token):
    response = requests.delete(
        '%s/api/v2.0/analysis/%s' % (HOST, REPORT_ID),
        json={
            'token': token
        }
    )
    return response.json()# POST /analysis/datasets/feature_analysis Generate Feature Analysis report for dataset
def generate_fa_report_dataset(token):
    response = requests.post(
        '%s/api/v2.0/analysis/datasets/feature_analysis' % HOST,
        json={
            'token': token,
            'dataset_id': DATASET_ID,
            'target_metric': 'HandleTime'
        }
    )
    return response.json()# POST /analysis/predictors/feature_analysis Generate Feature Analysis report for predictor
def generate_fa_report_predictor(token):
    response = requests.post(
        '%s/api/v2.0/analysis/predictors/feature_analysis' % HOST,
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()# POST /analysis/predictors/lift_estimation Generate Lift Estimation report for predictor
def generate_le_report(token):
    response = requests.post(
        '%s/api/v2.0/analysis/predictors/lift_estimation' % HOST,
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID,
            'model_id': MODEL_ID
        }
    )
    return response.json()Index Management Examples
# GET /index_management Get existing indexes on a collection
def get_indexes(token):
    response = requests.get(
        '%s/api/v2.0/index_management' % HOST,
        json={
            'token': token,
            'coll_type': 'agents'
        }
    )
    return response.json()# PUT /index_management Edit indexes on a collection
def edit_indexes(token):
    response = requests.put(
        '%s/api/v2.0/index_management' % HOST,
        json={
            "token": token,
            "coll_type": "agents",
            "fields": [
                "Agent_Status",
                "Agent_Location_Country"
            ]
        }
    )
    return response.json()# PUT /index_management Delete indexes on a collection
def delete_indexes(token):
    response = requests.delete(
        '%s/api/v2.0/index_management' % HOST,
        json={
            "token": token,
            "coll_type": "agents",
            "fields": [
                "Agent_Status",
                "Agent_Location_Country"
            ]
        }
    )
    return response.json()PURGE APIs
# GET /purge/{purge_job_id} Get purge job details
def get_purge_status(token, purge_job_id):
    response = requests.get(
        '%s/api/v2.0/purge/%s' % (HOST, purge_job_id),
        json={
            'token': token
        }
    )
    return response.json()# POST /purge/agents Add a purge job for agents
def purge_agents(token):
    response = requests.post(
        '%s/api/v2.0/purge/agents' % HOST,
        json={
            'token': token,
            'data_filter': '(Agent_Age>30)'
        }
    )
    return response.json()# POST /purge/customers Add a purge job for customers
def purge_customers(token):
    response = requests.post(
        '%s/api/v2.0/purge/customers' % HOST,
        json={
            'token': token,
            'data_filter': '(Customer_Income<200000)'
        }
    )
    return response.json()# POST /purge/datasets/{id} Add a purge job for dataset with given id
def purge_dataset(token):
    response = requests.post(
        '%s/api/v2.0/purge/datasets/%s' % (HOST, DATASET_ID),
        json={
            'token': token,
            'data_filter': '(CSAT=5)'
        }
    )
    return response.json()# POST /purge/predictors/{id} Add a purge job for predictor with given id
def purge_predictor(token):
    response = requests.post(
        '%s/api/v2.0/purge/predictors/%s' % (HOST, PREDICTOR_ID),
        json={
            'token': token,
            'data_filter': '(ctx.Customer_Age=56)'
        }
    )
    return response.json()
def train_model(token):
    response = requests.put(
        '%s/api/v2.0/predictor_models/%s/train' % (HOST, MODEL_ID),
        json={
            'token': token,
            'predictor_id': PREDICTOR_ID
        }
    )
    return response.json()Predictor Scoring Example
# POST /predictors/{id}/score Score actions for predictor context
def get_scores(token):
    response = requests.post(
        '%s/api/v2.0/predictors/%s/score' % (HOST, PREDICTOR_ID),
        json={
            'token': token,
            'context': {
                'Customer_Location_Country': 'US'
            },
            'action_filters': "Agent_Skill4_Level in ['3','4','5']",
            'format_as_map': True,
            'warnings': True
        }
    )
    return response.json() This page was last edited on October 22, 2019, at 15:25.
                
                
                
                
                
                
		
		
			Comments or questions about this documentation? Contact us for support! 
		
                
                                
            