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:
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:
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:
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:
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:
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:
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:
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:
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
{
"error": "Error description",
"request": "Request information"
}
License
BSD-2-Clause License, Copyright (c) 2025 Simulations Plus, Inc.