NVIDIA Run:ai Workload templates API

This set of endpoints manages workload templates used to define reusable workload configurations across various workload types in the NVIDIA Run:ai platform. Templates help standardize workload definitions for consistent submission and resource usage across projects and users.

Operations 26

GET /api/v1/workload-templates List templates. [Experimental] #
GET /api/v1/workload-templates/name-availability Template name availability #
GET /api/v1/workload-templates/{templateId} Get a template, any type. [Experimental] #
GET /api/v1/workload-templates/count Count templates. [Experimental] #
POST /api/v1/workload-templates/workspaces Create a new workspace template. [Experimental] #
GET /api/v1/workload-templates/workspaces List all workspace templates. [Experimental] #
GET /api/v1/workload-templates/workspaces/{templateId} Retrieve a specific workspace template by ID. [Experimental] #
DELETE /api/v1/workload-templates/workspaces/{templateId} Delete a workspace template by ID. [Experimental] #
PATCH /api/v1/workload-templates/workspaces/{templateId} Patch a workspace template by ID. [Experimental] #
PUT /api/v1/workload-templates/workspaces/{templateId} Update a workspace template by ID. [Experimental] #
POST /api/v1/workload-templates/trainings Create a new training template. [Experimental] #
GET /api/v1/workload-templates/trainings List all training templates. [Experimental] #
GET /api/v1/workload-templates/trainings/{templateId} Retrieve a specific training template by ID. [Experimental] #
DELETE /api/v1/workload-templates/trainings/{templateId} Delete a training template by ID. [Experimental] #
PATCH /api/v1/workload-templates/trainings/{templateId} Patch a training template by ID. [Experimental] #
PUT /api/v1/workload-templates/trainings/{templateId} Update a training template by ID. [Experimental] #
POST /api/v1/workload-templates/distributed Create a new distributed training template. [Experimental] #
GET /api/v1/workload-templates/distributed List all distributed training templates. [Experimental] #
GET /api/v1/workload-templates/distributed/{templateId} Get a specific distributed training template by ID. [Experimental] #
DELETE /api/v1/workload-templates/distributed/{templateId} Delete a distributed training template by ID. [Experimental] #
PATCH /api/v1/workload-templates/distributed/{templateId} Patch a distributed training template by ID. [Experimental] #
PUT /api/v1/workload-templates/distributed/{templateId} Update a distributed training template by ID. [Experimental] #
POST /api/v1/workload-templates/inferences Create a new inference template. [Experimental] #
GET /api/v1/workload-templates/inferences List all inference templates. [Experimental] #
GET /api/v1/workload-templates/inferences/{templateId} Get a specific inference template by ID. [Experimental] #
DELETE /api/v1/workload-templates/inferences/{templateId} Delete an inference template by ID. [Experimental] #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/runai-workload-templates-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

runai-workload-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: latest
  description: '# Introduction


    The NVIDIA Run:ai Control-Plane API reference is a guide that provides an easy-to-use programming interface for adding various tasks to your application, including workload submission, resource management, and administrative operations.


    NVIDIA Run:ai APIs are accessed using *bearer tokens*. To obtain a token, you need to create a **Service account** through the NVIDIA Run:ai user interface.

    To create a service account, in your UI, go to Access → Service Accounts (for organization-level service accounts) or User settings → Access Keys (for user access keys), and create a new one.


    After you have created a new service account, you will need to assign it access rules.

    To assign access rules to the service account, see [Create access rules](https://run-ai-docs.nvidia.com/saas/infrastructure-setup/authentication/accessrules#create-or-delete-rules).

    Make sure you assign the correct rules to your service account. Use the [Roles](https://run-ai-docs.nvidia.com/saas/infrastructure-setup/authentication/roles) to assign the correct access rules.


    To get your access token, follow the instructions in [Request a token](https://run-ai-docs.nvidia.com/saas/reference/api/rest-auth/#request-an-api-token).

    '
  title: NVIDIA Run:ai Access Keys Workload templates API
  x-logo:
    url: https://api.redocly.com/registry/raw/runai-xq8/saas/latest/public/runai-logo-api.png
    altText: NVIDIA Run:ai
    href: https://run.ai
  license:
    name: NVIDIA Run:ai
    url: https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-software-license-agreement/
servers:
- url: https://app.run.ai
security:
- bearerAuth: []
tags:
- name: Workload templates
  description: "This set of endpoints manages workload templates used to define reusable workload configurations across various workload types in the NVIDIA Run:ai platform. \nTemplates help standardize workload definitions for consistent submission and resource usage across projects and users.\n"
paths:
  /api/v1/workload-templates:
    get:
      summary: List templates. [Experimental]
      description: Retrieve all available templates.
      operationId: list_templates1
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      - $ref: '#/components/parameters/ComplyToWorkloadType'
      - $ref: '#/components/parameters/ComplyToReplicaType'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/name-availability:
    get:
      summary: Template name availability
      description: Check if a given template name creates naming conflicts under the given scope. Returns conflict (409) in case the name is not available, or 204 (no content) if it is ok.
      operationId: template_name_availability
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateName'
      - $ref: '#/components/parameters/ScopeType'
      - $ref: '#/components/parameters/ScopeId3'
      responses:
        '204':
          description: The name is available to use
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '409':
          $ref: '#/components/responses/409Conflict'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/{templateId}:
    get:
      summary: Get a template, any type. [Experimental]
      operationId: get_template_by_id1
      description: Retrieve the details of a template using its id.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SupersetTemplate'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/count:
    get:
      summary: Count templates. [Experimental]
      description: Get the total number of templates.
      operationId: count_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/workspaces:
    post:
      summary: Create a new workspace template. [Experimental]
      operationId: create_workspace_template
      description: Create a new workspace template.
      tags:
      - Workload templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceTemplateCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: List all workspace templates. [Experimental]
      description: List all workspace templates.
      operationId: list_workspace_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/workspaces/{templateId}:
    get:
      summary: Retrieve a specific workspace template by ID. [Experimental]
      operationId: get_workspace_template
      description: Retrieve a specific workspace template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplate'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      summary: Delete a workspace template by ID. [Experimental]
      operationId: delete_workspace_template
      description: Delete a workspace template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    patch:
      summary: Patch a workspace template by ID. [Experimental]
      operationId: patch_workspace_template
      description: Patch a workspace template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceTemplatePatchRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      summary: Update a workspace template by ID. [Experimental]
      operationId: update_workspace_template
      description: Update a workspace template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceTemplateUpdateRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/trainings:
    post:
      summary: Create a new training template. [Experimental]
      operationId: create_training_template
      description: Create a new training template.
      tags:
      - Workload templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrainingTemplateCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: List all training templates. [Experimental]
      description: List all training templates.
      operationId: list_training_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/trainings/{templateId}:
    get:
      summary: Retrieve a specific training template by ID. [Experimental]
      operationId: get_training_template
      description: Retrieve a specific training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplate'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      summary: Delete a training template by ID. [Experimental]
      operationId: delete_training_template
      description: Delete a training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    patch:
      summary: Patch a training template by ID. [Experimental]
      operationId: patch_training_template
      description: Patch a training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrainingTemplatePatchRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      summary: Update a training template by ID. [Experimental]
      operationId: update_training_template
      description: Update a training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrainingTemplateUpdateRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrainingTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/distributed:
    post:
      summary: Create a new distributed training template. [Experimental]
      operationId: create_distributed_template
      description: Create a new distributed training template.
      tags:
      - Workload templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistributedTemplateCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: List all distributed training templates. [Experimental]
      description: List all distributed training templates.
      operationId: list_distributed_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      - $ref: '#/components/parameters/ComplyToReplicaType'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/distributed/{templateId}:
    get:
      summary: Get a specific distributed training template by ID. [Experimental]
      operationId: get_distributed_template
      description: Get a specific distributed training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplate'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      summary: Delete a distributed training template by ID. [Experimental]
      operationId: delete_distributed_template
      description: Delete a distributed training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    patch:
      summary: Patch a distributed training template by ID. [Experimental]
      operationId: patch_distributed_template
      description: Patch a distributed training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistributedTemplatePatchRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      summary: Update a distributed training template by ID. [Experimental]
      operationId: update_distributed_template
      description: Update a distributed training template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistributedTemplateUpdateRequest'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributedTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/inferences:
    post:
      summary: Create a new inference template. [Experimental]
      operationId: create_inference_template
      description: Create a new inference template.
      tags:
      - Workload templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InferenceTemplateCreationRequest'
      responses:
        '202':
          description: Request completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferenceTemplate'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    get:
      summary: List all inference templates. [Experimental]
      description: List all inference templates.
      operationId: list_inference_templates
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/SortOrder'
      - $ref: '#/components/parameters/TemplatesSort'
      - $ref: '#/components/parameters/TemplatesFilter'
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/ComplyToProject'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferenceTemplatesListResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/workload-templates/inferences/{templateId}:
    get:
      summary: Get a specific inference template by ID. [Experimental]
      operationId: get_inference_template
      description: Get a specific inference template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InferenceTemplate'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      summary: Delete an inference template by ID. [Experimental]
      operationId: delete_inference_template
      description: Delete an inference template by ID.
      tags:
      - Workload templates
      parameters:
      - $ref: '#/components/parameters/TemplateId'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
components:
  schemas:
    NumWorkers:
      description: the number of workers that will be allocated for running the workload.
      type:
      - integer
      - 'null'
      minimum: 1
    LargeShmRequest:
      description: A large /dev/shm device to mount into a container running the created workload. An shm is a shared file system mounted on RAM.
      type:
      - boolean
      - 'null'
      example: false
    SecretFieldsUpdatable:
      properties:
        mountPath:
          description: Local path within the workload to which the Secret will be mapped to. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
        defaultMode:
          $ref: '#/components/schemas/DefaultMode'
      type:
      - object
      - 'null'
    EnvironmentVariableConfigMap:
      description: Details of the configMap and key use to populate the environment variable
      properties:
        name:
          description: The name of the config-map resource. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          example: my-config-map
          pattern: ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$
        key:
          description: The key in the config-map resource. (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          example: MY_POSTGRES_SCHEMA
          pattern: .*
      type:
      - object
      - 'null'
    ConfigMapInstance:
      allOf:
      - $ref: '#/components/schemas/StorageInstanceName'
      - $ref: '#/components/schemas/ConfigMap'
      - $ref: '#/components/schemas/ExcludeField'
      type:
      - object
      - 'null'
    TemplateUpdateMetaFields:
      required:
      - name
      properties:
        name:
          $ref: '#/components/schemas/TemplateName'
        description:
          $ref: '#/components/schemas/TemplateDescription'
    Ports:
      description: Set of container ports that the workload exposes.
      type:
      - array
      - 'null'
      items:
        $ref: '#/components/schemas/Port'
    GitAuthenticationMethod:
      description: Specifies the authentication method to use when accessing the Git repository. This is required for private repositories - `password` - Authenticate using a username and password. - `ssh-key` - Authenticate using an SSH private key.
      type: string
      minLength: 1
      example: password
      enum:
      - password
      - ssh-key
    HostIpc:
      description: Whether to enable host IPC. Defaults to false.
      type:
      - boolean
      - 'null'
      example: false
    DefaultMode:
      type:
      - string
      - 'null'
      description: 'File permission mode in octal string format. This value must be a 4-digit octal number, representing the default file mode when mounting a Secret or ConfigMap as a volume.

        '
      minLength: 4
      maxLength: 4
      example: '0644'
      pattern: 0[0-7]{3}
    CpuMemoryRequest:
      description: The amount of CPU memory to allocate for this workload (1G, 20M, .etc). The workload will receive at least this amount of memory. Note that the workload will not be scheduled unless the system can guarantee this amount of memory to the workload
      type:
      - string
      - 'null'
      pattern: ^([+]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
      example: 20M
    TrainingTemplateCreationRequest:
      allOf:
      - $ref: '#/components/schemas/TemplateCreationMeta'
      - properties:
          spec:
            $ref: '#/components/schemas/TrainingTemplateSpec'
      - $ref: '#/components/schemas/TemplateAssets'
    GpuDevicesRequest:
      description: Requested number of GPU devices. Currently if more than one device is requested, it is not possible to provide values for gpuMemory or gpuPortion.
      type:
      - integer
      - 'null'
      format: int32
      example: 1
      minimum: 0
    ClusterIdOptional:
      description: The id of the cluster.
      type:
      - string
      - 'null'
      format: uuid
      minLength: 1
      example: 71f69d83-ba66-4822-adf5-55ce55efd210
    PriorityClass:
      description: 'Specifies the priority class for the workload, which determines its scheduling behavior. Valid values are: very-low, low, medium-low, medium, medium-high, high, and very-high. Each workload type has a default priority. To view the default priority for each workload type, use the GET /workload-types endpoint. Once you change the priority from the default value defined for that workload type, the preemptibility field is not automatically updated. Make sure to set the desired preemptibility value.'
      type:
      - string
      - 'null'
      pattern: .*
    Label:
      description: Label details to be populated into the container.
      properties:
        name:
          description: The name of the label (mandatory)
          type:
          - string
          - 'null'
          minLength: 1
          maxLength: 63
          example: stage
          pattern: .*
        value:
          description: The value 

# --- truncated at 32 KB (169 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/runai/refs/heads/main/openapi/runai-workload-templates-api-openapi.yml