SaaSFlow
DevelopersAPIReferenceaccess_requests

Change role

Ask the person to approve changing another member's role or permissions. Needs a connection the person allowed to manage company settings (saasflow:admin)…

Authentication

Checking whether you're signed in…
POST
/companies/{companyId}/access_requests/change_role

Authorization

headerAuthorization<token>

A SaaSFlow API key (format sf_…) or an OAuth bearer token. Paste only the key — the proxy adds the Bearer prefix. Create an API key in Settings → Company settings → API keys — see API keys.

Path Parameters

companyId*string
Length1 <= length

Request Body

application/json
  1. body
userId*string

The member's user id, from the users list of companies_get.

Formatuuid
role*string

The role assigned to a user within the system. Owner = full access incl. company settings, billing, and user management; editor = read/write on data; viewer = read-only. The role is also used as the default permission preset and as a non-permission marker (e.g. notifications are sent to all owners). For granular API access control, see PermissionSchema.

Value in"owner""editor""viewer"
permissions?array<>|

An exact permission list; null resets to the role preset; omitted keeps the current list.

Response Body

Waiting for the person to approve

application/json
  1. response
id*string
action*string
params*
status*string

pending until the person decides; succeeded, failed (see result.error), rejected, or expired after an hour without a decision.

Value in"pending""executing""succeeded""failed""rejected""expired"
result*|null
url*string

Where the person reviews and approves the request.

createdTime*string
expiresTime*string
decidedTime*string|null
nextAction*string

What to do with the link.

Example Request
curl -X POST 'https://api.saasflow.com/companies/string/access_requests/change_role' \  -H 'Content-Type: application/json' \  -d '{  "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",  "role": "owner"}'
Example Response
{  "id": "string",  "action": "string",  "params": {    "property1": null,    "property2": null  },  "status": "pending",  "result": {    "apiKeyId": "string",    "error": "string"  },  "url": "string",  "createdTime": "string",  "expiresTime": "string",  "decidedTime": "string",  "nextAction": "string"}