# DataRobot Prime

> DataRobot Prime - Learn how to use DataRobot Prime to download executable code that approximates
> models.

This Markdown file sits beside the HTML page at the same path (with a `.md` suffix). It summarizes the topic and lists links for tools and LLM context.

Companion generated at `2026-05-06T18:17:09.598759+00:00` (UTC).

## Primary page

- [DataRobot Prime](https://docs.datarobot.com/en/docs/api/dev-learning/python/modeling/prime.html): Full documentation for this topic (HTML).

## Sections on this page

- [Approximate a model](https://docs.datarobot.com/en/docs/api/dev-learning/python/modeling/prime.html#approximate-a-model): In-page section heading.
- [Prime models vs. models](https://docs.datarobot.com/en/docs/api/dev-learning/python/modeling/prime.html#prime-models-vs-models): In-page section heading.
- [Retrieving Code from a PrimeModel](https://docs.datarobot.com/en/docs/api/dev-learning/python/modeling/prime.html#retrieving-code-from-a-primemodel): In-page section heading.

## Related documentation

- [Developer documentation](https://docs.datarobot.com/en/docs/api/index.html): Linked from this page.
- [Developer learning](https://docs.datarobot.com/en/docs/api/dev-learning/index.html): Linked from this page.
- [Python API client user guide](https://docs.datarobot.com/en/docs/api/dev-learning/python/index.html): Linked from this page.
- [Modeling](https://docs.datarobot.com/en/docs/api/dev-learning/python/modeling/index.html): Linked from this page.

## Documentation content

> [!NOTE] Availability information
> The ability to create new DataRobot Prime models has been removed. This does not affect existing Prime models or deployments. To export Python code in the future, use the Python code export function in any RuleFit model.

DataRobot Prime allows the download of executable code approximating models.
For more information about this feature, see the documentation within the DataRobot webapp.
Contact your Account Executive or CFDS for information on enabling DataRobot Prime, if needed.

## Approximate a model

Given a Model you wish to approximate, `Model.request_approximation` will start a job creating several `Ruleset` objects approximating the parent model.
Each of those rulesets will identify how many rules were used to approximate the model, as well as the validation score the approximation achieved.

```
rulesets_job = model.request_approximation()
rulesets = rulesets_job.get_result_when_complete()
for ruleset in rulesets:
    info = (ruleset.id, ruleset.rule_count, ruleset.score)
    print('id: {}, rule_count: {}, score: {}'.format(*info))
```

## Prime models vs. models

Given a ruleset, you can create a model based on that ruleset.
We consider such models to be Prime models.
The `PrimeModel` class inherits from the `Model` class, so anything a Model can do, as PrimeModel can do as well.

The `PrimeModel` objects available within a `Project` can be listed by `project.get_prime_models`, or a particular one can be retrieve via `PrimeModel.get`.
If a ruleset has not yet had a model built for it, `ruleset.request_model` can be used to start a job to make a PrimeModel using a particular ruleset.

```
rulesets = parent_model.get_rulesets()
selected_ruleset = sorted(rulesets, key=lambda x: x.score)[-1]
if selected_ruleset.model_id:
    prime_model = PrimeModel.get(selected_ruleset.project_id, selected_ruleset.model_id)
else:
    prime_job = selected_ruleset.request_model()
    prime_model = prime_job.get_result_when_complete()
```

The `PrimeModel` class has two additional attributes and one additional method.
The attributes are `ruleset`, which is the Ruleset used in the PrimeModel, and `parent_model_id` which is the id of the model it approximates.

Finally, the new method defined is `request_download_validation` which is used to prepare code download for the model and is discussed later on in this document.

## Retrieving Code from a PrimeModel

Given a PrimeModel, you can download the code used to approximate the parent model, and view and execute it locally.

The first step is to validate the PrimeModel, which runs some basic validation of the generated code, as well as preparing it for download.
We use the `PrimeFile` object to represent code that is ready to download.`PrimeFiles` can be prepared by the `request_download_validation` method on `PrimeModel` objects, and listed from a project with the `get_prime_files` method.

Once you have a `PrimeFile` you can check the `is_valid` attribute to verify the code passed basic validation, and then download it to a local file with `download`.

```
validation_job = prime_model.request_download_validation(enums.PRIME_LANGUAGE.PYTHON)
prime_file = validation_job.get_result_when_complete()
if not prime_file.is_valid:
    raise ValueError('File was not valid')
prime_file.download('/home/myuser/drCode/primeModelCode.py')
```
