Skip to content
Docs
Roles

Create role

Create role

client.zones.roles.create(stringzoneID, RoleCreateParams { identifier, description } body, RequestOptionsoptions?): Role { id, created_at, identifier, 4 more }
POST/zones/{zoneId}/roles

Creates a new customer-owned role in the specified zone. The owner_type is always customer; platform roles are managed by Keycard.

ParametersExpand Collapse
zoneID: string
body: RoleCreateParams { identifier, description }
identifier: string

Role identifier: a lowercase slug (letters and digits separated by single hyphens or underscores), unique per owner type within a zone. Role identifiers surface in policy evaluation, so the slug restriction keeps them unambiguous in policy text.

minLength1
maxLength255
description?: string

Human-readable description

maxLength1000
ReturnsExpand Collapse
Role { id, created_at, identifier, 4 more }

A role that can be assigned to users within a zone.

id: string

Unique identifier of the role

created_at: string

Entity creation timestamp

formatdate-time
identifier: string

Role identifier: a lowercase slug (letters and digits separated by single hyphens or underscores), unique per owner type within a zone. Role identifiers surface in policy evaluation, so the slug restriction keeps them unambiguous in policy text.

minLength1
maxLength255
owner_type: "platform" | "customer"

Who owns this role. Platform-owned roles are managed by Keycard and cannot be modified or deleted via the API; customer-owned roles are user-created.

Accepts one of the following:
"platform"
"customer"
updated_at: string

Entity update timestamp

formatdate-time
zone_id: string

Zone this role belongs to

description?: string | null

Human-readable description

maxLength1000

Create role

import KeycardAPI from '@keycardai/api';

const client = new KeycardAPI({
  apiKey: process.env['KEYCARD_API_API_KEY'], // This is the default and can be omitted
});

const role = await client.zones.roles.create('zoneId', { identifier: 'identifier' });

console.log(role.id);
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "identifier": "identifier",
  "owner_type": "platform",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "zone_id": "zone_id",
  "description": "description"
}
Returns Examples
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "identifier": "identifier",
  "owner_type": "platform",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "zone_id": "zone_id",
  "description": "description"
}