> 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.

# Get Execution Profiles

GET /apis/jobs/v2/execution-profiles

Get all currently configured execution profiles.

Returns the capability-filtered merge from jobs config. In local standalone
the controller may prune the shared list further after registry boot; in
split topologies the API advertises its own merge result (not controller
process memory).

Reference: https://docs.nvidia.com/nemo-platform/nemo-platform/v0.3.0/documentation/reference/api-reference/jobs/get-execution-profiles-apis-jobs-v-2-execution-profiles-get

## Response

### 200

Successful Response

- `list of object or object or object or object or object`
  - DockerJobExecutionProfile
    - `config` (object, required) — Additional configuration for the docker executor
      - `ttl_seconds_before_active` (integer, optional, default: 1800)
      - `ttl_seconds_active` (integer, optional, default: 86400)
      - `ttl_seconds_after_finished` (integer, optional, default: 3600)
      - `cleanup_completed_jobs_immediately` (boolean, optional, default: true)
      - `launcher_tool_path` (string, optional, default: /tools/jobs-launcher) — Path to the jobs launcher tool
      - `default_task_image` (string, optional) — Default container image for job task pods. Used when a job step omits container.image. When unset, falls back to the platform CPU tasks image (platform.image_registry/nmp-cpu-tasks:platform.image_tag).
      - `env` (map from string to string, optional) — Optional env vars applied to all jobs (e.g. HOME=/tmp). Keys must not conflict with platform-reserved names. Job steps may override these variables.
      - `storage` (object, optional) — Docker storage configuration
        - `volume_name` (string, optional, default: nemo-jobs-storage) — Name of the Docker volume for persistent storage
        - `volume_permissions_image` (string, optional, default: docker.io/library/busybox:stable) — Docker image used to set permissions on the volume
        - `additional_volume_mounts` (list of object, optional) — List of additional Docker volume mounts for the job
          - `volume_name` (string, required) — Name of the Docker volume to mount
          - `mount_path` (string, required) — Path inside the container where the volume will be mounted
          - `kind` (enum, optional, default: volume) — Type of the Docker volume to mount. Options are 'volume' or 'tmpfs' (default: 'volume'). tmpfs volumes are only supported on Linux hosts.
            - Allowed values: `volume`, `tmpfs`
          - `options` (map from string to any, optional) — Additional options for the volume
          - `allow_create_volume` (boolean, optional, default: false) — Whether to allow the creation of the volume if it does not exist (default: false).
      - `networking` (object, optional) — Docker networking configuration
        - `job_container_network` (string, optional, default: host) — Docker network for the job container
      - `workload_identity` (object, optional) — Docker workload identity subject-token issuer configuration.
        - `enabled` (boolean, optional) — Enable Docker workload identity token-file injection. Defaults to auth.oidc.workload_token_exchange_enabled.
        - `token_endpoint` (string, optional) — OAuth token endpoint used by the Docker demo issuer. Defaults to auth.oidc.token_endpoint.
        - `client_id` (string, optional) — OAuth client ID used by the Docker demo issuer. Defaults to auth.oidc.workload_client_id or auth.oidc.client_id.
        - `client_secret` (string, optional) — OAuth client secret for the Docker demo issuer.
        - `username` (string, optional) — Username for the Docker demo issuer password grant.
        - `password_env_var` (string, optional, default: AUTHENTIK_WORKLOAD_IDENTITY_PASSWORD) — Controller environment variable that contains the Docker demo issuer password grant shared secret.
        - `scope` (string, optional) — OAuth scope for the Docker demo issuer.
        - `subject_token_ttl_seconds` (integer, optional) — Fallback subject-token lifetime when the Docker demo issuer response omits expires_in.
        - `refresh_margin_seconds` (integer, optional, default: 60) — Seconds before subject-token expiry when the Docker refresher issues a replacement token.
    - `provider` (string, optional, default: cpu) — The compute provider for the executor, e.g., cpu, gpu
    - `profile` (string, optional, default: default) — The profile name for the executor, e.g., high_priority_a100, low_priority, etc.
    - `backend` ("docker", optional, default: docker)
  - KubernetesJobExecutionProfile
    - `config` (object, required) — Additional configuration for the kubernetes executor
      - `ttl_seconds_before_active` (integer, optional, default: 1800)
      - `ttl_seconds_active` (integer, optional, default: 86400)
      - `ttl_seconds_after_finished` (integer, optional, default: 3600)
      - `cleanup_completed_jobs_immediately` (boolean, optional, default: true)
      - `launcher_tool_path` (string, optional, default: /tools/jobs-launcher) — Path to the jobs launcher tool
      - `default_task_image` (string, optional) — Default container image for job task pods. Used when a job step omits container.image. When unset, falls back to the platform CPU tasks image (platform.image_registry/nmp-cpu-tasks:platform.image_tag).
      - `env` (map from string to string, optional) — Optional env vars applied to all jobs (e.g. HOME=/tmp). Keys must not conflict with platform-reserved names. Job steps may override these variables.
      - `namespace` (string, optional) — Kubernetes namespace to submit the job to. If not set, it will be determined from the environment.
      - `service_account_name` (string, optional, default: default) — Kubernetes service account name for job pods. Uses the Kubernetes default service account when set to 'default'.
      - `tolerations` (list of map from string to any, optional) — Tolerations for the Kubernetes job pods.
      - `node_selector` (map from string to string, optional) — Node selector for the Kubernetes job pods.
      - `affinity` (map from string to any, optional) — Affinity for the Kubernetes job pods.
      - `resources` (object, optional) — Resource requests and limits for the Kubernetes job pods.
        - `requests` (object, optional) — Minimum resources requested for the container.
          - `cpu` (string, optional) — CPU specification (e.g., '250m', '1', '2.5').
          - `memory` (string, optional) — Memory specification (e.g., '128Mi', '1Gi', '512M').
        - `limits` (object, optional) — Maximum resources the container can use.
          - `cpu` (string, optional) — CPU specification (e.g., '250m', '1', '2.5').
          - `memory` (string, optional) — Memory specification (e.g., '128Mi', '1Gi', '512M').
        - `num_nodes` (integer, optional, default: 1) — Number of nodes to use.
        - `num_gpus` (integer, optional) — Step requesting number of GPUs.
        - `shm_size` (string, optional) — Shared memory (/dev/shm) size as a Kubernetes quantity (e.g. '1Gi', '4Gi'). Used for GPU and distributed-GPU job executors. When unset, defaults to 1Gi per allocated GPU.
      - `pod_security_context` (map from string to any, optional) — Pod security context for the Kubernetes job pods.
      - `image_pull_secrets` (list of object, optional) — Image pull secrets for the Kubernetes job pods.
        - `name` (string, required) — Kubernetes Secret name for pulling images
      - `job_metadata` (object, optional) — Metadata to add to each job object in the Kubernetes job.
        - `labels` (map from string to string, optional)
        - `annotations` (map from string to string, optional)
      - `pod_metadata` (object, optional) — Metadata to add to each pod in the Kubernetes job.
        - `labels` (map from string to string, optional)
        - `annotations` (map from string to string, optional)
      - `storage` (object, optional) — Storage configuration for the Kubernetes job pods.
        - `pvc_name` (string, optional, default: ) — Persistent Volume Claim Name to use for job storage.
        - `volume_permissions_image` (string, optional, default: docker.io/library/busybox:stable) — Image used to set volume permissions
        - `additional_volumes` (list of object or object or object or object, optional) — Additional volumes to mount
          - object
            - `persistent_volume_claim` (any, required)
          - object
            - `empty_dir` (any, required)
          - object
            - `secret` (any, required)
          - object
            - `config_map` (any, required)
        - `additional_volume_mounts` (list of object, optional) — Additional volume mounts
          - `name` (string, required) — Volume Name
          - `mount_path` (string, required) — Mount Path in the container
          - `sub_path` (string, optional) — Sub-path within the volume to mount
          - `read_only` (boolean, optional, default: false) — Whether the volume mount is read-only
      - `num_gpus` (integer, optional, default: 1) — Number of GPUs to request for the job
      - `scheduler_name` (string, optional, default: ) — The scheduler name to use for the pod spec. When non-empty, this value is applied to the pod's schedulerName field, enabling custom schedulers such as KAI Scheduler. Empty string omits schedulerName so the cluster default scheduler is used.
      - `launcher_image` (string, optional, default: nvcr.io/nvidia/nemo-microservices/jobs-launcher:latest) — Container image that contains the jobs-launcher binary.
      - `workload_identity_token_expiration_seconds` (integer, optional, default: 600) — Requested expirationSeconds for the projected service account token used as the workload identity subject token.
      - `workload_identity_token_audience` (string, optional) — Audience for the projected service account token. Defaults to auth.oidc.workload_client_id, auth.oidc.client_id, then 'nemo-platform'.
    - `provider` (string, optional, default: cpu) — The compute provider for the executor, e.g., cpu, gpu
    - `profile` (string, optional, default: default) — The profile name for the executor, e.g., high_priority_a100, low_priority, etc.
    - `backend` ("kubernetes_job", optional, default: kubernetes_job)
  - VolcanoJobExecutionProfile
    - `config` (object, required) — Additional configuration for the kubernetes executor
      - `ttl_seconds_before_active` (integer, optional, default: 1800)
      - `ttl_seconds_active` (integer, optional, default: 86400)
      - `ttl_seconds_after_finished` (integer, optional, default: 3600)
      - `cleanup_completed_jobs_immediately` (boolean, optional, default: true)
      - `launcher_tool_path` (string, optional, default: /tools/jobs-launcher) — Path to the jobs launcher tool
      - `default_task_image` (string, optional) — Default container image for job task pods. Used when a job step omits container.image. When unset, falls back to the platform CPU tasks image (platform.image_registry/nmp-cpu-tasks:platform.image_tag).
      - `env` (map from string to string, optional) — Optional env vars applied to all jobs (e.g. HOME=/tmp). Keys must not conflict with platform-reserved names. Job steps may override these variables.
      - `namespace` (string, optional) — Kubernetes namespace to submit the job to. If not set, it will be determined from the environment.
      - `service_account_name` (string, optional, default: default) — Kubernetes service account name for job pods. Uses the Kubernetes default service account when set to 'default'.
      - `tolerations` (list of map from string to any, optional) — Tolerations for the Kubernetes job pods.
      - `node_selector` (map from string to string, optional) — Node selector for the Kubernetes job pods.
      - `affinity` (map from string to any, optional) — Affinity for the Kubernetes job pods.
      - `resources` (object, optional) — Resource requests and limits for the Kubernetes job pods.
        - `requests` (object, optional) — Minimum resources requested for the container.
          - `cpu` (string, optional) — CPU specification (e.g., '250m', '1', '2.5').
          - `memory` (string, optional) — Memory specification (e.g., '128Mi', '1Gi', '512M').
        - `limits` (object, optional) — Maximum resources the container can use.
          - `cpu` (string, optional) — CPU specification (e.g., '250m', '1', '2.5').
          - `memory` (string, optional) — Memory specification (e.g., '128Mi', '1Gi', '512M').
        - `num_nodes` (integer, optional, default: 1) — Number of nodes to use.
        - `num_gpus` (integer, optional) — Step requesting number of GPUs.
        - `shm_size` (string, optional) — Shared memory (/dev/shm) size as a Kubernetes quantity (e.g. '1Gi', '4Gi'). Used for GPU and distributed-GPU job executors. When unset, defaults to 1Gi per allocated GPU.
      - `pod_security_context` (map from string to any, optional) — Pod security context for the Kubernetes job pods.
      - `image_pull_secrets` (list of object, optional) — Image pull secrets for the Kubernetes job pods.
        - `name` (string, required) — Kubernetes Secret name for pulling images
      - `job_metadata` (object, optional) — Metadata to add to each job object in the Kubernetes job.
        - `labels` (map from string to string, optional)
        - `annotations` (map from string to string, optional)
      - `pod_metadata` (object, optional) — Metadata to add to each pod in the Kubernetes job.
        - `labels` (map from string to string, optional)
        - `annotations` (map from string to string, optional)
      - `storage` (object, optional) — Storage configuration for the Kubernetes job pods.
        - `pvc_name` (string, optional, default: ) — Persistent Volume Claim Name to use for job storage.
        - `volume_permissions_image` (string, optional, default: docker.io/library/busybox:stable) — Image used to set volume permissions
        - `additional_volumes` (list of object or object or object or object, optional) — Additional volumes to mount
          - object
            - `persistent_volume_claim` (any, required)
          - object
            - `empty_dir` (any, required)
          - object
            - `secret` (any, required)
          - object
            - `config_map` (any, required)
        - `additional_volume_mounts` (list of object, optional) — Additional volume mounts
          - `name` (string, required) — Volume Name
          - `mount_path` (string, required) — Mount Path in the container
          - `sub_path` (string, optional) — Sub-path within the volume to mount
          - `read_only` (boolean, optional, default: false) — Whether the volume mount is read-only
      - `num_gpus` (integer, optional, default: 1) — Number of GPUs to request for the job
      - `scheduler_name` (string, optional, default: volcano) — The scheduler name to use for the Volcano job.
      - `launcher_image` (string, optional, default: nvcr.io/nvidia/nemo-microservices/jobs-launcher:latest) — Container image that contains the jobs-launcher binary.
      - `workload_identity_token_expiration_seconds` (integer, optional, default: 600) — Requested expirationSeconds for the projected service account token used as the workload identity subject token.
      - `workload_identity_token_audience` (string, optional) — Audience for the projected service account token. Defaults to auth.oidc.workload_client_id, auth.oidc.client_id, then 'nemo-platform'.
      - `queue` (string, optional, default: default) — The Volcano queue to submit the job to.
      - `max_retry` (integer, optional, default: 0) — maxRetry indicates the maximum number of retries allowed by the job
      - `plugins` (map from string to any, optional) — plugins indicates the plugins used by Volcano when the job is scheduled. We always add the pytorch plugin if more than one node.
      - `enable_multi_node_networking` (boolean, optional, default: true) — Enable multi-node networking injection. Sets annotations to trigger Kyverno policy mutations.
    - `provider` (string, optional, default: cpu) — The compute provider for the executor, e.g., cpu, gpu
    - `profile` (string, optional, default: default) — The profile name for the executor, e.g., high_priority_a100, low_priority, etc.
    - `backend` ("volcano_job", optional, default: volcano_job)
  - SubprocessJobExecutionProfile
    - `provider` ("subprocess", optional, default: subprocess)
    - `profile` (string, optional, default: default) — The profile name for the executor, e.g., high_priority_a100, low_priority, etc.
    - `backend` ("subprocess", optional, default: subprocess)
    - `config` (object, optional) — Additional configuration for the subprocess executor
      - `ttl_seconds_before_active` (integer, optional, default: 1800)
      - `ttl_seconds_active` (integer, optional, default: 86400)
      - `ttl_seconds_after_finished` (integer, optional, default: 3600)
      - `cleanup_completed_jobs_immediately` (boolean, optional, default: false) — Keep subprocess working directories by default so runs remain inspectable.
      - `launcher_tool_path` (string, optional, default: /tools/jobs-launcher) — Path to the jobs launcher tool
      - `default_task_image` (string, optional) — Default container image for job task pods. Used when a job step omits container.image. When unset, falls back to the platform CPU tasks image (platform.image_registry/nmp-cpu-tasks:platform.image_tag).
      - `env` (map from string to string, optional) — Optional env vars applied to all jobs (e.g. HOME=/tmp). Keys must not conflict with platform-reserved names. Job steps may override these variables.
      - `working_directory` (string, optional, default: /tmp/nmp-subprocess-jobs) — Root directory for subprocess job state, config, storage, and logs.
      - `graceful_shutdown_timeout_seconds` (integer, optional, default: 10) — How long to wait after SIGTERM before force killing the process group.
  - E2EJobExecutionProfile
    - `provider` (string, optional, default: cpu) — The compute provider for the executor, e.g., cpu, gpu
    - `profile` (string, optional, default: default) — The profile name for the executor, e.g., high_priority_a100, low_priority, etc.
    - `backend` ("e2e", optional, default: e2e)
    - `config` (object, optional) — Configuration for the e2e test executor
      - `ttl_seconds_before_active` (integer, optional, default: 1800)
      - `ttl_seconds_active` (integer, optional, default: 86400)
      - `ttl_seconds_after_finished` (integer, optional, default: 3600)
      - `cleanup_completed_jobs_immediately` (boolean, optional, default: true)
      - `launcher_tool_path` (string, optional, default: /tools/jobs-launcher) — Path to the jobs launcher tool
      - `default_task_image` (string, optional) — Default container image for job task pods. Used when a job step omits container.image. When unset, falls back to the platform CPU tasks image (platform.image_registry/nmp-cpu-tasks:platform.image_tag).
      - `env` (map from string to string, optional) — Optional env vars applied to all jobs (e.g. HOME=/tmp). Keys must not conflict with platform-reserved names. Job steps may override these variables.

## Examples

**Response**

```json
[
  {
    "provider": "cpu",
    "profile": "default",
    "backend": "docker",
    "config": {
      "ttl_seconds_before_active": 1800,
      "ttl_seconds_active": 86400,
      "ttl_seconds_after_finished": 3600,
      "cleanup_completed_jobs_immediately": true,
      "launcher_tool_path": "/tools/jobs-launcher",
      "default_task_image": "string",
      "env": {},
      "storage": {
        "volume_name": "nemo-jobs-storage",
        "volume_permissions_image": "docker.io/library/busybox:stable",
        "additional_volume_mounts": [
          {
            "volume_name": "string",
            "mount_path": "string",
            "kind": "volume",
            "options": {},
            "allow_create_volume": false
          }
        ]
      },
      "networking": {
        "job_container_network": "host"
      },
      "workload_identity": {
        "enabled": true,
        "token_endpoint": "string",
        "client_id": "string",
        "username": "string",
        "password_env_var": "AUTHENTIK_WORKLOAD_IDENTITY_PASSWORD",
        "scope": "string",
        "subject_token_ttl_seconds": 1,
        "refresh_margin_seconds": 60
      }
    }
  }
]
```

**SDK Code**

```python
import requests

url = "https://api.example.com/apis/jobs/v2/execution-profiles"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.example.com/apis/jobs/v2/execution-profiles';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.example.com/apis/jobs/v2/execution-profiles"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.example.com/apis/jobs/v2/execution-profiles")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.example.com/apis/jobs/v2/execution-profiles")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.example.com/apis/jobs/v2/execution-profiles');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.example.com/apis/jobs/v2/execution-profiles");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.example.com/apis/jobs/v2/execution-profiles")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```