Pangolin (Fossorial) Role API

The Role API from Pangolin (Fossorial) — 15 operation(s) for role.

Business capability
Identity & Access Management BC-620.20

Operations 19

PUT /org/{orgId}/role Replace org by org id role #
POST /user/{userId}/add-role/{roleId} Create user by user id add role by role id #
DELETE /user/{userId}/remove-role/{roleId} Delete user by user id remove role by role id #
POST /client/{clientId}/add-role/{roleId} Create client by client id add role by role id #
DELETE /client/{clientId}/remove-role/{roleId} Delete client by client id remove role by role id #
POST /client/{clientId}/roles Create client by client id roles #
POST /public-resource/{resourceId}/roles Create public resource by resource id roles #
GET /public-resource/{resourceId}/roles Get public resource by resource id roles #
DELETE /role/{roleId} Delete role by role id #
GET /role/{roleId} Get role by role id #
POST /role/{roleId} Create role by role id #
GET /org/{orgId}/roles Get org by org id roles #
POST /public-resource/{resourceId}/roles/add Create public resource by resource id roles add #
POST /public-resource/{resourceId}/roles/remove Create public resource by resource id roles remove #
POST /role/{roleId}/add/{userId} Create role by role id add by user id #
GET /private-resource/{resourceId}/roles Get private resource by resource id roles #
POST /private-resource/{resourceId}/roles Create private resource by resource id roles #
POST /private-resource/{resourceId}/roles/add Create private resource by resource id roles add #
POST /private-resource/{resourceId}/roles/remove Create private resource by resource id roles remove #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/pangolin-net:pangolin-net-role-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

pangolin-net-role-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Pangolin Net Role API
  version: v1
  description: 'Operations tagged Role across 2 of this provider''s published API definitions: pangolin-net-openapi-remote.json, pangolin-net-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: /v1
tags:
- name: Role
paths:
  /org/{orgId}/role:
    put:
      description: Create a role.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: orgId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                description:
                  type: string
                requireDeviceApproval:
                  type: boolean
                allowSsh:
                  type: boolean
                sshSudoMode:
                  type: string
                  enum:
                  - none
                  - full
                  - commands
                sshSudoCommands:
                  type: array
                  items:
                    type: string
                sshCreateHomeDir:
                  type: boolean
                sshUnixGroups:
                  type: array
                  items:
                    type: string
              required:
              - name
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Replace org by org id role
      x-summary-source: derived
      operationId: putOrgByOrgIdRole
      x-operation-id-source: derived
    servers:
    - url: /v1
  /user/{userId}/add-role/{roleId}:
    post:
      description: Add a role to a user.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: userId
        in: path
      - schema:
          type:
          - number
          - 'null'
        required: false
        name: roleId
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create user by user id add role by role id
      x-summary-source: derived
      operationId: postUserByUserIdAddRoleByRoleId
      x-operation-id-source: derived
    servers:
    - url: /v1
  /user/{userId}/remove-role/{roleId}:
    delete:
      description: Remove a role from a user. User must have at least one role left in the org.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: userId
        in: path
      - schema:
          type:
          - number
          - 'null'
        required: false
        name: roleId
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Delete user by user id remove role by role id
      x-summary-source: derived
      operationId: deleteUserByUserIdRemoveRoleByRoleId
      x-operation-id-source: derived
    servers:
    - url: /v1
  /client/{clientId}/add-role/{roleId}:
    post:
      description: Add a role to a machine client. The client is granted access to the private resources assigned to the role. Clients with a userId cannot be added to roles; they inherit the roles of their user.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: clientId
        in: path
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: roleId
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create client by client id add role by role id
      x-summary-source: derived
      operationId: postClientByClientIdAddRoleByRoleId
      x-operation-id-source: derived
    servers:
    - url: /v1
  /client/{clientId}/remove-role/{roleId}:
    delete:
      description: Remove a role from a machine client. Unlike users, machine clients are not required to keep at least one role.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: clientId
        in: path
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: roleId
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Delete client by client id remove role by role id
      x-summary-source: derived
      operationId: deleteClientByClientIdRemoveRoleByRoleId
      x-operation-id-source: derived
    servers:
    - url: /v1
  /client/{clientId}/roles:
    post:
      description: Set all roles for a machine client, replacing any existing roles. An empty list removes all roles. Clients with a userId cannot be assigned roles; they inherit the roles of their user.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: clientId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                roleIds:
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
              required:
              - roleIds
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create client by client id roles
      x-summary-source: derived
      operationId: postClientByClientIdRoles
      x-operation-id-source: derived
    servers:
    - url: /v1
  /public-resource/{resourceId}/roles:
    post:
      description: Set roles for a resource. This will replace all existing roles. When the resource has an inline policy defined (no shared resource policy assigned), roles are set on the inline policy instead of directly on the resource.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: resourceId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                roleIds:
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
              required:
              - roleIds
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create public resource by resource id roles
      x-summary-source: derived
      operationId: postPublicResourceByResourceIdRoles
      x-operation-id-source: derived
    get:
      description: List all roles for a resource.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: resourceId
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Get public resource by resource id roles
      x-summary-source: derived
      operationId: getPublicResourceByResourceIdRoles
      x-operation-id-source: derived
    servers:
    - url: /v1
  /role/{roleId}:
    delete:
      description: Delete a role.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: roleId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                roleId:
                  type: integer
                  exclusiveMinimum: 0
              required:
              - roleId
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Delete role by role id
      x-summary-source: derived
      operationId: deleteRoleByRoleId
      x-operation-id-source: derived
    get:
      description: Get a role.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: roleId
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Get role by role id
      x-summary-source: derived
      operationId: getRoleByRoleId
      x-operation-id-source: derived
    post:
      description: Update a role.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: integer
          exclusiveMinimum: 0
        required: true
        name: roleId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 255
                description:
                  type: string
                requireDeviceApproval:
                  type: boolean
                allowSsh:
                  type: boolean
                sshSudoMode:
                  type: string
                  enum:
                  - none
                  - full
                  - commands
                sshSudoCommands:
                  type: array
                  items:
                    type: string
                sshCreateHomeDir:
                  type: boolean
                sshUnixGroups:
                  type: array
                  items:
                    type: string
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create role by role id
      x-summary-source: derived
      operationId: postRoleByRoleId
      x-operation-id-source: derived
    servers:
    - url: /v1
  /org/{orgId}/roles:
    get:
      description: List roles.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: orgId
        in: path
      - schema:
          type: integer
          default: 20
          description: Number of items per page
        required: false
        description: Number of items per page
        name: pageSize
        in: query
      - schema:
          type: integer
          default: 1
          description: Page number to retrieve
        required: false
        description: Page number to retrieve
        name: page
        in: query
      - schema:
          type: string
        required: false
        name: query
        in: query
      - schema:
          type: string
          enum:
          - name
          description: Field to sort by
        required: false
        description: Field to sort by
        name: sort_by
        in: query
      - schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
          description: Sort order
        required: false
        description: Sort order
        name: order
        in: query
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Get org by org id roles
      x-summary-source: derived
      operationId: getOrgByOrgIdRoles
      x-operation-id-source: derived
    servers:
    - url: /v1
  /public-resource/{resourceId}/roles/add:
    post:
      description: Add a single role to a resource. When the resource has an inline policy defined (no shared resource policy assigned), the role is added to the inline policy instead of directly to the resource.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: resourceId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                roleId:
                  type: integer
                  exclusiveMinimum: 0
              required:
              - roleId
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create public resource by resource id roles add
      x-summary-source: derived
      operationId: postPublicResourceByResourceIdRolesAdd
      x-operation-id-source: derived
    servers:
    - url: /v1
  /public-resource/{resourceId}/roles/remove:
    post:
      description: Remove a single role from a resource.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: resourceId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                roleId:
                  type: integer
                  exclusiveMinimum: 0
              required:
              - roleId
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create public resource by resource id roles remove
      x-summary-source: derived
      operationId: postPublicResourceByResourceIdRolesRemove
      x-operation-id-source: derived
    servers:
    - url: /v1
  /role/{roleId}/add/{userId}:
    post:
      description: 'Legacy: set exactly one role for the user (replaces any other roles the user has in the org).'
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type:
          - number
          - 'null'
        required: false
        name: roleId
        in: path
      - schema:
          type: string
        required: true
        name: userId
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create role by role id add by user id
      x-summary-source: derived
      operationId: postRoleByRoleIdAddByUserId
      x-operation-id-source: derived
    servers:
    - url: /v1
  /private-resource/{resourceId}/roles:
    get:
      description: List all roles for a site resource.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: siteResourceId
        in: path
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Get private resource by resource id roles
      x-summary-source: derived
      operationId: getPrivateResourceByResourceIdRoles
      x-operation-id-source: derived
    post:
      description: Set roles for a site resource. This will replace all existing roles.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: siteResourceId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                roleIds:
                  type: array
                  items:
                    type: integer
                    exclusiveMinimum: 0
              required:
              - roleIds
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create private resource by resource id roles
      x-summary-source: derived
      operationId: postPrivateResourceByResourceIdRoles
      x-operation-id-source: derived
    servers:
    - url: /v1
  /private-resource/{resourceId}/roles/add:
    post:
      description: Add a single role to a site resource.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: siteResourceId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                roleId:
                  type: integer
                  exclusiveMinimum: 0
              required:
              - roleId
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create private resource by resource id roles add
      x-summary-source: derived
      operationId: postPrivateResourceByResourceIdRolesAdd
      x-operation-id-source: derived
    servers:
    - url: /v1
  /private-resource/{resourceId}/roles/remove:
    post:
      description: Remove a single role from a site resource.
      tags:
      - Role
      security:
      - Bearer Auth: []
      parameters:
      - schema:
          type: string
        required: true
        name: siteResourceId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                roleId:
                  type: integer
                  exclusiveMinimum: 0
              required:
              - roleId
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type:
                    - object
                    - 'null'
                    additionalProperties: {}
                  success:
                    type: boolean
                  error:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: number
                required:
                - data
                - success
                - error
                - message
                - status
      summary: Create private resource by resource id roles remove
      x-summary-source: derived
      operationId: postPrivateResourceByResourceIdRolesRemove
      x-operation-id-source: derived
    servers:
    - url: /v1
components:
  securitySchemes:
    Bearer_Auth:
      type: http
      scheme: bearer
x-refined-from:
- pangolin-net-openapi-remote.json
- pangolin-net-openapi.json