The Experiments API stores the complete audit trail of every research run — parameters, metrics, artifact paths, MLflow run IDs, dataset version hashes, feature version hashes, model version hashes, and the Git commit at the time of the run. While the training and validation engines writeDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/najmulhossainnj/Hedge-fund-backend/llms.txt
Use this file to discover all available pages before exploring further.
Experiment rows automatically as a side-effect of calling the training endpoints, this API also exposes full CRUD so that external scripts, notebooks, or CI pipelines can register their own runs. The comparison endpoint drives the Experiment Tracker UI’s side-by-side view, computing a metric_diff structure that highlights the best-performing run per metric so researchers can immediately identify winning configurations.
Experiment CRUD
Create an Experiment Record
/api/v1/experiments
parameters at dispatch time and then patching in metrics and mlflow_run_id once the run completes.
Request Body — ExperimentCreate
UUID of the strategy this experiment belongs to. All experiments must be scoped to a strategy for the comparison and filtering queries to work correctly.
Content hash (e.g. SHA-256 prefix) of the feature dataset version used in this run. Optional; populated automatically when triggered through the training endpoint.
Version identifier of the model artifact produced or used by this run.
Version hash of the training dataset assembly used in this run.
Git commit SHA at the time the run was dispatched, for full code-level reproducibility.
MLflow run ID. If you use the platform’s training endpoints, this is set automatically from the MLflow client.
Free-form hyperparameter dict recorded at the time of the run. Defaults to
{}.Free-form metric results dict. Defaults to
{}. Common keys: "mse", "mae", "directional_accuracy", "sharpe".Dictionary of artifact labels to S3 URIs, e.g.
{"model": "s3://research-artifacts/models/MODEL_UUID/model.pkl", "feature_importance": "s3://..."}. Defaults to {}.Response — ExperimentRead
Unique experiment identifier.
Parent strategy UUID.
Feature dataset version hash.
Model artifact version.
Training dataset version hash.
Git commit SHA.
MLflow run ID.
Recorded hyperparameters.
Recorded result metrics.
Map of artifact labels to S3 URIs.
ISO 8601 creation timestamp.
List Experiments
/api/v1/experiments
Query Parameters
Filter results to experiments belonging to this strategy. If omitted, all experiments across all strategies are returned (subject to
skip/limit).Number of records to skip. Default
0.Maximum records to return. Default
100.ExperimentRead objects.
Get an Experiment
/api/v1/experiments/{experiment_id}
UUID of the experiment to retrieve.
ExperimentRead object.
Errors: 404 Experiment not found.
Update an Experiment
/api/v1/experiments/{experiment_id}
metrics, mlflow_run_id, or artifacts after an async training job completes.
Request Body (all optional)
Set or update the linked MLflow run ID.
Replace the stored parameters dict.
Replace the stored metrics dict.
Replace the stored artifacts dict.
ExperimentRead object.
Errors: 404 Experiment not found.
Delete an Experiment
/api/v1/experiments/{experiment_id}
204 No Content
Errors: 404 Experiment not found.
Run Comparison
Compare Multiple Experiment Runs
/api/v1/experiments/compare
metric_diff structure that, for every metric key present across any of the selected runs, lists the per-run values and identifies the best-performing run ID.
Request Body
A JSON array of experiment UUIDs (2–10 items).Response
Full detail rows for each requested experiment, in the same order as the input IDs.
For each metric key found across any of the runs, provides the per-run values and the ID of the best-performing run.
metric_diff.best_id is determined by selecting the experiment with the lowest numeric value for each metric. This is correct for error metrics such as MSE and MAE. For metrics where higher is better (e.g. directional_accuracy, sharpe), interpret best_id as the run with the smallest value — i.e. the field points at the minimum, so for maximization metrics you should select the run whose value is furthest from best_id.400 Bad Request— if more than 10 UUIDs are supplied.404 Not Found— if any of the supplied IDs does not exist in the database. The error detail lists the missing IDs.