Skip to main content
Skip table of contents

OpenAPI Documentation

GastroPlus API Documentation

Version: 10.2.0
Contact: info@simulations-plus.com
Base URL: http://localhost:<insert_port>


Overview

GastroPlus Orchestrator is the automation API for GastroPlus >=10.2 designed to enable seamless interaction with the simulation engine programmatically. The automation layer includes multiple functionalities exposed through REST API that facilitate interaction with GastroPlus engine through HTTP protocol.


GastroPlus Service

GET /version

Summary: Get the version info of the GastroPlus Service

Parameters: None

Response: Returns version information including major, minor, revision, and build numbers

Example:

CODE
curl -X GET "http://localhost:8700/version"

Project Operations

POST /project/open

Summary: Open a project

Parameters:

Name

Type

Required

Description

project_file_location

query

Yes

Location of the project file

automatic_upgrade

query

No

Automatically upgrade the project to latest version (default: true)

Example:

CODE
curl -X POST "http://localhost:8700/project/open?project_file_location=C:/path/to/project.gpx&automatic_upgrade=true"

POST /project/save

Summary: Save the project

Parameters: None

Example:

CODE
curl -X POST "http://localhost:8700/project/save"

POST /project/save_as

Summary: Save a copy of the currently loaded project with a new name

Parameters:

Name

Type

Required

Description

new_project_file_location

query

Yes

The file path where the project should be saved

open_new_project

query

No

Whether to open the newly saved project (default: false)

Example:

CODE
curl -X POST "http://localhost:8700/project/save_as?new_project_file_location=C:/path/to/new_project.gpx"

POST /project/legacy_import

Summary: Import a legacy project

Parameters:

Name

Type

Required

Description

project_file_locations

query

Yes

Location of the legacy project files

Example:

CODE
curl -X POST "http://localhost:8700/project/legacy_import?project_file_locations=C:/legacy/project.gpproject"

POST /project/legacy_import_folder

Summary: Import all legacy projects in a folder

Parameters:

Name

Type

Required

Description

folder_location

query

Yes

The directory containing the legacy project files


GET /project/assets

Summary: Get list of assets in the project

Parameters:

Name

Type

Required

Description

asset_types

query

No

Retrieve list of assets of specified types (Compound, Physiology, Dosing Schedule, Formulation, etc.)

Example:

CODE
curl -X GET "http://localhost:8700/project/assets?asset_types=Compound,Formulation"

POST /project/assets/export

Summary: Export the specified assets in the project to a file

Parameters:

Name

Type

Required

Description

export_location

query

Yes

Location to save the exported assets

export_project_name

query

Yes

The name of the exported project

Request Body: JSON containing asset information to export


POST /project/assets/import

Summary: Import the specified assets in the specified project

Parameters:

Name

Type

Required

Description

file_location

query

Yes

Location of project file (.gpproject) containing the assets to import

Request Body: JSON containing asset information to import (optional - if not provided, all assets are imported)


Asset Operations

GET /assets/drug_formulation

Summary: Get the details of specified drug formulation

Parameters:

Name

Type

Required

Description

drug_formulation_name

query

Yes

Name of drug formulation


POST /assets/drug_formulation

Summary: Create or Update a drug formulation

Request Body: JSON containing drug formulation configuration


DELETE /assets/drug_formulation

Summary: Delete the specified drug formulation

Parameters:

Name

Type

Required

Description

drug_formulation_name

query

Yes

Name of drug formulation


GET /assets/dose_schedule

Summary: Get the details of specified dose schedule

Parameters:

Name

Type

Required

Description

dose_schedule_name

query

Yes

Name of dose schedule


POST /assets/dose_schedule

Summary: Create or Update a dose schedule

Request Body: JSON containing dose schedule configuration


DELETE /assets/dose_schedule

Summary: Delete the specified dose schedule

Parameters:

Name

Type

Required

Description

dose_schedule_name

query

Yes

Name of dose schedule


GET /assets/variables

Summary: Get variables in the asset

Parameters:

Name

Type

Required

Description

asset_type

query

Yes

Type of the asset (Compound, Physiology, Dosing Schedule, etc.)

asset_name

query

Yes

Name of the asset


GET /assets/variable

Summary: Get variable value of the specified asset variable name

Parameters:

Name

Type

Required

Description

asset_type

query

Yes

Type of the asset

asset_name

query

Yes

Name of the asset

variable_name

query

Yes

Name of the variable


POST /assets/variable

Summary: Update or set variable value of the specified asset variable

Request Body: JSON containing asset type, asset name, variable name, and variable value


Run Operations

POST /runs

Summary: Create a run of the specified type

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run to create

run_type

query

Yes

The type of the run (BatchSimulation, ParameterSensitivityAnalysis, PopulationSimulation, Optimization, VirtualBioequivalence)

Example:

CODE
curl -X POST "http://localhost:8700/runs?run_name=MyRun&run_type=BatchSimulation"

DELETE /runs

Summary: Delete the specified run

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run to delete


POST /runs/add_simulations

Summary: Add simulations to a run

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run to add simulations to

simulation_names

query

Yes

The simulations to add to the run (array)


GET /runs/simulations

Summary: Get the list of simulations in the run

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run


POST /runs/execute

Summary: Execute a run

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run to execute

Example:

CODE
curl -X POST "http://localhost:8700/runs/execute?run_name=MyRun"

POST /runs/configure

Summary: Configure the run

Request Body: JSON containing run configuration details


Variables Operations

GET /variables

Summary: Get the variables

Parameters:

Name

Type

Required

Description

simulation_name

query

Yes

The simulation name

run_name

query

No

The run name (if specified, variables based on run-type will be returned)

full_variable_name

query

No

Display full name of the variable (default: false)


GET /variable_information

Summary: Get the variable information (value and unit)

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The run name

simulation_name

query

Yes

The simulation name

variable_names

query

Yes

List of variable names (array)

use_full_variable_name

query

No

Specify if using full name (default: false)


GET /variables/mutated

Summary: Get the list of mutated variables selected for the run

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The run name

simulation_name

query

No

The simulation name

full_variable_name

query

No

Display full name of variable (default: false)


GET /variables/full_name

Summary: Get the full name of the variables

Parameters:

Name

Type

Required

Description

simulation_name

query

Yes

The run name

abridged_variable_name

query

Yes

The abridged variable name


Observed Data Operations

GET /observed_data/associated_series_for_optimization

Summary: Get the list of observed series data that can be selected for optimization

Parameters:

Name

Type

Required

Description

simulation_name

query

Yes

The name of the simulation in the run


GET /observed_data/inventory

Summary: Get the list of observed data in the project

Parameters: None


GET /observed_data/series_data

Summary: Get series data for the specified series key

Parameters:

Name

Type

Required

Description

group_name

query

Yes

The name of the group

group_type

query

Yes

The type of group

series_name

query

Yes

The name of the series

series_type

query

Yes

The type of series


POST /observed_data/series_data

Summary: Set series data for the specified series key

Parameters:

Name

Type

Required

Description

group_name

query

Yes

The name of the group

group_type

query

Yes

The type of group

series_name

query

Yes

The name of the series

series_type

query

Yes

The type of series

Request Body: JSON containing series data information


DELETE /observed_data/series_data

Summary: Delete observed series with the specified series key

Parameters:

Name

Type

Required

Description

group_name

query

Yes

The name of the group

group_type

query

Yes

The type of group

series_name

query

Yes

The name of the series

series_type

query

Yes

The type of series


DELETE /observed_data/series_group

Summary: Delete series group for the specified series key

Parameters:

Name

Type

Required

Description

group_name

query

Yes

The name of the group

group_type

query

Yes

The type of group

series_name

query

Yes

The name of the series

series_type

query

Yes

The type of series


Outputs Operations

GET /outputs/available_simulation_iteration_keys

Summary: Get all simulation iteration keys for a run

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run


POST /outputs/summary

Summary: Get summary output for a run and simulation iteration keys

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run

Request Body: JSON array of simulation iteration key names


GET /outputs/available_time_series

Summary: Get available time series data for the given run, simulation, and series type

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run

series_type

query

Yes

The type of the series (Mass, Concentration, Quantity, etc.)

simulation_name

query

Yes

The simulation name

simulation_iteration_key_name

query

No

The simulation iteration key


POST /outputs/series_data

Summary: Get series data for the given run, simulation, and series descriptor

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run

series_descriptor

query

Yes

The series descriptor

simulation_name

query

Yes

The simulation name

Request Body: JSON array of simulation iteration key names (optional)


POST /outputs/iteration_records

Summary: Get iteration records for a run and simulation iteration keys

Parameters:

Name

Type

Required

Description

run_name

query

Yes

The name of the run

use_full_variable_name

query

No

Use full variable names (default: false)

Request Body: JSON containing simulation iteration key names and variable names


PKPlus Module

GET /pkplus/runs

Summary: Get the list of PKPlus runs in the project

Parameters: None


POST /pkplus/runs

Summary: Add a PKPlus run

Parameters:

Name

Type

Required

Description

pkplus_run_name

query

Yes

The name of the PKPlus run to add

input_names

query

Yes

The names of the PKPlus inputs (array)


DELETE /pkplus/runs

Summary: Delete the specified PKPlus run

Parameters:

Name

Type

Required

Description

pkplus_run_name

query

Yes

The name of the run to delete


POST /pkplus/runs/configure

Summary: Configure the PKPlus run

Request Body: JSON containing PKPlus run name and model settings


POST /pkplus/runs/execute

Summary: Execute the PKPlus run

Parameters:

Name

Type

Required

Description

pkplus_run_name

query

Yes

The name of the PKPlus run to execute


GET /pkplus/runs/output

Summary: Get PKPlus output

Parameters:

Name

Type

Required

Description

pkplus_run_name

query

Yes

The PKPlus run for which to get output


GET /pkplus/inputs

Summary: Get PKPlus inputs

Parameters: None


POST /pkplus/inputs

Summary: Add a PKPlus input

Request Body: JSON containing PKPlus input details


DELETE /pkplus/inputs

Summary: Delete PKPlus input

Parameters:

Name

Type

Required

Description

pkplus_input_name

query

Yes

The PKPlus input to delete


POST /pkplus/export_nca_result

Summary: Export the PKPlus non-compartmental analysis result

Parameters:

Name

Type

Required

Description

pkplus_run_name

query

Yes

The name of the run

input_names

query

Yes

The inputs to include (array)


POST /pkplus/export_ca_simplified_result

Summary: Export the PKPlus compartmental analysis simplified result

Parameters:

Name

Type

Required

Description

pkplus_run_name

query

Yes

The name of the run

simulation_name

query

Yes

The name of the simulation

model_names

query

Yes

The model names to include (array)

export_weight_normalized_parameters

query

Yes

Whether to export weight normalized parameters


IVIVC Module

GET /ivivc/settings

Summary: Get the IVIVC settings in the project

Parameters: None


GET /ivivc/runs

Summary: Get the list of IVIVC runs in the project

Parameters: None


POST /ivivc/runs

Summary: Add an IVIVC run

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

Yes

The name of the IVIVC run to add


DELETE /ivivc/runs

Summary: Delete the specified IVIVC run

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

Yes

The name of the run to delete


POST /ivivc/runs/configure

Summary: Configure the IVIVC run

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

Yes

The name of the IVIVC run to configure

Request Body: JSON containing IVIVC deconvolution configuration


POST /ivivc/deconvolution

Summary: Execute the IVIVC Deconvolution

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run (if not provided, first run is used)


POST /ivivc/deconvolution/configure

Summary: Configure IVIVC Deconvolution

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run to configure

Request Body: JSON containing deconvolution configuration


GET /ivivc/deconvolution/output

Summary: Get IVIVC Deconvolution output

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run


POST /ivivc/correlation

Summary: Execute the IVIVC Correlation

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run to execute


POST /ivivc/correlation/configure

Summary: Configure IVIVC Correlation

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run to configure

Request Body: JSON containing correlation configuration


GET /ivivc/correlation/output

Summary: Get IVIVC Correlation output

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run


POST /ivivc/convolution

Summary: Execute the IVIVC Convolution

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run to execute


POST /ivivc/convolution/configure

Summary: Configure IVIVC Convolution

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run to configure

Request Body: JSON containing convolution configuration


GET /ivivc/convolution/output

Summary: Get IVIVC Convolution output

Parameters:

Name

Type

Required

Description

ivivc_run_name

query

No

The name of the IVIVC run


GET /ivivc/inputs

Summary: Get IVIVC inputs

Parameters: None


POST /ivivc/inputs

Summary: Add an IVIVC input

Parameters:

Name

Type

Required

Description

ivivc_input_name

query

Yes

The IVIVC input name

description

query

No

The description of the input

compound_name

query

No

The name of the compound

dose_schedule

query

Yes

The dose schedule

dissolution_series_group_name

query

Yes

The dissolution series group

dissolution_series_name

query

Yes

The dissolution series name


DELETE /ivivc/inputs

Summary: Delete an IVIVC input

Parameters:

Name

Type

Required

Description

ivivc_input_name

query

Yes

The name of the IVIVC input to delete


POST /ivivc/inputs/subject

Summary: Add an IVIVC subject to the input

Parameters:

Name

Type

Required

Description

ivivc_input_name

query

Yes

The input for which to add the subject

subject_name

query

Yes

The name of the IVIVC subject to add

base_simulation_name

query

Yes

The base simulation corresponding to the subject

exposure_group

query

No

The exposure group for the subject

observed_pharmacokinetic_data

query

No

The observed pharmacokinetic data


DELETE /ivivc/inputs/subject

Summary: Delete IVIVC subject from the input

Parameters:

Name

Type

Required

Description

ivivc_input_name

query

Yes

The input for which to delete the subject

subject_name

query

Yes

The name of the IVIVC subject to delete


GET /ivivc/subjects

Summary: Get IVIVC subjects

Parameters: None


POST /ivivc/subjects

Summary: Add an IVIVC subject

Parameters:

Name

Type

Required

Description

subject_name

query

Yes

The name of the IVIVC subject to add

physiology_name

query

Yes

The physiology name (must already be defined in project)


DELETE /ivivc/subjects

Summary: Delete an IVIVC subject

Parameters:

Name

Type

Required

Description

subject_name

query

Yes

The name of the IVIVC subject to delete


Admet Predictor Module

POST /admet_predictor/load_structure

Summary: Load the structure file

Parameters:

Name

Type

Required

Description

input_file_path

query

Yes

The file path of the .mol/.sdf/.smi file


GET /admet_predictor/configuration

Summary: Get the current structure import configuration

Parameters: None


POST /admet_predictor/configuration

Summary: Update the current structure import configuration

Request Body: JSON containing Admet Predictor import configuration


POST /admet_predictor/import

Summary: Import the structure with current configuration

Parameters: None


Simulation Operations

GET /simulation/compounds

Summary: Get the list of compounds in a simulation

Parameters:

Name

Type

Required

Description

simulation_name

query

Yes

The name of the simulation


Error Responses

All endpoints may return the following error response:

500 Internal Server Error

CODE
{
  "error": "Error description",
  "request": "Request information"
}

License

BSD-2-Clause License, Copyright (c) 2025 Simulations Plus, Inc.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.