Skip to main content
POST

Authorizations

Authorization
string
header
required

Runpod API key authentication. Generate an API key in the Runpod console and send it in the Authorization header as Bearer <api_key>. Keys are scoped to the permissions granted when created; requests may return 403 when a valid key lacks access to the requested resource or action.

Body

application/json

Reusable container configuration shared across templates, pods, and serverless endpoints. Adding a field here automatically propagates to all three resources.

name
string
required
Minimum string length: 1
Example:

"my-inference"

scaling
object
required

Autoscaling signal — a discriminated union on type: QUEUE_DELAY (queue-based endpoints only) or REQUEST_COUNT. The scaler is chosen independently of the endpoint's routing type and can be switched on update.

type
enum<string>
required

Request-routing model. Required — it determines the valid scaler and request URLs, so it must be chosen explicitly on every create.

Available options:
QUEUE,
LOAD_BALANCER
args
string

Arguments passed to the container entrypoint

Example:

""

disk
integer

Container disk in GB (ephemeral, wiped on restart)

Required range: x >= 1
Example:

50

env
object

Environment variables as key-value pairs

Example:
image
string

Docker image reference

Example:

"runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404"

ports
string[]

Exposed ports, formatted as port/protocol

Example:
registry
string | null

Container registry credential ID (for private images)

Example:

null

gpu
object

GPU request for an endpoint create. Carries the CUDA constraints, which live here rather than at the body's top level so they are unrepresentable on a CPU endpoint.

cpu
object[]

Eligible CPU configurations for each worker. Memory is derived from the selected flavor's catalog RAM multiplier. Exact duplicate configurations are rejected; the same flavor may be listed at different vCPU counts.

Minimum array length: 1
dataCenterIds
string[]

Preferred data centers for placement. Omit or pass an empty array to let the scheduler choose.

flashboot
enum<string>
default:OFF

FlashBoot cold-start acceleration mode.

  • OFF — disabled
  • FLASHBOOT — enabled
  • PRIORITY_FLASHBOOT — enabled with priority capacity
Available options:
OFF,
FLASHBOOT,
PRIORITY_FLASHBOOT
networkVolumes
string[]
templateId
string

ID of a serverless template to base this endpoint on. The template is resolved at create time into the same container settings you could otherwise spread into this body (image, args, disk, ports, env, registry); explicit body fields override the template's, except env, which is merged per key with body values winning. The template's allowedCudaVersions seeds gpu.allowedCudaVersions when the body omits it — but only for a GPU create, since a CPU endpoint has no gpu block to seed into, and not when the body sets gpu.minCudaVersion, since seeding a set beside a floor would manufacture the mutual-exclusion 400 from a valid request. Its pod-specific startSsh/startJupyter flags are ignored. Later template edits do not affect the endpoint. The template may be one of your own or a public catalog template — see GET /v2/catalog/templates (unknown or inaccessible ID → 404) — and must be a serverless template (→ 422).

Minimum string length: 1
Example:

"30zmvf89kd"

timeout
integer
default:300000
workers
object

Response

Created

Reusable container configuration shared across templates, pods, and serverless endpoints. Adding a field here automatically propagates to all three resources.

id
string
required
Example:

"ep_abc123"

name
string
required
Example:

"my-inference"

workers
object
required
scaling
object
required

Autoscaling signal — a discriminated union on type: QUEUE_DELAY (queue-based endpoints only) or REQUEST_COUNT. The scaler is chosen independently of the endpoint's routing type and can be switched on update.

dataCenterIds
string[]
required
Example:
networkVolumes
string[]
required
Example:
timeout
integer
required

Per-request execution timeout in milliseconds

Example:

300000

flashboot
enum<string>
required

FlashBoot cold-start acceleration mode.

  • OFF — disabled
  • FLASHBOOT — enabled
  • PRIORITY_FLASHBOOT — enabled with priority capacity
Available options:
OFF,
FLASHBOOT,
PRIORITY_FLASHBOOT
createdAt
string<date-time>
required
Example:

"2026-03-13T20:00:00Z"

args
string

Arguments passed to the container entrypoint

Example:

""

disk
integer

Container disk in GB (ephemeral, wiped on restart)

Required range: x >= 1
Example:

50

env
object

Environment variables as key-value pairs

Example:
image
string

Docker image reference

Example:

"runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404"

ports
string[]

Exposed ports, formatted as port/protocol

Example:
registry
string | null

Container registry credential ID (for private images)

Example:

null

type
enum<string>

Request-routing semantics for a modern serverless endpoint.

  • QUEUE — submit asynchronous or synchronous jobs through the managed queue.
  • LOAD_BALANCER — send requests directly to worker-defined HTTP paths. Configure via env: PORT (server port, default 80), PORT_HEALTH (health-check port, default 80), and HEALTH_CHECK_PATH (path the load balancer polls for worker health, default /ping).
Available options:
QUEUE,
LOAD_BALANCER
requestUrls
object

Request URLs appropriate to the endpoint's top-level type. Queue-based endpoints provide job submission and management URLs; load-balancing endpoints provide base and health because their remaining paths are worker-defined.

gpu
object | null
cpu
object[]

Eligible CPU configurations for each worker, in the order they were submitted. Present for CPU endpoints and omitted for GPU endpoints. Memory is derived from the selected flavor's catalog RAM multiplier.

Minimum array length: 1
Last modified on July 28, 2026