API Response Documentation


The detailed API documentation for xpresso.ai can be accessed from here:

Authentication* : /auth

Method : POST

Xpresso Command : login

Sample Response :

json{ “outcome”: “success”, “error_code”: null, “results”: { “access_token”: “af5e09677887f302ea1ded287f1a0ae32c9d7f14243”, “user_context”: { “user_info”: { “uid”: “firstname.lastname”, “firstName”: “FirstName”, “lastName”: “LastName”, “pwd”: “<hashed password>”, “email”: “firstname.lastname@abzooba.com”, “primaryRole”: “su”, “loginStatus”: True, “activationStatus”: True, “nodes”: [ ], “loginExpiry”: 1579857265.987547, “token”: “af5e09677887f302ea1ded287f1a0ae32c9d7f14243”, “tokenExpiry”: 1579848422.657043 }, “project_list”: [ “simplified_pipeline_project”, “ab_testing_demo” ] }, “relogin”: True } }

Method : DELETE

Xpresso Command : logout

Sample Response:

{“outcome”: “success”, “error_code”: null, “results”: {}}

Compare Experiments* : /experiments/manage

Method : GET

Xpresso Command : compare_experiments

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: [ [ { “pipeline_name”: “dnn_training_pipeline”, “run_name”: “dnn_run_b”, “run_parameters”: { “repo_name”: “rossman_sales_project_v2_0”, “branch_name”: “develop”, “inpath”: “/dataset/kaggle_dataset”, “outpath”: “/data”, “commit”: “a7e40dbac7f94cf1a5d26f0fad96e546”, “epoch”: “2” }, “status”: { “timestamp”: “2020-01-22 13:18:29”, “component_name”: “dnn_train”, “status”: { “message”: “Component Completed” }, “metric”: { “exp_rmspe”: “23.163065”, “loss”: “6964.053748455332” } }, “run_status”: “COMPLETED”, “output”: [ { “commit_id”: “e867b0b582d94060a412dc34829e9844”, “path”: “/dataset/dnn_run_b__rossman_sales_project_v2_0__dnn_training_pipeline__2” } ], “pipeline_version”: 2, “components_status”: { “data_fetch”: “IDLE”, “dnn_data_prep”: “COMPLETED”, “dnn_train”: “COMPLETED”, “pipeline_last_component”: “dnn_train” }, “started_by”: “xpresso.developer1”, “start time”: datetime.datetime(2020, 1, 22, 13, 2, 19, 220000) } ], [ { “pipeline_name”: “dnn_training_pipeline”, “run_name”: “dnn_run_c”, “run_parameters”: { “repo_name”: “rossman_sales_project_136”, “branch_name”: “experiment”, “inpath”: “/dataset/kaggle_dataset”, “outpath”: “/data”, “commit”: “17c477b75351436d8fec3034fc81a5da”, “run-id”: “dnn_run_c__rossman_sales_project_137__dnn_training_pipeline__2”, “xpresso_run_name”: “dnn_run_c__rossman_sales_project_137__dnn_training_pipeline__2” }, “status”: { “timestamp”: “2020-01-09 20:24:24”, “component_name”: “DNN_Train”, “status”: “{“message”: “Component Completed”}”, “rows”: “844392”, “columns”: “14”, “loss”: “6959.7262292286705”, “epoch”: “0”, “exp_rmspe”: “29.825865” }, “run_status”: “COMPLETED”, “output”: [ { “commit_id”: “211ae3bd0d6d4380a440418b2daa0c6d”, “path”: “/dataset/dnn_run_c__rossman_sales_project_137__dnn_training_pipeline__2” } ], “pipeline_version”: 2, “started_by”: “xpresso.developer2”, “start time”: datetime.datetime(2020, 1, 10, 1, 45, 4, 819000) } ] ] }

Control Experiments* : /experiment/control

Method : POST

Xpresso Command : pause_experiment

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “This run is paused.” } }

Method : PUT

Xpresso Command : restart_experiment

Sample Response :

{ “outcome”: “success”, “error_code”: None, “results”: { “message”: “Successfully restarted this run.” } }

Method : DELETE

Xpresso Command : terminate_experiment

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “This run is Terminated.” } }

Generic Info* : /version

Method : GET

Xpresso Command : version

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “version”: “1.3.7” } }

Profile Management* : /users/pwd

Method : PUT

Xpresso Command : change_password

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “Password updated successfully” } }

Project Management* : /projects/manage

Method : POST

Xpresso Command : create_project

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “name”: “sample1_jan24”, “projectDescription”: “test project”, “owner”: { “uid”: “your.uid” }, “activationStatus”: True, “currentlyDeployed”: False, “developers”: [], “pipelines”: [ { “name”: “sample_pipeline”, “components”: [ “reviews_v1”, “reviews_v2” ], “flavor”: “kubeflow” } ], “environments”: [ “DEV” ], “bigdata_environments”: [], “data_versioning_repo_name”: “sample1_jan24”, “Code Versioning Repo”: “https://bitbucket.org/xpresso_teams_stage/sample1_jan24” } }

Method : PUT

Xpresso Command : modify_project

Sample Response :

js{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “Project modified successfully” } }

Method : GET

Xpresso Command : get_project

Sample Response :

Without Flag “verbose” Set To True

{ “outcome”: “success”, “error_code”: null, “results”: [ { “name”: “rossman_sales_project_136”, “projectDescription”: “Project to understand the predicting the sales for rossmal stores”, “owner”: { “uid”: “owner.uid” }, “activationStatus”: True, “currentlyDeployed”: False, “developers”: [ “developer.uid” ], “pipelines”: [ { “name”: “xgboost_training_pipeline”, “components”: [ “data_fetch”, “xgboost_data_prep”, “xgboost_train” ], “flavor”: “kubeflow” }, { “name”: “xgboost_training_pipeline”, “description”: “Sample description”, “components”: [ “data_fetch”, “xgboost_data_prep”, “xgboost_train” ], “flavor”: “kubeflow” } ], “environments”: [ “DEV” ], “bigdata_environments”: [ ], “service_mesh”: [ { “name”: “rossman_inference_svc_mesh”, “components”: [ “dnn_infer”, “xgboost_infer” ] } ], “Code Versioning Repo”: “https://bitbucket.org/xpresso_teams_stage/rossman_sales_project_136” } ] }

With Flag “verbose” Set To True

json{ “outcome”: “success”, “error_code”: null, “results”: { “name”: “sample4_mar26”, “projectDescription”: “sample”, “owner”: { “uid”: “sahil.malav” }, “created_on”: “Thu, 26 Mar 2020 20:59:05 GMT”, “giturl”: “https://bitbucket.org/xpresso_teams_stage/sample4_mar26”, “developers”: [], “currentlyDeployed”: true, “environments”: [ “DEV” ], “bigdata_environments”: [], “deployedClusters”: [], “deployedEnvironments”: [ “DEV” ], “bigdata_deployedEnvironments”: [], “components”: [ { “name”: “reviews_v1”, “type”: “service”, “flavor”: “python”, “dockerPrefix”: “dockerregistry.xpresso.ai/xprops/sample4_mar26/reviews_v1–”, “description”: “ainvayi”, “versions”: [], “deploy_version_id”: 3 }, { “name”: “reviews_v2”, “type”: “service”, “flavor”: “python”, “dockerPrefix”: “dockerregistry.xpresso.ai/xprops/sample4_mar26/reviews_v2–”, “description”: “”, “versions”: [], “deploy_version_id”: 1 }, { “name”: “reviews_v3”, “type”: “job”, “flavor”: “python”, “dockerPrefix”: “dockerregistry.xpresso.ai/xprops/sample4_mar26/reviews_v3–”, “description”: “”, “versions”: [], “deploy_version_id”: 1 } ], “persistent_volume_size”: 1, “activationStatus”: true, “linux_uid”: 1456.0, “service_mesh”: [ { “name”: “sample_mesh2”, “components”: [ “reviews_v1” ], “deploy_version_id”: 3 }, { “name”: “sample_mesh”, “components”: [ “reviews_v1”, “reviews_v2” ], “deploy_version_id”: 5 } ], “project_token”: “556f87f64b5ca6c95f65e8b1bed02eea02f5effc464948b4daae5e6c76173c9a”, “deployed_versions”: { “components”: [ { “name”: “reviews_v1”, “type”: “service”, “flavor”: “python”, “description”: “ainvayi”, “deployed_versions”: [ { “dockerImage”: “dockerregistrysb.xpresso.ai/xprops/tutorial_adityak/service-reader–master:3”, “deploy_version_id”: 1 }, { “dockerImage”: “dockerregistrysb.xpresso.ai/xprops/tutorial_adityak/service-reader–master:3”, “deploy_version_id”: 2 } ] }, { “name”: “reviews_v2”, “type”: “service”, “flavor”: “python”, “deployed_versions”: [] }, { “name”: “reviews_v3”, “type”: “job”, “flavor”: “python”, “deployed_versions”: [] } ], “pipelines”: [], “service_mesh”: [ { “name”: “sample_mesh”, “components”: [ “reviews_v1”, “reviews_v2” ], “deployed_versions”: [ “test” ] }, { “name”: “sample_mesh2”, “components”: [ “reviews_v1” ], “deployed_versions”: [ { “deploy_version_id”: 1, “deploy_info”: [ { “component_name”: “reviews_v1”, “version_name”: “v1”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/drug_sales_project/dnn_infer–master:1” }, { “component_name”: “reviews_v1”, “version_name”: “v2”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/drug_sales_project/dnn_infer–master:1” }, { “component_name”: “reviews_v2”, “version_name”: “v3”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/drug_sales_project/dnn_infer–master:1” } ], “strategy_used”: “‘weights’ based” }, { “deploy_version_id”: 2, “deploy_info”: [ { “component_name”: “reviews_v1”, “version_name”: “v1”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/drug_sales_project/dnn_infer–master:1” }, { “component_name”: “reviews_v1”, “version_name”: “v2”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/drug_sales_project/dnn_infer–master:1” }, { “component_name”: “reviews_v2”, “version_name”: “v3”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/drug_sales_project/dnn_infer–master:1” } ], “strategy_used”: “‘weights’ based” } ] } ] } } }

Method : DELETE

Xpresso Command : deactivate_project

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “Project successfully deactivated” } }

Project Build* : /projects/build

Method : POST

Xpresso Command : build_project

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “Your build has been submitted successfully! Track the build progress by visiting the provided dashboard IP.”, “dashboard_ip”: “http://172.16.3.51:8080/blue/pipelines/?search=housing_project_demo”, “build_versions”: { “end_to_end”: 7 } } }

Method : GET

Xpresso Command : get_build_versions

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “Versions”: [ { “component_name”: “data_fetch”, “versions”: [ { “version_id”: 1, “branch”: “master”, “commit_id”: “ff18cc77d3e822eebc57771a480ed13c498bbbab”, “version_description”: “data import”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/smoker_test2/data_fetch–master:1” } ] }, { “component_name”: “data_prep”, “versions”: [ { “version_id”: 1, “branch”: “master”, “commit_id”: “ff18cc77d3e822eebc57771a480ed13c498bbbab”, “version_description”: “preperation of data”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/smoker_test2/data_prep–master:1” } ] }, { “component_name”: “ml_train”, “versions”: [ { “version_id”: 1, “branch”: “master”, “commit_id”: “ff18cc77d3e822eebc57771a480ed13c498bbbab”, “version_description”: “Training ML model”, “dockerImage”: “dockerregistry.xpresso.ai/xprops/smoker_test2/ml_train–master:1” } ] } ] } }

Project Deployment* : /projects/deploy

Method : POST

Xpresso Command : deploy_project

Sample Response :

Component Deployment

{ “outcome”: “success”, “error_code”: null, “results”: [ { “service_ips”: [ { “service-reader”: [ “172.16.3.51:32538” ] }, { “crawler-service”: “https://172.16.3.51:30252/#/job?namespace=benchmarking-project” }, { “database-service”: [ “172.16.3.51:30745” ] } ], “message”: “Components deployed successfully! You can monitor them by visiting the provided dashboard IP.”, “dashboard_ip”: “https://172.16.3.51:30252/#/overview?namespace=benchmarking-project” } ] }

Service Mesh / Inference Service Deployment

{ “outcome”: “success”, “error_code”: null, “results”: { “service_ips”: [ { “drug_store_inference”: [ “172.16.3.51:31252” ], “strategy_used”: “”weights” based”, “version_id”: 4 } ], “message”: “You can monitor your mesh routing by visiting the provided dashboard IP.”, “dashboard_ip”: “http://172.16.3.51:31163/d/Yfge6drWz/service-mesh-dashboard” } }

Pipeline Deployment

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “Pipeline(s) deployed successfully! You can view individual pipelines by visiting the pipeline IPs provided. Alternatively, you can visit the dashboard IP provided to view all the pipelines.”, “pipelines_info”: [ { “name”: “dnn_training_pipeline”, “version_id”: 8, “pipeline_name_on_dashboard”: “dnn_training_pipeline–drug_sales_project_8.py.zip”, “experiment_name_on_dashboard”: “dnn_training_pipeline_drug_sales_project”, “pipeline_ip”: “http://172.16.3.51:31380/pipeline/#/pipelines/details/d1299dba-4b55-480b-aafa-98e77fbcb2a8” } ], “dashboard_ip”: “http://172.16.3.51:31380/_/pipeline” } }{ “outcome”:”success”, “error_code”:”None”, “results”:[ “172.16.1.81” ] }

Method : GET

Xpresso Command : get_pipeline_versions

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: [ { “name”: “dnn_training_pipeline–rossman_sales_project_v2_0_1.py.zip”, “pipeline_id”: “144846d7-5b1a-4ad8-96e4-4aa61941021d”, “components”: { “data_fetch”: “dockerregistry.xpresso.ai/library/xpresso_version:1.2.2”, “dnn_data_prep”: “dockerregistry.xpresso.ai/xprops/rossman_sales_project_v2_0/dnn_data_prep–master:4”, “dnn_train”: “dockerregistry.xpresso.ai/xprops/rossman_sales_project_v2_0/dnn_train–master:5” }, “version_id”: 1, “run_parameters”: [ “outpath”, “epoch”, “repo-name”, “branch-name”, “inpath”, “xpresso-run-name”, “commit” ] }, { “name”: “dnn_training_pipeline–rossman_sales_project_v2_0_2.py.zip”, “pipeline_id”: “6a344073-4575-4ef9-9cf9-d357ad78b1fd”, “components”: { “data_fetch”: “dockerregistry.xpresso.ai/library/xpresso_version:1.2.2”, “dnn_data_prep”: “dockerregistry.xpresso.ai/xprops/rossman_sales_project_v2_0/dnn_data_prep–master:4”, “dnn_train”: “dockerregistry.xpresso.ai/xprops/rossman_sales_project_v2_0/dnn_train–master:7” }, “version_id”: 2, “run_parameters”: [ “outpath”, “epoch”, “repo-name”, “branch-name”, “inpath”, “xpresso-run-name”, “commit” ] }, { “name”: “dnn_training_pipeline–rossman_sales_project_v2_0_3.py.zip”, “pipeline_id”: “04d5fd0d-a99e-456e-b8e9-afb9b8e0be45”, “components”: { “data_fetch”: “dockerregistry.xpresso.ai/library/xpresso_version:1.2.2”, “dnn_data_prep”: “dockerregistry.xpresso.ai/xprops/rossman_sales_project_v2_0/dnn_data_prep–master:5”, “dnn_train”: “dockerregistry.xpresso.ai/xprops/rossman_sales_project_v2_0/dnn_train–master:8” }, “version_id”: 3, “run_parameters”: [ “outpath”, “epoch”, “repo-name”, “branch-name”, “inpath”, “xpresso-run-name”, “commit” ] } ] }

Method : DELETE

Xpresso Command : undeploy_project

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “Project undeployed successfully” } }

Start Experiment* : /experiments/start

Method : POST

Xpresso Command : start_experiment

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “Your experiment run has been started.n Track the run progress at http://172.16.3.51:31380/pipeline” } }

User Management* : /users

Method : POST

Xpresso Command : register_user

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “User registered successfully.” } }

Method: GET

Xpresso Command : get_users

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: [ { “uid”: “test.user”, “firstName”: “Test”, “lastName”: “User”, “email”: “test.user@abzooba.com”, “primaryRole”: “dev”, “activationStatus”: True } ] }

Method: PUT

Xpresso Command : modify_user

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “User modification completed” } }

Method: DELETE

Xpresso Command : deactivate_user

Sample Response :

{ “outcome”: “success”, “error_code”: null, “results”: { “message”: “test.user deactivated” } }