Kernel Apps API

List applications and versions.

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/kernel-apps-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 email required.

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

OpenAPI Specification

kernel-apps-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Kernel API Keys Apps API
  description: Developer tools and cloud infrastructure for AI agents to use web browsers
  version: 0.1.0
servers:
- url: https://api.onkernel.com
  description: API Server
security:
- bearerAuth: []
tags:
- name: Apps
  description: List applications and versions.
paths:
  /apps:
    get:
      operationId: getApps
      tags:
      - Apps
      summary: List apps
      description: List applications. Optionally filter by app name and/or version label.
      security:
      - bearerAuth: []
      parameters:
      - name: app_name
        in: query
        required: false
        description: Filter results by application name.
        schema:
          type: string
      - name: version
        in: query
        required: false
        description: Filter results by version label.
        schema:
          type: string
      - name: limit
        in: query
        required: false
        description: Limit the number of apps to return.
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
      - name: offset
        in: query
        required: false
        description: Offset the number of apps to return.
        schema:
          type: integer
          minimum: 0
          default: 0
      - name: query
        in: query
        required: false
        description: Search apps by name.
        schema:
          type: string
      responses:
        '200':
          description: List of apps.
          headers:
            X-Limit:
              description: Limit the number of apps to return.
              schema:
                type: integer
                minimum: 1
                maximum: 100
                default: 20
            X-Offset:
              description: The offset of apps to return.
              schema:
                type: integer
                minimum: 0
                default: 0
            X-Next-Offset:
              description: The offset where the next page starts. 0 when there are no more results.
              schema:
                type: integer
                nullable: true
            X-Has-More:
              description: Whether there are more apps to fetch.
              schema:
                type: boolean
                default: false
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppVersionSummary'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
      x-codeSamples:
      - lang: JavaScript
        source: "import Kernel from '@onkernel/sdk';\n\nconst client = new Kernel({\n  apiKey: process.env['KERNEL_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const appListResponse of client.apps.list()) {\n  console.log(appListResponse.id);\n}"
      - lang: Python
        source: "import os\nfrom kernel import Kernel\n\nclient = Kernel(\n    api_key=os.environ.get(\"KERNEL_API_KEY\"),  # This is the default and can be omitted\n)\npage = client.apps.list()\npage = page.items[0]\nprint(page.id)"
      - lang: Go
        source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/kernel/kernel-go-sdk\"\n\t\"github.com/kernel/kernel-go-sdk/option\"\n)\n\nfunc main() {\n\tclient := kernel.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\tpage, err := client.Apps.List(context.TODO(), kernel.AppListParams{})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", page)\n}\n"
components:
  responses:
    InternalError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized – missing or invalid authorization token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          description: Application-specific error code (machine-readable)
          example: bad_request
        message:
          type: string
          description: Human-readable error description for debugging
          example: 'Missing required field: app_name'
        details:
          type: array
          description: Additional error details (for multiple errors)
          items:
            $ref: '#/components/schemas/ErrorDetail'
        inner_error:
          $ref: '#/components/schemas/ErrorDetail'
    AppAction:
      type: object
      description: An action available on the app
      required:
      - name
      properties:
        name:
          type: string
          description: Name of the action
          example: analyze
        input_schema:
          type: object
          nullable: true
          description: JSON Schema (draft-07) describing the expected input payload. Null if schema could not be automatically generated.
          additionalProperties: true
        output_schema:
          type: object
          nullable: true
          description: JSON Schema (draft-07) describing the expected output payload. Null if schema could not be automatically generated.
          additionalProperties: true
    ErrorDetail:
      type: object
      properties:
        code:
          type: string
          description: Lower-level error code providing more specific detail
          example: invalid_input
        message:
          type: string
          description: Further detail about the error
          example: Provided version string is not semver compliant
    AppVersionSummary:
      type: object
      description: Summary of an application version.
      properties:
        id:
          type: string
          description: Unique identifier for the app version
          example: rr33xuugxj9h0bkf1rdt2bet
        app_name:
          type: string
          description: Name of the application
          example: my-app
        version:
          type: string
          description: Version label for the application
          example: 1.0.0
        region:
          type: string
          description: Deployment region code
          example: aws.us-east-1a
          const: aws.us-east-1a
        deployment:
          type: string
          description: Deployment ID
        actions:
          type: array
          description: List of actions available on the app
          items:
            $ref: '#/components/schemas/AppAction'
        env_vars:
          type: object
          description: Environment variables configured for this app version. Values are redacted for API key, OAuth, and managed-auth callers, which receive every key with an empty string value. Only dashboard sessions receive the actual values.
          additionalProperties:
            type: string
      required:
      - id
      - app_name
      - version
      - region
      - deployment
      - actions
      - env_vars
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer