Kinde APIs API

The APIs API from Kinde — 6 operation(s) for apis.

Operations 12

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /api/v1/apis List registered APIs · Get APIs #
Ask an LLM
“Which APIs have I registered in Kinde?”
“Can I see all my registered APIs sorted by name?”
Tell an agent
List all the APIs I've registered.
Show my registered APIs, expanding {expand}.
POST /api/v1/apis Register a new API · Create API #
Ask an LLM
“How do I register my backend API so it can receive access tokens?”
“What audience value do I need when registering an API?”
Tell an agent
Register a new API named {name} with audience {audience}.
Add API {name} using {audience} as its token audience.
GET /api/v1/apis/{api_id} Get a registered API · Get API #
Ask an LLM
“Can I view the configuration of one registered API?”
“Where do I find the audience and details of a specific API?”
Tell an agent
Show the details of registered API {api_id}.
Get the audience configured for API {api_id}.
DELETE /api/v1/apis/{api_id} Delete a registered API · Delete API #
Ask an LLM
“How do I remove an API I registered but no longer need?”
“Can I unregister an API entirely?”
Tell an agent destructive · confirm first
Delete registered API {api_id}.
Unregister the API {api_id}.
GET /api/v1/apis/{api_id}/scopes List an API's scopes · Get API scopes #
Ask an LLM
“Which scopes are defined on one of my APIs?”
“Can I list every scope an API exposes?”
Tell an agent
List the scopes defined for API {api_id}.
Show all scopes on API {api_id}.
POST /api/v1/apis/{api_id}/scopes Create a scope on an API · Create API scope #
Ask an LLM
“How do I define a new scope like read:orders on my API?”
“Can I add a description when creating an API scope?”
Tell an agent
Create scope {key} on API {api_id}.
Add scope {key} to API {api_id} described as {description}.
GET /api/v1/apis/{api_id}/scopes/{scope_id} Get one API scope · Get API scope #
Ask an LLM
“Can I look up a single scope on an API by its ID?”
“What does one particular API scope contain?”
Tell an agent
Show scope {scope_id} on API {api_id}.
Get the details of API scope {scope_id} for API {api_id}.
PATCH /api/v1/apis/{api_id}/scopes/{scope_id} Update an API scope's description · Update API scope #
Ask an LLM
“Can I change the description of an existing API scope?”
“What can I edit on a scope after it's created?”
Tell an agent
Change the description of scope {scope_id} on API {api_id} to {description}.
Update API scope {scope_id} on API {api_id}.
DELETE /api/v1/apis/{api_id}/scopes/{scope_id} Delete an API scope · Delete API scope #
Ask an LLM
“How do I remove a scope I defined on an API?”
“Can I delete an API scope that's no longer used?”
Tell an agent destructive · confirm first
Delete scope {scope_id} from API {api_id}.
Remove the scope {scope_id} defined on API {api_id}.
PATCH /api/v1/apis/{api_id}/applications Authorize applications for an API · Authorize API applications #
Ask an LLM
“How do I let an application request access tokens for my API?”
“Can I authorize several applications against one API at once?”
Tell an agent
Authorize applications {applications} to request tokens for API {api_id}.
Update which applications can access API {api_id}.
POST /api/v1/apis/{api_id}/applications/{application_id}/scopes/{scope_id} Grant a scope to an API application · Add scope to API application #
Ask an LLM
“Can I grant a specific scope to an application that's authorized for an API?”
“How do I limit an application to certain API scopes?”
Tell an agent
Grant scope {scope_id} on API {api_id} to application {application_id}.
Add scope {scope_id} to application {application_id} for API {api_id}.
DELETE /api/v1/apis/{api_id}/applications/{application_id}/scopes/{scope_id} Remove a scope from an API application · Delete API application scope #
Ask an LLM
“How do I take a scope away from an application's API access?”
“Can I revoke one scope from an application without deauthorizing it?”
Tell an agent destructive · confirm first
Remove scope {scope_id} from application {application_id} on API {api_id}.
Revoke application {application_id}'s scope {scope_id} for API {api_id}.

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:kinde-apis-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-apis-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '1'
  title: Kinde Management APIs API
  description: 'Provides endpoints to manage your Kinde Businesses.


    ## Intro


    ## How to use


    1. Set up and authorize a machine-to-machine (M2M) application.


    2. Generate a test access token


    3. Test request any endpoint using the test token'
  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
servers:
- url: https://{subdomain}.kinde.com
  variables:
    subdomain:
      default: your_kinde_subdomain
      description: The subdomain generated for your business on Kinde.
tags:
- name: APIs
  x-displayName: APIs
paths:
  /api/v1/apis:
    servers: []
    get:
      tags:
      - APIs
      operationId: getAPIs
      x-scope: read:apis
      summary: Get APIs
      description: 'Returns a list of your APIs. The APIs are returned sorted by name.


        read:apis'
      parameters:
      - name: expand
        in: query
        description: 'Additional data to include in the response. Allowed value: "scopes".'
        required: false
        schema:
          type:
          - string
          - 'null'
          enum:
          - scopes
      responses:
        '200':
          description: A list of APIs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_apis_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
    post:
      tags:
      - APIs
      operationId: addAPIs
      x-scope: create:apis
      summary: Create API
      description: 'Register a new API. For more information read Register and manage APIs.


        create:apis'
      externalDocs:
        url: https://docs.kinde.com/developer-tools/your-apis/register-manage-apis
        description: Register and manage APIs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the API. (1-64 characters).
                  example: Example API
                audience:
                  type: string
                  description: A unique identifier for the API - commonly the URL. This value will be used as the `audience` parameter in authorization claims. (1-64 characters)
                  example: https://api.example.com
              required:
              - name
              - audience
      responses:
        '200':
          description: APIs successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/create_apis_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
  /api/v1/apis/{api_id}:
    servers: []
    parameters:
    - $ref: '#/components/parameters/api_id'
    get:
      tags:
      - APIs
      operationId: getAPI
      x-scope: read:apis
      summary: Get API
      description: 'Retrieve API details by ID.


        read:apis'
      responses:
        '200':
          description: API successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_api_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
    delete:
      tags:
      - APIs
      operationId: deleteAPI
      x-scope: delete:apis
      summary: Delete API
      description: 'Delete an API you previously created.


        delete:apis'
      responses:
        '200':
          description: API successfully deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/delete_api_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
  /api/v1/apis/{api_id}/scopes:
    servers: []
    get:
      tags:
      - APIs
      operationId: getAPIScopes
      x-scope: read:api_scopes
      summary: Get API scopes
      parameters:
      - name: api_id
        in: path
        description: API ID
        required: true
        schema:
          type: string
          example: 838f208d006a482dbd8cdb79a9889f68
      description: 'Retrieve API scopes by API ID.


        read:api_scopes'
      responses:
        '200':
          description: API scopes successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_api_scopes_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
    post:
      tags:
      - APIs
      operationId: addAPIScope
      x-scope: create:api_scopes
      summary: Create API scope
      parameters:
      - name: api_id
        in: path
        description: API ID
        required: true
        schema:
          type: string
          example: 838f208d006a482dbd8cdb79a9889f68
      description: 'Create a new API scope.


        create:api_scopes'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                key:
                  type: string
                  description: The key reference for the scope (1-64 characters, no white space).
                  example: read:logs
                description:
                  type: string
                  description: Description of the api scope purpose.
                  example: Scope for reading logs.
              required:
              - key
      responses:
        '200':
          description: API scopes successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/create_api_scopes_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
  /api/v1/apis/{api_id}/scopes/{scope_id}:
    servers: []
    get:
      tags:
      - APIs
      operationId: getAPIScope
      summary: Get API scope
      parameters:
      - name: api_id
        in: path
        description: API ID
        required: true
        schema:
          type: string
          example: 838f208d006a482dbd8cdb79a9889f68
      - name: scope_id
        in: path
        description: Scope ID
        required: true
        schema:
          type: string
          example: api_scope_019391daf58d87d8a7213419c016ac95
      description: 'Retrieve API scope by API ID.


        read:api_scopes'
      responses:
        '200':
          description: API scope successfully retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/get_api_scope_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
    patch:
      tags:
      - APIs
      operationId: updateAPIScope
      summary: Update API scope
      parameters:
      - name: api_id
        in: path
        description: API ID
        required: true
        schema:
          type: string
          example: 838f208d006a482dbd8cdb79a9889f68
      - name: scope_id
        in: path
        description: Scope ID
        required: true
        schema:
          type: string
          example: api_scope_019391daf58d87d8a7213419c016ac95
      description: 'Update an API scope.


        update:api_scopes'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                description:
                  type: string
                  description: Description of the api scope purpose.
                  example: Scope for reading logs.
      responses:
        '200':
          description: API scope successfully updated
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
    delete:
      tags:
      - APIs
      operationId: deleteAPIScope
      summary: Delete API scope
      parameters:
      - name: api_id
        in: path
        description: API ID
        required: true
        schema:
          type: string
          example: 838f208d006a482dbd8cdb79a9889f68
      - name: scope_id
        in: path
        description: Scope ID
        required: true
        schema:
          type: string
          example: api_scope_019391daf58d87d8a7213419c016ac95
      description: 'Delete an API scope you previously created.


        delete:apis_scopes'
      responses:
        '200':
          description: API scope successfully deleted.
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
  /api/v1/apis/{api_id}/applications:
    servers: []
    parameters:
    - $ref: '#/components/parameters/api_id'
    patch:
      tags:
      - APIs
      operationId: updateAPIApplications
      summary: Authorize API applications
      description: 'Authorize applications to be allowed to request access tokens for an API


        update:apis'
      requestBody:
        description: The applications you want to authorize.
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - applications
              properties:
                applications:
                  type: array
                  items:
                    type: object
                    required:
                    - id
                    properties:
                      id:
                        description: The application's Client ID.
                        type: string
                        example: d2db282d6214242b3b145c123f0c123
                      operation:
                        description: Optional operation, set to 'delete' to revoke authorization for the application. If not set, the application will be authorized.
                        type: string
                        example: delete
      responses:
        '200':
          description: Authorized applications updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/authorize_app_api_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
  /api/v1/apis/{api_id}/applications/{application_id}/scopes/{scope_id}:
    servers: []
    post:
      tags:
      - APIs
      operationId: addAPIApplicationScope
      summary: Add scope to API application
      parameters:
      - name: api_id
        in: path
        description: API ID
        required: true
        schema:
          type: string
          example: 838f208d006a482dbd8cdb79a9889f68
      - name: application_id
        in: path
        description: Application ID
        required: true
        schema:
          type: string
          example: 7643b487c97545aab79257fd13a1085a
      - name: scope_id
        in: path
        description: Scope ID
        required: true
        schema:
          type: string
          example: api_scope_019391daf58d87d8a7213419c016ac95
      description: 'Add a scope to an API application.


        create:api_application_scopes'
      responses:
        '200':
          description: API scope successfully added to API application
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
    delete:
      tags:
      - APIs
      operationId: deleteAPIApplicationScope
      summary: Delete API application scope
      parameters:
      - name: api_id
        in: path
        description: API ID
        required: true
        schema:
          type: string
          example: 838f208d006a482dbd8cdb79a9889f68
      - name: application_id
        in: path
        description: Application ID
        required: true
        schema:
          type: string
          example: 7643b487c97545aab79257fd13a1085a
      - name: scope_id
        in: path
        description: Scope ID
        required: true
        schema:
          type: string
          example: api_scope_019391daf58d87d8a7213419c016ac95
      description: 'Delete an API application scope you previously created.


        delete:apis_application_scopes'
      responses:
        '200':
          description: API scope successfully deleted.
        '400':
          $ref: '#/components/responses/bad_request'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/too_many_requests'
      security:
      - kindeBearerAuth: []
components:
  schemas:
    error:
      type: object
      properties:
        code:
          type: string
          description: Error code.
        message:
          type: string
          description: Error message.
    get_apis_response:
      type: object
      properties:
        code:
          type: string
          description: Response code.
          example: OK
        message:
          type: string
          description: Response message.
          example: Success
        next_token:
          type: string
          description: Pagination token.
          example: Njo5Om1hvWVfYXNj
        apis:
          type: array
          items:
            type: object
            properties:
              id:
                description: The unique ID for the API.
                type: string
                example: 7ccd126599aa422a771abcb341596881
              name:
                type: string
                description: The API's name.
                example: Example API
              audience:
                type: string
                description: A unique identifier for the API - commonly the URL. This value will be used as the `audience` parameter in authorization claims.
                example: https://api.example.com
              is_management_api:
                type: boolean
                description: Whether or not it is the Kinde management API.
                example: false
              scopes:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      example: api_scope_01939128c3d7193ae87c4755213c07c6
                    key:
                      type: string
                      example: create:apis
    create_apis_response:
      type: object
      properties:
        message:
          type: string
          description: A Kinde generated message.
          example: Success
        code:
          type: string
          description: A Kinde generated status code.
          example: OK
        api:
          type: object
          properties:
            id:
              description: The unique ID for the API.
              type: string
              example: 7ccd126599aa422a771abcb341596881
    get_api_response:
      type: object
      properties:
        code:
          type: string
          description: Response code.
          example: OK
        message:
          type: string
          description: Response message.
          example: success_response
        api:
          type: object
          properties:
            id:
              type: string
              description: Unique ID of the API.
              example: 7ccd126599aa422a771abcb341596881
            name:
              type: string
              description: The API's name.
              example: Example API
            audience:
              type: string
              description: A unique identifier for the API - commonly the URL. This value will be used as the `audience` parameter in authorization claims.
              example: https://api.example.com
            is_management_api:
              type: boolean
              description: Whether or not it is the Kinde management API.
              example: false
            scopes:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: The ID of the scope.
                    example: api_scope_01939222ef24200668b9f5829af001ce
                  key:
                    type: string
                    description: The reference key for the scope.
                    example: read:logs
            applications:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: The Client ID of the application.
                    example: 3b0b5c6c8fcc464fab397f4969b5f482
                  name:
                    type: string
                    description: The application's name.
                    example: My M2M app
                  type:
                    type: string
                    description: The application's type.
                    enum:
                    - Machine to machine (M2M)
                    - Back-end web
                    - Front-end and mobile
                    - Device and IoT
                    example: Machine to machine (M2M)
                  is_active:
                    type:
                    - boolean
                    - 'null'
                    description: Whether or not the application is authorized to access the API
                    example: true
    delete_api_response:
      type: object
      properties:
        message:
          type: string
          example: API successfully deleted
        code:
          type: string
          example: API_DELETED
    create_api_scopes_response:
      type: object
      properties:
        message:
          type: string
          description: A Kinde generated message.
          example: Success
        code:
          type: string
          description: A Kinde generated status code.
          example: OK
        scope:
          type: object
          properties:
            id:
              description: The unique ID for the API scope.
              type: string
              example: api_scope_0193ab57965aef77b2b687d0ef673713
    get_api_scope_response:
      type: object
      properties:
        code:
          type: string
          description: Response code.
          example: OK
        message:
          type: string
          description: Response message.
          example: success_response
        scope:
          type: object
          properties:
            id:
              type: string
              description: Unique ID of the API scope.
              example: api_scope_01939128c3d7193ae87c4755213c07c6
            key:
              type: string
              description: The scope's reference key.
              example: read:logs
            description:
              type: string
              description: Explanation of the scope purpose.
              example: Read logs scope
    get_api_scopes_response:
      type: object
      properties:
        code:
          type: string
          description: Response code.
          example: OK
        message:
          type: string
          description: Response message.
          example: success_response
        scopes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Unique ID of the API scope.
                example: api_scope_01939128c3d7193ae87c4755213c07c6
              key:
                type: string
                description: The scope's reference key.
                example: read:logs
              description:
                type: string
                description: Explanation of the scope purpose.
                example: Read logs scope
    error_response:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/error'
    authorize_app_api_response:
      type: object
      properties:
        message:
          type: string
          example: API applications updated
        code:
          type: string
          example: API_APPLICATIONS_UPDATED
        applications_disconnected:
          type: array
          items:
            type: string
        applications_connected:
          type: array
          items:
            type: string
            example: d2db282d6214242b3b145c123f0c123
  responses:
    too_many_requests:
      description: Too many requests. Request was throttled.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_response'
    forbidden:
      description: Unauthorized - invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_response'
    bad_request:
      description: Invalid request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_response'
  parameters:
    api_id:
      in: path
      name: api_id
      description: The API's ID.
      required: true
      schema:
        type: string
        example: 7ccd126599aa422a771abcb341596881
  securitySchemes:
    kindeBearerAuth:
      description: 'Requires an access token obtained using the client_credentials flow.

        '
      type: http
      scheme: bearer
      bearerFormat: JWT