---
title: "Generate a provisioning token (owner/admin session, provider org only)"
method: POST
path: "/v1/orgs/{orgId}/provider/tokens"
tags: ["Provider"]
---

# Generate a provisioning token (owner/admin session, provider org only)

`POST /v1/orgs/{orgId}/provider/tokens`

## Path parameters

- `orgId` string, required

## Request body

- GenerateProvisioningTokenRequest — Every token lives 24 hours from creation and enrolls any number of nodes in that window; neither is a request input. Expired and revoked tokens stay listed for 7 days after creation, then fall out.
  - `name` string
  - `runtime` 'qemu' | 'runc' — Node runtime this token provisions: qemu (VFIO VM host, the default) or runc (GPU-container Pod node). Drives NODE_RUNTIME in the one-command bootstrap.

## Response `200`

Created

- ProvisioningTokenCreated
  - `expiresAt` string, required — 24 hours after creation.
  - `id` string, required
  - `name` string, nullable
  - `nodePool` string
  - `runtime` string — Node runtime this token provisions (qemu | runc).
  - `token` string, required
  - `tokenPrefix` string, required
  - `warning` string, required

## Other responses

- `400` — The request is invalid
- `401` — Missing or invalid API key
- `403` — API key lacks the required scope

---

[API](https://skmtc.net/openrelay/apis/openrelay-api.md) · [All operations](https://skmtc.net/openrelay/apis/openrelay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openrelay/openrelay-api/revisions/aead11372d84/schema)
