Create a serverless endpoint
Creates a serverless endpoint. Specify gpu for compute (CPU
serverless endpoints are read-only). Container settings come from the
body, from a serverless template referenced by templateId (body
fields override the template’s), or both; image is required unless
templateId is set. See CreateEndpointRequest for the full body.
Returns 201 with the created endpoint. The endpoint can accept jobs
immediately, but starts with no active workers unless workers.min
is greater than 0. Workers are provisioned on demand and autoscaled
between workers.min and workers.max according to the scaling
policy, so the first request to an idle endpoint may incur cold-start
latency while a worker pulls its image and boots.
Authorizations
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
Reusable container configuration shared across templates, pods, and serverless endpoints. Adding a field here automatically propagates to all three resources.
1"my-inference"
Request-routing model. Required — it determines the valid scaler and request URLs, so it must be chosen explicitly on every create.
QUEUE, LOAD_BALANCER 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.
- Option 1
- Option 2
Docker image reference
"runpod/pytorch:2.8.0-py3.11-cuda12.8.1"
Arguments passed to the container entrypoint
""
Container disk in GB (ephemeral, wiped on restart)
x >= 150
Exposed ports, formatted as port/protocol
Environment variables as key-value pairs
Container registry credential ID (for private images)
null
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 the endpoint's when the body omits
it; 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).
1"30zmvf89kd"
Preferred data centers for placement. Omit or pass an empty array to let the scheduler choose.
FlashBoot cold-start acceleration mode.
OFF— disabledFLASHBOOT— enabledPRIORITY_FLASHBOOT— enabled with priority capacity
OFF, FLASHBOOT, PRIORITY_FLASHBOOT Acceptable CUDA versions for worker placement, as
major.minor. Omit to accept any version (or inherit the
template's constraint when creating from templateId).
Matching is exact — discover valid values per GPU type via
GET /v2/catalog/gpus?include=AVAILABILITY (cudaVersions).
^\d+\.\d+$Response
Created
Reusable container configuration shared across templates, pods, and serverless endpoints. Adding a field here automatically propagates to all three resources.
"ep_abc123"
"my-inference"
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.
- Option 1
- Option 2
Per-request execution timeout in milliseconds
300000
FlashBoot cold-start acceleration mode.
OFF— disabledFLASHBOOT— enabledPRIORITY_FLASHBOOT— enabled with priority capacity
OFF, FLASHBOOT, PRIORITY_FLASHBOOT Acceptable CUDA versions for worker placement, as major.minor. Empty means any version.
"2026-03-13T20:00:00Z"
Docker image reference
"runpod/pytorch:2.8.0-py3.11-cuda12.8.1"
Arguments passed to the container entrypoint
""
Container disk in GB (ephemeral, wiped on restart)
x >= 150
Exposed ports, formatted as port/protocol
Environment variables as key-value pairs
Container registry credential ID (for private images)
null
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 viaenv:PORT(server port, default 80),PORT_HEALTH(health-check port, default 80), andHEALTH_CHECK_PATH(path the load balancer polls for worker health, default/ping).
QUEUE, LOAD_BALANCER 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.
- Option 1
- Option 2
Read-only. Present for CPU serverless endpoints; CPU create/update is not yet supported.