Skip to main content
POST
Create a custom organization role

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.

Console sessions (Clerk JWTs) act for the signed-in user. To act for a team instead, also send X-Team-Id: <team_id>; it applies only when the user owns or belongs to that team, otherwise the request runs against the user's own account. API keys created inside a team already act for that team and do not need the header.

Body

application/json
name
string
required

Display name, 1–191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed. It must be unique within the organization and cannot be a built-in role's name.

Required string length: 1 - 191
Pattern: [^\t-\r …   - 

   ]
Example:

"Pod viewer"

capabilities
string[]
required

What the role grants, as FAMILY:VERB capabilities from GET /v2/organization/roles/capabilities. The caller must hold every capability it lists.

Minimum array length: 1
Pattern: ^[A-Z0-9_]+:[A-Z0-9_]+$
Example:

Response

Created

A role an organization member or invite can hold: one of Runpod's built-in roles, or a custom role the organization defined.

id
string
required

Role ID, builtin: followed by the role's key.

Example:

"builtin:dev"

name
string
required

Display name.

Example:

"Developer"

type
enum<string>
required

Always builtin for this variant.

Available options:
builtin
capabilities
string[]
required

What the role grants, as FAMILY:VERB capabilities, sorted. A member's effective access can also include account-level access that no role grants.

Example:
Last modified on November 3, 2026