OpenAPI Specification
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: 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:
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:
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
additionalProperties:
type: string
required:
- id
- app_name
- version
- region
- deployment
- actions
- env_vars
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
securitySchemes:
bearerAuth:
type: http
scheme: bearer