> For the complete documentation index, see [llms.txt](https://docs.ai.neevcloud.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ai.neevcloud.com/api-reference/gpu-instance/custom-airuntime-templates.md).

# Custom AIRuntime Templates

Create and manage **Custom Templates** — organization-scoped container configurations built from your own private images. Custom templates let you standardize your team's GPU environment and reuse it across multiple GPU Instances.

## List custom AIRuntime Templates

> Retrieves a list of custom AIRuntime Templates for the organization.

```json
{"openapi":"3.0.3","info":{"title":"GPU Instance API","version":"0.1.0"},"tags":[{"name":"Custom AIRuntime Templates","description":"Create and manage **Custom Templates** — organization-scoped container configurations built from your own private images. Custom templates let you standardize your team's GPU environment and reuse it across multiple GPU Instances.\n"}],"servers":[{"url":"https://api.ai.neevcloud.com/gpu","description":"Consolidated public API gateway"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Obtain an **`access_token`** from `POST /api/v1/auth/login` on the tenant API (same credentials as the console). In Authorize, paste **only that token** — do not prepend `Bearer`, and do not use inference keys (`sk-nc-*`).\n"}},"schemas":{"CustomTemplateListResponse":{"type":"object","description":"List of custom AIRuntime Templates.","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CustomTemplateResponse"}}}},"CustomTemplateResponse":{"type":"object","description":"Represents a custom AIRuntime Template owned by an organization.","required":["id","name","description","image","owner_org_id","status","created_at"],"properties":{"id":{"type":"string","readOnly":true,"description":"Unique identifier for the template."},"name":{"type":"string","description":"Name of the template."},"description":{"type":"string","description":"Human-readable description."},"image":{"type":"string","description":"Container image reference."},"oci_registry_username":{"type":"string","nullable":true,"description":"Registry username (if set)."},"apps":{"type":"array","description":"Exposed applications.","items":{"$ref":"#/components/schemas/AppSpec"}},"owner_org_id":{"type":"string","description":"Organization that owns this template."},"created_by":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"UUID of the user who created the template."},"category":{"type":"string","nullable":true,"description":"Optional category classifying the template (e.g. LLM, Diffusion, Vision)."},"created_at":{"type":"string","format":"date-time","readOnly":true,"description":"Creation timestamp."}}},"AppSpec":{"type":"object","description":"Defines an application available in the template.","required":["name","port","protocol","isUI"],"properties":{"name":{"type":"string","description":"The name of the application."},"port":{"type":"integer","format":"int32","description":"The port number for the application."},"protocol":{"type":"string","enum":["HTTP","TCP","UDP","WebSocket"],"description":"The network protocol used by the application."},"isUI":{"type":"boolean","description":"Whether this application provides a user interface."}}},"ErrorResponse":{"type":"object","description":"A standard format for error responses.","properties":{"code":{"type":"string","description":"A machine-readable error code."},"message":{"type":"string","description":"A human-readable message providing details about the error."}},"required":["code","message"]}}},"paths":{"/api/v1beta1/orgs/{org_id}/airuntime-templates":{"get":{"tags":["Custom AIRuntime Templates"],"summary":"List custom AIRuntime Templates","description":"Retrieves a list of custom AIRuntime Templates for the organization.","operationId":"listOrgAIRuntimeTemplates","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"type":"string"},"description":"The organization identifier."}],"responses":{"200":{"description":"A list of custom AIRuntime Templates.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTemplateListResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Create a custom AIRuntime Template

> Creates a new custom AIRuntime Template scoped to the organization. The image is validated asynchronously; the template starts as 'Inactive' and is only switched to 'Active' once validation passes.

```json
{"openapi":"3.0.3","info":{"title":"GPU Instance API","version":"0.1.0"},"tags":[{"name":"Custom AIRuntime Templates","description":"Create and manage **Custom Templates** — organization-scoped container configurations built from your own private images. Custom templates let you standardize your team's GPU environment and reuse it across multiple GPU Instances.\n"}],"servers":[{"url":"https://api.ai.neevcloud.com/gpu","description":"Consolidated public API gateway"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Obtain an **`access_token`** from `POST /api/v1/auth/login` on the tenant API (same credentials as the console). In Authorize, paste **only that token** — do not prepend `Bearer`, and do not use inference keys (`sk-nc-*`).\n"}},"schemas":{"CustomTemplateRequest":{"type":"object","description":"Request body for creating a custom AIRuntime Template.","required":["name","description","image","category"],"properties":{"name":{"type":"string","description":"Unique name within the organization (3–100 chars). Letters, numbers, spaces, hyphens, underscores allowed.","minLength":3,"maxLength":100},"description":{"type":"string","description":"Human-readable description of the template."},"image":{"type":"string","description":"Fully-qualified OCI image reference including a mandatory tag or digest (e.g. ghcr.io/org/image:v1)."},"oci_registry_username":{"type":"string","description":"Registry username for private registries (optional)."},"oci_registry_token":{"type":"string","writeOnly":true,"description":"Access token for private registries. Never returned in any API response."},"category":{"type":"string","description":"Category to classify the template (e.g. LLM, Diffusion, Vision)."}}},"CustomTemplateResponse":{"type":"object","description":"Represents a custom AIRuntime Template owned by an organization.","required":["id","name","description","image","owner_org_id","status","created_at"],"properties":{"id":{"type":"string","readOnly":true,"description":"Unique identifier for the template."},"name":{"type":"string","description":"Name of the template."},"description":{"type":"string","description":"Human-readable description."},"image":{"type":"string","description":"Container image reference."},"oci_registry_username":{"type":"string","nullable":true,"description":"Registry username (if set)."},"apps":{"type":"array","description":"Exposed applications.","items":{"$ref":"#/components/schemas/AppSpec"}},"owner_org_id":{"type":"string","description":"Organization that owns this template."},"created_by":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"UUID of the user who created the template."},"category":{"type":"string","nullable":true,"description":"Optional category classifying the template (e.g. LLM, Diffusion, Vision)."},"created_at":{"type":"string","format":"date-time","readOnly":true,"description":"Creation timestamp."}}},"AppSpec":{"type":"object","description":"Defines an application available in the template.","required":["name","port","protocol","isUI"],"properties":{"name":{"type":"string","description":"The name of the application."},"port":{"type":"integer","format":"int32","description":"The port number for the application."},"protocol":{"type":"string","enum":["HTTP","TCP","UDP","WebSocket"],"description":"The network protocol used by the application."},"isUI":{"type":"boolean","description":"Whether this application provides a user interface."}}},"ErrorResponse":{"type":"object","description":"A standard format for error responses.","properties":{"code":{"type":"string","description":"A machine-readable error code."},"message":{"type":"string","description":"A human-readable message providing details about the error."}},"required":["code","message"]}}},"paths":{"/api/v1beta1/orgs/{org_id}/airuntime-templates":{"post":{"tags":["Custom AIRuntime Templates"],"summary":"Create a custom AIRuntime Template","description":"Creates a new custom AIRuntime Template scoped to the organization. The image is validated asynchronously; the template starts as 'Inactive' and is only switched to 'Active' once validation passes.","operationId":"createOrgAIRuntimeTemplate","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"type":"string"},"description":"The organization identifier."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTemplateRequest"}}}},"responses":{"201":{"description":"The custom template was created and image validation has started.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTemplateResponse"}}}},"400":{"description":"Invalid request (validation error or org quota exceeded).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"A template with the same name already exists in this org.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Get a custom AIRuntime Template

> Retrieves the details of a specific custom AIRuntime Template.

```json
{"openapi":"3.0.3","info":{"title":"GPU Instance API","version":"0.1.0"},"tags":[{"name":"Custom AIRuntime Templates","description":"Create and manage **Custom Templates** — organization-scoped container configurations built from your own private images. Custom templates let you standardize your team's GPU environment and reuse it across multiple GPU Instances.\n"}],"servers":[{"url":"https://api.ai.neevcloud.com/gpu","description":"Consolidated public API gateway"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Obtain an **`access_token`** from `POST /api/v1/auth/login` on the tenant API (same credentials as the console). In Authorize, paste **only that token** — do not prepend `Bearer`, and do not use inference keys (`sk-nc-*`).\n"}},"schemas":{"CustomTemplateResponse":{"type":"object","description":"Represents a custom AIRuntime Template owned by an organization.","required":["id","name","description","image","owner_org_id","status","created_at"],"properties":{"id":{"type":"string","readOnly":true,"description":"Unique identifier for the template."},"name":{"type":"string","description":"Name of the template."},"description":{"type":"string","description":"Human-readable description."},"image":{"type":"string","description":"Container image reference."},"oci_registry_username":{"type":"string","nullable":true,"description":"Registry username (if set)."},"apps":{"type":"array","description":"Exposed applications.","items":{"$ref":"#/components/schemas/AppSpec"}},"owner_org_id":{"type":"string","description":"Organization that owns this template."},"created_by":{"type":"string","format":"uuid","nullable":true,"readOnly":true,"description":"UUID of the user who created the template."},"category":{"type":"string","nullable":true,"description":"Optional category classifying the template (e.g. LLM, Diffusion, Vision)."},"created_at":{"type":"string","format":"date-time","readOnly":true,"description":"Creation timestamp."}}},"AppSpec":{"type":"object","description":"Defines an application available in the template.","required":["name","port","protocol","isUI"],"properties":{"name":{"type":"string","description":"The name of the application."},"port":{"type":"integer","format":"int32","description":"The port number for the application."},"protocol":{"type":"string","enum":["HTTP","TCP","UDP","WebSocket"],"description":"The network protocol used by the application."},"isUI":{"type":"boolean","description":"Whether this application provides a user interface."}}},"ErrorResponse":{"type":"object","description":"A standard format for error responses.","properties":{"code":{"type":"string","description":"A machine-readable error code."},"message":{"type":"string","description":"A human-readable message providing details about the error."}},"required":["code","message"]}}},"paths":{"/api/v1beta1/orgs/{org_id}/airuntime-templates/{template_id}":{"get":{"tags":["Custom AIRuntime Templates"],"summary":"Get a custom AIRuntime Template","description":"Retrieves the details of a specific custom AIRuntime Template.","operationId":"getOrgAIRuntimeTemplate","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"type":"string"},"description":"The organization identifier."},{"in":"path","name":"template_id","required":true,"schema":{"type":"string"},"description":"The unique identifier of the template."}],"responses":{"200":{"description":"Detailed information about the custom template.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomTemplateResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Template not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Delete a custom AIRuntime Template

> Permanently deletes a custom AIRuntime Template.

```json
{"openapi":"3.0.3","info":{"title":"GPU Instance API","version":"0.1.0"},"tags":[{"name":"Custom AIRuntime Templates","description":"Create and manage **Custom Templates** — organization-scoped container configurations built from your own private images. Custom templates let you standardize your team's GPU environment and reuse it across multiple GPU Instances.\n"}],"servers":[{"url":"https://api.ai.neevcloud.com/gpu","description":"Consolidated public API gateway"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Obtain an **`access_token`** from `POST /api/v1/auth/login` on the tenant API (same credentials as the console). In Authorize, paste **only that token** — do not prepend `Bearer`, and do not use inference keys (`sk-nc-*`).\n"}},"schemas":{"ErrorResponse":{"type":"object","description":"A standard format for error responses.","properties":{"code":{"type":"string","description":"A machine-readable error code."},"message":{"type":"string","description":"A human-readable message providing details about the error."}},"required":["code","message"]}}},"paths":{"/api/v1beta1/orgs/{org_id}/airuntime-templates/{template_id}":{"delete":{"tags":["Custom AIRuntime Templates"],"summary":"Delete a custom AIRuntime Template","description":"Permanently deletes a custom AIRuntime Template.","operationId":"deleteOrgAIRuntimeTemplate","parameters":[{"in":"path","name":"org_id","required":true,"schema":{"type":"string"},"description":"The organization identifier."},{"in":"path","name":"template_id","required":true,"schema":{"type":"string"},"description":"The unique identifier of the template."}],"responses":{"200":{"description":"The template was deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Template not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ai.neevcloud.com/api-reference/gpu-instance/custom-airuntime-templates.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
