---
title: Code-first (V9.2)
description: DataRobot Release 9.2 announcements for the code-first experience.
---

# Code-first (V9.2) {: #code-first-v92 }

_November 22, 2023_

The DataRobot v9.2 release includes many new features and capabilities for code-first users, described below. See additional details of Release 9.2 in the [data and modeling](v9.2.0-aml) and [MLOps](v9.2.0-mlops) release announcements.

??? abstract "Code-first features"

    Name       |  GA | Public Preview
    ---------- | ---- | ---
    **Notebooks** |  :~~:  | :~~:
    [Schedule notebook jobs](#schedule-notebook-jobs) |  | ✔|
    [Use custom environments in DataRobot Notebooks](#use-custom-environments-in-datarobot-notebooks)|  | ✔ |
	  **API enhancements** |  :~~:  | :~~:
    [DataRobot REST API v2.32](#datarobot-rest-api-v232) | ✔ | |
    [Python client v3.2](#python-client-v32) | ✔ | |

## Notebooks {: #notebooks }

### Public preview {: #public-preview }

#### Schedule notebook jobs {: #schedule-notebook-jobs }

Now available for public preview, you can automate your code-based workflows by scheduling notebooks to run on a schedule in non-interactive mode. Notebook scheduling is managed by notebook jobs. Additionally, you can parameterize a notebook to enhance the automation experience enabled by notebook scheduling. By defining certain values in a notebook as parameters, you can provide inputs for those parameters when a notebook job runs instead of having to continuously modify the notebook itself to change the values for each run.

![](images/nb-sched-4.png)

**Required feature flag:** Enable Notebooks Scheduling

Public preview [documentation](wb-schedule-nb.md).

#### Use custom environments in DataRobot Notebooks {: #use-custom-environments-in-datarobot-notebooks }

Now available for public preview, DataRobot Notebooks is integrated with [DataRobot custom environments](custom-model-environments/index), allowing you to define reusable custom Docker images for running notebook sessions. You can create a custom environment to use for your notebook sessions if you want full control over the environment, and to leverage reproducible dependencies beyond those available in the built-in images.

![](images/nb-custom-env-1.png)

**Required feature flag:** Enable Notebooks Custom Environments

Public preview [documentation](dr-env-nb#custom-environment-images).

## API {: #api }

### GA {: #ga }

### DataRobot REST API v2.32 {: #datarobot-rest-api-v232 }

DataRobot's v2.32 for the REST API is now generally available. For a complete list of changes introduced in v2.31, view the [REST API changelog](rest-log).

#### New features {: #new-features }

- New routes to retrieve document thumbnail insights:
    - `GET /api/v2/projects/(projectId)/documentThumbnails/`
    - `GET /api/v2/projects/(projectId)/documentPages/(documentPageId)/file/`
    - `GET /api/v2/projects/(projectId)/documentThumbnailSamples/`
    - `GET /api/v2/projects/(projectId)/documentThumbnailBins/`
- New routes to compute and retrieve document text extraction sample insights:
    - `POST /api/v2/models/(modelId)/documentTextExtractionSamples/`
    - `GET /api/v2/projects/(projectId)/documentTextExtractionSamples/`
    - `GET /api/v2/models/(modelId)/documentTextExtractionSampleDocuments/`
    - `GET /api/v2/models/(modelId)/documentTextExtractionSamplePages/`
- New routes to retrieve document data quality information:
    - `GET /api/v2/projects/(projectId)/documentsDataQualityLog/`
    - `GET /api/v2/datasets/(datasetId)/documentsDataQualityLog/`
    - `GET /api/v2/datasets/(datasetId)/versions/(datasetVersionId)/documentsDataQualityLog/`
- New routes to retrieve document data quality information as log files:
    - `GET /api/v2/projects/(projectId)/documentsDataQualityLog/file/`
    - `GET /api/v2/datasets/(datasetId)/documentsDataQualityLog/file/`,
    - `GET /api/v2/datasets/(datasetId)/versions/(datasetVersionId)/documentsDataQualityLog/file/`
- New route to retrieve deployment predictions vs actuals over time:
    - `GET /api/v2/deployments/(deploymentId)/predictionsVsActualsOverTime/`
- New routes to managed registered models and registered model versions(previously known as Model Packages):
    - `GET /api/v2/registeredModels/`
    - `GET /api/v2/registeredModels/(registeredModelId)/`
    - `PATCH /api/v2/registeredModels/(registeredModelId)/`
    - `DELETE /api/v2/registeredModels/(registeredModelId)/`
    - `GET /api/v2/registeredModels/(registeredModelId)/versions/`
    - `GET /api/v2/registeredModels/(registeredModelId)/versions/(versionId)/`
    - `PATCH /api/v2/registeredModels/(registeredModelId)/sharedRoles/`
    - `GET /api/v2/registeredModels/(registeredModelId)/sharedRoles/`
    - `GET /api/v2/registeredModels/(registeredModelId)/deployments/`
    - `GET /api/v2/registeredModels/(registeredModelId)/versions/(versionId)/deployments/`
- Added new routes for Use Cases, listed below:
    - `GET /api/v2/useCases/`
    - `POST /api/v2/useCases/`
    - `GET /api/v2/useCases/(useCaseId)/`
    - `PATCH /api/v2/useCases/(useCaseId)/`
    - `DELETE /api/v2/useCases/(useCaseId)/`
    - `GET /api/v2/useCases/(useCaseId)/projects/`
    - `GET /api/v2/useCases/(useCaseId)/applications/`
    - `GET /api/v2/useCases/(useCaseId)/datasets/`
    - `GET /api/v2/useCases/(useCaseId)/notebooks/`
    - `GET /api/v2/useCases/(useCaseId)/playgrounds/`
    - `GET /api/v2/useCases/(useCaseId)/vectorDatabases/`
    - `GET /api/v2/useCases/(useCaseId)/modelsForComparison/`
    - `GET /api/v2/useCases/(useCaseId)/filterMetadata/`
    - `GET /api/v2/useCases/(useCaseId)/resources/`
    - `GET /api/v2/useCases/(useCaseId)/sharedRoles/`
    - `PATCH /api/v2/useCases/(useCaseId)/sharedRoles/`
    - `POST /api/v2/useCases/(useCaseId)/(referenceCollectionType)/(entityId)/`
    - `DELETE /api/v2/useCases/(useCaseId)/(referenceCollectionType)/(entityId)/`

### Python client v3.2 {: #python-client-v32}

v3.2 for DataRobot's Python client is now generally available. For a complete list of changes introduced in v2.31, view the [Python client changelog](python-log).

#### New Features

- Added support for Python 3.11.
- Added new a library, "strenum", to add `StrEnum` support while maintaining backwards compatibility with Python 3.7-3.10. DataRobot does not use the native `StrEnum` class in Python 3.11.
- Added a new class `PredictionEnvironment` for interacting with DataRobot prediction environments.
- Extended the advanced options available when setting a target to include new parameters: `modelGroupId`, `modelRegimeId`, and `modelBaselines` (part of the `AdvancedOptions` object). These parameters allow you to specify the user columns required to run time series models without feature derivation in OTV projects.
- Added a new method `PredictionExplanations.create_on_training_data`, for computing prediction explanation on training data.

- Added a new class `RegisteredModel` for interacting with DataRobot registered models to support the following methods:
  * `RegisteredModel.get` to retrieve a RegisteredModel object by ID.
  * `RegisteredModel.list` to list all registered models.
  * `RegisteredModel.archive` to permanently archive registered model.
  * `RegisteredModel.update` to update registered model.
  * `RegisteredModel.get_shared_roles` to retrieve access control information for a registered model.
  * `RegisteredModel.share` to share a registered model.
  * `RegisteredModel.get_version` to retrieve a RegisteredModelVersion object by ID.
  * `RegisteredModel.list_versions` to list registered model versions.
  * `RegisteredModel.list_associated_deployments` to list deployments associated with a registered model.

- Added a new class `RegisteredModelVersion` for interacting with DataRobot registered model versions (also known as model packages) to support the following methods:
  * `RegisteredModelVersion.create_for_external` to create a new registered model version from an external model.
  * `RegisteredModelVersion.list_associated_deployments` to list deployments associated with a registered model version.
  * `RegisteredModelVersion.create_for_leaderboard_item` to create a new registered model version from a Leaderboard model.
  * `RegisteredModelVersion.create_for_custom_model_version` to create a new registered model version from a custom model version.

- Added a new method `Deployment.create_from_registered_model_version` to support creating deployments from a registered model version.
- Added a new method `Deployment.download_model_package_file` to support downloading model package files (.mlpkg) of the currently deployed model.

- Added support for retrieving document thumbnails:
  - `DocumentThumbnail <datarobot.models.documentai.document.DocumentThumbnail>`
  - `DocumentPageFile <datarobot.models.documentai.document.DocumentPageFile>`

- Added support to retrieve document text extraction samples using:
  - `DocumentTextExtractionSample`
  - `DocumentTextExtractionSamplePage`
  - `DocumentTextExtractionSampleDocument`

- Added new fields to `CustomTaskVersion` for controlling network policies. The new fields were also added to the response. This can be set with `datarobot.enums.CustomTaskOutgoingNetworkPolicy`.

- Added a new method `BatchPredictionJob.score_with_leaderboard_model` to run batch predictions using a Leaderboard model instead of a deployment.

- Set `IntakeSettings` and `OutputSettings` to use `IntakeAdapters` and `OutputAdapters` enum values respectively for the property `type`.

- Added the method `Deployment.get_predictions_vs_actuals_over_time` to retrieve a deployment's predictions vs actuals over time data.

_All product and company names are trademarks&trade; or registered&reg; trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them_.
