Datasets
Datasets record where data came from, how many records it contains, and which CRISP-DM phase it belongs to.
List datasets
GET /projects/:projectId/datasetsReturns all datasets logged for the project. Optionally filter by phase.Auth required: YesPath parameters
Query parameters
Filter by CRISP-DM phase. One of: business, data_understanding, data_preparation, modeling, evaluation, deployment.
Response
Returns an array of Dataset objects.Origin of the data, e.g. database name, URL, or file path.
Description of the dataset contents.
Number of records in the dataset.
ISO 8601 date the data was acquired.
CRISP-DM phase this dataset belongs to.
User who created the dataset entry.
ISO 8601 creation timestamp.
Example request
curl --request GET \
--url 'https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/datasets?phase=data_understanding' \
--header 'Authorization: Bearer <token>'
Example response
[
{
"_id": "64b2a3c4d5e6f7a8b9c0d1e2",
"name": "Customer Transactions Q1-Q8",
"source": "data-warehouse.prod/transactions",
"description": "Raw transaction records for the past 24 months.",
"records": 4200000,
"acquisitionDate": "2026-03-01T00:00:00.000Z",
"phase": "data_understanding",
"project": "64a1f2c3b4e5d6f7a8b9c0d1",
"createdBy": {
"_id": "64a1f2c3b4e5d6f7a8b9c0d0",
"name": "Maria Garcia",
"email": "[email protected]"
},
"createdAt": "2026-03-25T11:00:00.000Z"
}
]
Create a dataset
POST /projects/:projectId/datasetsLogs a new dataset entry for the project.Auth required: YesPath parameters
Request body
Description of the dataset contents.
ISO 8601 date the data was acquired.
CRISP-DM phase. One of: business, data_understanding, data_preparation, modeling, evaluation, deployment.
Example request
curl --request POST \
--url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/datasets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Customer Transactions Q1-Q8",
"source": "data-warehouse.prod/transactions",
"description": "Raw transaction records for the past 24 months.",
"records": 4200000,
"acquisitionDate": "2026-03-01T00:00:00.000Z",
"phase": "data_understanding"
}'
Errors
| Status | Description |
|---|
400 | Missing or invalid fields. |
401 | Missing or invalid token. |
403 | You are not a member of this project. |
404 | Project not found. |
Delete a dataset
DELETE /projects/:projectId/datasets/:idPermanently removes a dataset entry. Only the user who created the entry or the project manager can delete it.Auth required: YesPath parameters
The dataset ID to delete.
Example request
curl --request DELETE \
--url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/datasets/64b2a3c4d5e6f7a8b9c0d1e2 \
--header 'Authorization: Bearer <token>'
Example response
{
"message": "Dataset deleted successfully."
}
Errors
| Status | Description |
|---|
401 | Missing or invalid token. |
403 | You did not create this entry and are not the project manager. |
404 | Project or dataset not found. |
Experiments
Experiments capture the models and algorithms you tested, the parameters used, the metrics observed, and your conclusions.
List experiments
GET /projects/:projectId/experimentsReturns all experiments logged for the project. Optionally filter by phase.Auth required: YesPath parameters
Query parameters
Filter by CRISP-DM phase.
Response
Returns an array of Experiment objects.Algorithm or model used, e.g. Random Forest, XGBoost.
Hyperparameters or configuration used, as a free-form string or JSON.
Evaluation metric name, e.g. AUC-ROC, F1.
Metric value or result summary.
Interpretation and conclusion drawn from the experiment.
CRISP-DM phase this experiment belongs to.
User who logged the experiment.
ISO 8601 creation timestamp.
Example request
curl --request GET \
--url 'https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/experiments?phase=modeling' \
--header 'Authorization: Bearer <token>'
Example response
[
{
"_id": "64c3b4d5e6f7a8b9c0d1e2f3",
"name": "Baseline Random Forest",
"algorithmModel": "Random Forest",
"parameters": "{\"n_estimators\": 100, \"max_depth\": 10}",
"metric": "AUC-ROC",
"result": "0.82",
"conclusion": "Good baseline. Overfitting detected at depth > 10.",
"phase": "modeling",
"project": "64a1f2c3b4e5d6f7a8b9c0d1",
"createdBy": {
"_id": "64a1f2c3b4e5d6f7a8b9c0d2",
"name": "Ana Torres",
"email": "[email protected]"
},
"createdAt": "2026-03-25T14:00:00.000Z"
}
]
Create an experiment
POST /projects/:projectId/experimentsLogs a new experiment result.Auth required: YesPath parameters
Request body
Hyperparameters or configuration.
Conclusion drawn from the experiment.
CRISP-DM phase. One of: business, data_understanding, data_preparation, modeling, evaluation, deployment.
Example request
curl --request POST \
--url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/experiments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Baseline Random Forest",
"algorithmModel": "Random Forest",
"parameters": "{\"n_estimators\": 100, \"max_depth\": 10}",
"metric": "AUC-ROC",
"result": "0.82",
"conclusion": "Good baseline. Overfitting detected at depth > 10.",
"phase": "modeling"
}'
Errors
| Status | Description |
|---|
400 | Missing or invalid fields. |
401 | Missing or invalid token. |
403 | You are not a member of this project. |
404 | Project not found. |
Delete an experiment
DELETE /projects/:projectId/experiments/:idPermanently removes an experiment entry.Auth required: YesPath parameters
The experiment ID to delete.
Example request
curl --request DELETE \
--url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/experiments/64c3b4d5e6f7a8b9c0d1e2f3 \
--header 'Authorization: Bearer <token>'
Example response
{
"message": "Experiment deleted successfully."
}
Errors
| Status | Description |
|---|
401 | Missing or invalid token. |
403 | You did not create this entry and are not the project manager. |
404 | Project or experiment not found. |
Decisions
Decisions capture the key choices made during the project — what was decided, why, and what alternatives were considered.
List decisions
GET /projects/:projectId/decisionsReturns all decisions logged for the project. Optionally filter by phase.Auth required: YesPath parameters
Query parameters
Filter by CRISP-DM phase.
Response
Returns an array of Decision objects.Reason for making this decision.
Alternatives that were considered, if any.
CRISP-DM phase this decision belongs to.
User who logged the decision.
ISO 8601 creation timestamp.
Example request
curl --request GET \
--url 'https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/decisions?phase=modeling' \
--header 'Authorization: Bearer <token>'
Example response
[
{
"_id": "64d4c5d6e7f8a9b0c1d2e3f4",
"description": "Use AUC-ROC as the primary evaluation metric.",
"justification": "Class imbalance makes accuracy unreliable for this dataset.",
"alternatives": "Precision-recall curve, F1 score.",
"phase": "modeling",
"project": "64a1f2c3b4e5d6f7a8b9c0d1",
"createdBy": {
"_id": "64a1f2c3b4e5d6f7a8b9c0d0",
"name": "Maria Garcia",
"email": "[email protected]"
},
"createdAt": "2026-03-25T15:30:00.000Z"
}
]
Create a decision
POST /projects/:projectId/decisionsLogs a new decision for the project.Auth required: YesPath parameters
Request body
Alternatives that were considered.
CRISP-DM phase. One of: business, data_understanding, data_preparation, modeling, evaluation, deployment.
Example request
curl --request POST \
--url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/decisions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"description": "Use AUC-ROC as the primary evaluation metric.",
"justification": "Class imbalance makes accuracy unreliable for this dataset.",
"alternatives": "Precision-recall curve, F1 score.",
"phase": "modeling"
}'
Errors
| Status | Description |
|---|
400 | Missing or invalid fields. |
401 | Missing or invalid token. |
403 | You are not a member of this project. |
404 | Project not found. |
Delete a decision
DELETE /projects/:projectId/decisions/:idPermanently removes a decision entry.Auth required: YesPath parameters
The decision ID to delete.
Example request
curl --request DELETE \
--url https://api.example.com/projects/64a1f2c3b4e5d6f7a8b9c0d1/decisions/64d4c5d6e7f8a9b0c1d2e3f4 \
--header 'Authorization: Bearer <token>'
Example response
{
"message": "Decision deleted successfully."
}
Errors
| Status | Description |
|---|
401 | Missing or invalid token. |
403 | You did not create this entry and are not the project manager. |
404 | Project or decision not found. |