> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo-platform/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo-platform/_mcp/server.

# Data Designer SDK Resources

The `data_designer.config` module provides a consistent, context-agnostic experience for building Data Designer configs.
Once you are ready to execute that config through NeMo Services APIs, you use objects from the `nemo_platform` SDK.
This page explains the SDK objects used for Data Designer API execution.

## DataDesignerResource

The `DataDesignerResource` is the initial SDK object for working with Data Designer through the SDK.
It provides Data Designer API preview and create operations for Data Designer configurations.

A `DataDesignerResource` is accessed directly from a `NeMoPlatform` instance:

```python
import os
from nemo_platform import NeMoPlatform

client = NeMoPlatform(
    base_url=os.environ.get("NMP_BASE_URL", "http://localhost:8080"),
    workspace="default",
)
data_designer = client.data_designer  # this object is a DataDesignerResource
```

The `DataDesignerResource` is primarily used to make Data Designer API preview requests (`preview`) and create jobs (`create`),
but exposes some additional useful methods:

| Method                            | Description                                                                                                                               |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `get_default_model_providers()`   | Returns a list of model providers registered with the Models API and Inference Gateway API that can be used in your Data Designer config. |
| `get_job_resource(job_name: str)` | Returns a `DataDesignerJobResource` for interacting with a job (see below).                                                               |

## DataDesignerJobResource

The `DataDesignerJobResource` provides several helper methods for working with a job.
It is returned by the `DataDesignerResource.create()` method when you create a job;
you can also use `DataDesignerResource.get_job_resource()` to get an instance of this object for an existing job.

Some of the most useful methods are described below.

| Method                 | Description                                                                                        |
| ---------------------- | -------------------------------------------------------------------------------------------------- |
| `wait_until_done()`    | Polls the job service until the job reaches a terminal state. Prints job logs along the way.       |
| `get_logs()`           | Returns logs from the job as a list of dicts. Handles pagination automatically.                    |
| `download_artifacts()` | Downloads the job results as a tar archive. Returns a `DataDesignerJobResults` object (see below). |

## DataDesignerJobResults

The `DataDesignerJobResults` object simplifies loading downloaded job results into memory.

| Method                                        | Description                                                                                   |
| --------------------------------------------- | --------------------------------------------------------------------------------------------- |
| `load_analysis()`                             | Returns a `DatasetProfilerResults` object (from the library) with an analysis of the dataset. |
| `load_dataset()`                              | Returns the output dataset as a Pandas DataFrame.                                             |
| `load_processor_dataset(processor_name: str)` | Returns the named processor dataset as a Pandas DataFrame.                                    |