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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/kernel-so-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 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
openapi: 3.2.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: Next offset to use for pagination.
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:
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'
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
additionalProperties:
type: string
required:
- id
- app_name
- version
- region
- deployment
- actions
- env_vars
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
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'
securitySchemes:
bearerAuth:
type: http
scheme: bearer