Kinde Permissions API

The Permissions API from Kinde — 3 operation(s) for permissions.

Operations 5

GET /account_api/v1/permissions Get permissions #
GET /api/v1/permissions List Permissions #
POST /api/v1/permissions Create Permission #
PATCH /api/v1/permissions/{permission_id} Update Permission #
DELETE /api/v1/permissions/{permission_id} Delete Permission #

Documentation

Specifications

Schemas & Data

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-permissions-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-permissions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '1'
  title: Kinde Account API Keys Permissions API
  description: '

    Provides endpoints to operate on an authenticated user.


    ## Intro


    ## How to use


    1. Get a user access token - this can be obtained when a user signs in via the methods you''ve setup in Kinde (e.g. Google, passwordless, etc).


    2. Call one of the endpoints below using the user access token in the Authorization header as a Bearer token. Typically, you can use the `getToken` command in the relevant SDK.

    '
  termsOfService: https://docs.kinde.com/trust-center/agreements/terms-of-service/
  contact:
    name: Kinde Support Team
    email: support@kinde.com
    url: https://docs.kinde.com
tags:
- name: Permissions
  x-displayName: Permissions
paths:
  /account_api/v1/permissions:
    servers: []
    get:
      tags:
      - Permissions
      operationId: GetUserPermissions
      summary: Get permissions
      description: 'Returns all the permissions the user has

        '
      parameters:
      - name: page_size
        in: query
        required: false
        description: Number of results per page. Defaults to 10 if parameter not sent.
        schema:
          type:
          - integer
          - 'null'
      - name: starting_after
        in: query
        required: false
        description: The ID of the permission to start after.
        schema:
          type:
          - string
          - 'null'
          example: perm_1234567890abcdef
      responses:
        '200':
          description: Permissions successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_user_permissions_response'
        '403':
          description: Invalid credentials.
        '429':
          description: Request was throttled.
      security:
      - kindeBearerAuth: []
  /api/v1/permissions:
    servers: []
    get:
      tags:
      - Permissions
      operationId: GetPermissions
      x-scope: read:permissions
      description: "The returned list can be sorted by permission name or permission ID 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:permissions</code>\n</div>\n"
      summary: List Permissions
      parameters:
      - name: sort
        in: query
        description: Field and order to sort the result by.
        schema:
          type:
          - string
          - 'null'
          enum:
          - name_asc
          - name_desc
          - id_asc
          - id_desc
      - name: page_size
        in: query
        description: Number of results per page. Defaults to 10 if parameter not sent.
        schema:
          type:
          - integer
          - 'null'
      - name: next_token
        in: query
        description: A string to get the next page of results if there are more results.
        schema:
          type:
          - string
          - 'null'
      responses:
        '200':
          description: Permissions successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_permissions_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/get_permissions_response'
        '403':
          description: Invalid credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/error_response'
        '429':
          description: Request was throttled.
      security:
      - kindeBearerAuth: []
    post:
      tags:
      - Permissions
      operationId: CreatePermission
      x-scope: create:permissions
      description: "Create a new permission.\n\n<div>\n  <code>create:permissions</code>\n</div>\n"
      summary: Create Permission
      requestBody:
        description: Permission details.
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The permission's name.
                  type: string
                description:
                  description: The permission's description.
                  type: string
                key:
                  description: The permission identifier to use in code.
                  type: string
      responses:
        '201':
          description: Permission successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/success_response'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/error_response'
        '403':
          description: Invalid credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/error_response'
        '429':
          description: Request was throttled.
      security:
      - kindeBearerAuth: []
  /api/v1/permissions/{permission_id}:
    servers: []
    patch:
      tags:
      - Permissions
      operationId: UpdatePermissions
      x-scope: update:permissions
      description: "Update permission\n\n<div>\n  <code>update:permissions</code>\n</div>\n"
      summary: Update Permission
      parameters:
      - name: permission_id
        in: path
        description: The identifier for the permission.
        required: true
        schema:
          type: string
      requestBody:
        description: Permission details.
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: The permission's name.
                  type: string
                description:
                  description: The permission's description.
                  type: string
                key:
                  description: The permission identifier to use in code.
                  type: string
      responses:
        '200':
          description: Permission successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/success_response'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/error_response'
        '403':
          description: Invalid credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/error_response'
        '429':
          description: Request was throttled.
      security:
      - kindeBearerAuth: []
    delete:
      tags:
      - Permissions
      operationId: DeletePermission
      x-scope: delete:permissions
      description: "Delete permission\n\n<div>\n  <code>delete:permissions</code>\n</div>\n"
      summary: Delete Permission
      parameters:
      - name: permission_id
        in: path
        description: The identifier for the permission.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: permission successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/success_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/success_response'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_response'
            application/json; charset=utf-8:
              schema:
                $ref: '#/components/schemas/error_response'
        '403':
          description: Invalid credentials.
        '429':
          description: Request was throttled.
      security:
      - kindeBearerAuth: []
components:
  schemas:
    error_response:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/error'
    get_permissions_response:
      type: object
      properties:
        code:
          type: string
          description: Response code.
        message:
          type: string
          description: Response message.
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/permissions'
        next_token:
          type: string
          description: Pagination token.
    success_response:
      type: object
      properties:
        message:
          type: string
          example: Success
        code:
          type: string
          example: OK
    error:
      type: object
      properties:
        code:
          type: string
          description: Error code.
        message:
          type: string
          description: Error message.
    get_user_permissions_response:
      type: object
      properties:
        data:
          type: object
          properties:
            org_code:
              type: string
              description: The organization code the roles are associated with.
              example: org_0195ac80a14e
            permissions:
              type: array
              description: A list of permissions
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: The friendly ID of a permission
                    example: perm_0195ac80a14e8d71f42b98e75d3c61ad
                  name:
                    type: string
                    description: The name of the permission
                    example: View reports
                  key:
                    type: string
                    description: The key of the permission
                    example: view_reports
        metadata:
          type: object
          properties:
            has_more:
              type: boolean
              description: Whether more records exist.
              example: false
            next_page_starting_after:
              type: string
              description: The ID of the last record on the current page.
              example: perm_0195ac80a14e8d71f42b98e75d3c61ad
    permissions:
      type: object
      properties:
        id:
          type: string
          description: The permission's ID.
        key:
          type: string
          description: The permission identifier to use in code.
        name:
          type: string
          description: The permission's name.
        description:
          type: string
          description: The permission's description.
  securitySchemes:
    kindeBearerAuth:
      description: 'To access these endpoints, you will need to use a user token. This can be obtained when your users sign in via the methods you''ve setup in Kinde (e.g. Google, passwordless, etc). Find this using the getToken command in the relevant SDK.

        '
      type: http
      scheme: bearer
      bearerFormat: JWT