Kinde Roles API

The Roles API from Kinde — 7 operation(s) for roles.

Operations 12

GET /api/v1/roles List roles #
POST /api/v1/roles Create role #
GET /api/v1/roles/{role_id} Get role #
PATCH /api/v1/roles/{role_id} Update role #
DELETE /api/v1/roles/{role_id} Delete role #
GET /api/v1/roles/{role_id}/scopes Get role scopes #
POST /api/v1/roles/{role_id}/scopes Add role scope #
DELETE /api/v1/roles/{role_id}/scopes/{scope_id} Delete role scope #
GET /api/v1/roles/{role_id}/permissions Get role permissions #
PATCH /api/v1/roles/{role_id}/permissions Update role permissions #
GET /api/v1/roles/{role_id}/users List role users #
DELETE /api/v1/roles/{role_id}/permissions/{permission_id} Remove role permission #

Documentation

Specifications

Other Resources

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/kinde-so-roles-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

kinde-so-roles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kinde Management API Keys Roles API
  version: '1'
  description: The Kinde Management API programmatically manages a Kinde business - users, organizations, roles, permissions, feature flags, applications, connections, APIs and scopes, subscribers, properties, webhooks, and billing. Base URL is subdomain-scoped to your business (https://{subdomain}.kinde.com/api/v1). Authenticated with a Bearer JWT access token obtained via the OAuth2 client_credentials flow from a machine-to-machine (M2M) application. This document is grounded in the official Kinde Management API specification (https://api-spec.kinde.com/kinde-management-api-spec.yaml).
  contact:
    name: Kinde Support Team
    email: support@kinde.com
    url: https://docs.kinde.com
  termsOfService: https://docs.kinde.com/trust-center/agreements/terms-of-service/
servers:
- url: https://{subdomain}.kinde.com
  variables:
    subdomain:
      default: your_kinde_subdomain
      description: The subdomain generated for your business on Kinde.
security:
- kindeBearerAuth: []
tags:
- name: Roles
paths:
  /api/v1/roles:
    get:
      tags:
      - Roles
      summary: List roles
      operationId: GetRoles
      description: "The returned list can be sorted by role name or role key in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter.\n\n<div>\n  <code>read:roles</code>\n</div>"
      parameters:
      - name: sort
        in: query
        description: Field and order to sort the result by.
        schema:
          type: string
      - name: page_size
        in: query
        description: Number of results per page. Defaults to 10 if parameter not sent.
        schema:
          type: integer
      - name: next_token
        in: query
        description: A string to get the next page of results if there are more results.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
    post:
      tags:
      - Roles
      summary: Create role
      operationId: CreateRole
      description: "Create role.\n\n<div>\n  <code>create:roles</code>\n</div>"
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
  /api/v1/roles/{role_id}:
    get:
      tags:
      - Roles
      summary: Get role
      operationId: GetRole
      description: "Get a role\n\n<div>\n  <code>read:roles</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The identifier for the role.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
    patch:
      tags:
      - Roles
      summary: Update role
      operationId: UpdateRoles
      description: "Update a role\n\n<div>\n  <code>update:roles</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The identifier for the role.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
    delete:
      tags:
      - Roles
      summary: Delete role
      operationId: DeleteRole
      description: "Delete role\n\n<div>\n  <code>delete:roles</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The identifier for the role.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
  /api/v1/roles/{role_id}/scopes:
    get:
      tags:
      - Roles
      summary: Get role scopes
      operationId: GetRoleScopes
      description: "Get scopes for a role.\n\n<div>\n  <code>read:role_scopes</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The role id.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
    post:
      tags:
      - Roles
      summary: Add role scope
      operationId: AddRoleScope
      description: "Add scope to role.\n\n<div>\n  <code>create:role_scopes</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The role id.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
  /api/v1/roles/{role_id}/scopes/{scope_id}:
    delete:
      tags:
      - Roles
      summary: Delete role scope
      operationId: DeleteRoleScope
      description: "Delete scope from role.\n\n<div>\n  <code>delete:role_scopes</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The role id.
        schema:
          type: string
      - name: scope_id
        in: path
        required: true
        description: The scope id.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
  /api/v1/roles/{role_id}/permissions:
    get:
      tags:
      - Roles
      summary: Get role permissions
      operationId: GetRolePermissions
      description: "Get permissions for a role.\n\n<div>\n  <code>read:role_permissions</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The role's public id.
        schema:
          type: string
      - name: sort
        in: query
        description: Field and order to sort the result by.
        schema:
          type: string
      - name: page_size
        in: query
        description: Number of results per page. Defaults to 10 if parameter not sent.
        schema:
          type: integer
      - name: next_token
        in: query
        description: A string to get the next page of results if there are more results.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
    patch:
      tags:
      - Roles
      summary: Update role permissions
      operationId: UpdateRolePermissions
      description: "Update role permissions.\n\n<div>\n  <code>update:role_permissions</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The identifier for the role.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
  /api/v1/roles/{role_id}/users:
    get:
      tags:
      - Roles
      summary: List role users
      operationId: GetRoleUsers
      description: "Get users that have a given role, across all organizations. Each user entry\nincludes the organization codes where they hold that role.\n\n<div>\n  <code>read:organization_user_roles</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The role's public id.
        schema:
          type: string
      - name: page_size
        in: query
        description: Number of results per page. Defaults to 10 if parameter not sent.
        schema:
          type: integer
      - name: next_token
        in: query
        description: A string to get the next page of results if there are more results.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
  /api/v1/roles/{role_id}/permissions/{permission_id}:
    delete:
      tags:
      - Roles
      summary: Remove role permission
      operationId: RemoveRolePermission
      description: "Remove a permission from a role.\n\n<div>\n  <code>delete:role_permissions</code>\n</div>"
      parameters:
      - name: role_id
        in: path
        required: true
        description: The role's public id.
        schema:
          type: string
      - name: permission_id
        in: path
        required: true
        description: The permission's public id.
        schema:
          type: string
      responses:
        '200':
          description: OK
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '429':
          description: Too many requests - rate limited
      security:
      - kindeBearerAuth: []
components:
  securitySchemes:
    kindeBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Requires an access token obtained using the OAuth2 client_credentials flow from an authorized M2M application.