Skip to main content
POST
/
role
/
upsert
Create or update a role
curl --request POST \
  --url 'https://api.flashcat.cloud/role/upsert?app_key=' \
  --header 'Content-Type: application/json' \
  --data '
{
  "role_name": "On-call Manager",
  "description": "Manage on-call rotations and incidents.",
  "permission_ids": [
    501,
    502
  ]
}
'
{
  "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
  "data": {
    "role_id": 150,
    "role_name": "On-call Manager"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.flashcat.cloud/llms.txt

Use this file to discover all available pages before exploring further.

Restrictions

AspectValue
Rate limits1,000 requests/minute; 50 requests/second per account
PermissionsRoles Manage (organization)

Usage

  • Omit role_id (or set to 0) to create; pass an existing ID to update.
  • role_name must be 1–39 characters and unique within the account.
  • permission_ids sets the full permission set for the role, replacing any previous assignment.
  • Every call is recorded in the account audit log. Don’t put secrets in request fields.

Authorizations

app_key
string
query
required

App key issued from the Flashduty console under Account → APP Keys. Required on every public API call. Keep it secret — it grants the same access as the owning account.

Body

application/json

Parameters for creating or updating a custom role.

role_name
string
required

Role display name. 1–39 characters.

Required string length: 1 - 39
role_id
integer<uint64>

Role ID. Omit or set to 0 to create.

description
string

Role description.

Maximum string length: 499
permission_ids
integer<uint64>[]

Permission IDs to grant. Replaces the existing set.

Response

Success

Success response envelope. On every 2xx response, request_id identifies the call (also mirrored in the Flashcat-Request-Id header) and data holds the endpoint-specific payload. Failure responses use a different shape — see ErrorResponse.

request_id
string
required

Unique ID for this request. Mirrored in the Flashcat-Request-Id response header. Include it when reporting issues.

Example:

"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"

data
object
required

Role create/update result.