Preview who gains or loses what before saving a role
POST
/api/v1/workspaces/{workspace}/roles/impact
package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://reputecast.example.com/api/v1/workspaces/acme-newsletter/roles/impact"
payload := strings.NewReader("{ \"permissions\": [ \"example\" ], \"roleId\": \"example\" }")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://reputecast.example.com/api/v1/workspaces/acme-newsletter/roles/impact';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"permissions":["example"],"roleId":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/roles/impact \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "permissions": [ "example" ], "roleId": "example" }'Permission: team:manage (sensitive)
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”workspace
required
Workspace slug
string
Workspace slug
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
permissions
required
Array<string>
roleId
string
Example generated
{ "permissions": [ "example" ], "roleId": "example"}Responses
Section titled “Responses”OK
Media typeapplication/json
object
added
required
Array<string>
addedSensitive
required
Array<string>
agents
required
MCP agents that lose permissions
integer format: int64
apiKeys
required
API keys that lose permissions
integer format: int64
approvals
required
string
graceDays
required
integer format: int64
keys
required
Array<object>
object
effect
required
string
id
required
string
kind
required
string
loses
required
Array<string>
name
required
string
locked
required
Array<object>
object
key
required
string
reason
required
string
members
required
Array<object>
object
avatarColor
required
string
effect
required
string
email
required
string
gains
required
Array<string>
id
required
string
loses
required
Array<string>
name
required
string
twoFactor
string
membersAffected
required
integer format: int64
pendingApprovals
required
integer format: int64
pendingRequests
required
Array<object>
object
requester
required
string
stillMatches
required
Array<string>
subject
required
string
removed
required
Array<string>
removedSensitive
required
Array<string>
sensitive
required
string
summary
required
string
Example
{ "keys": [ { "kind": "api_key" } ], "members": [ { "twoFactor": "required" } ]}default
Section titled “default”Error
Media typeapplication/problem+json
object
code
Stable error code, e.g. permission_denied
string
detail
A human-readable explanation specific to this occurrence of the problem.
string
errors
Optional list of individual error details
Array<object>
object
location
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
string
message
Error message text
string
value
The value at the given location
helpers
Members who hold the missing permission
Array<string>
instance
A URI reference that identifies the specific occurrence of the problem.
string format: uri
meta
object
key
additional properties
permission
The missing permission key
string
status
HTTP status code
integer format: int64
title
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
string
type
A URI reference to human-readable documentation for the error.
string format: uri
Example
{ "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}