Kernel Deployments API
Create and manage app deployments and stream deployment events.
Create and manage app deployments and stream deployment events.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/kernel:kernel-deployments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
description: Developer tools and cloud infrastructure for AI agents to use web browsers
title: Kernel Deployments API
version: 0.1.0
servers:
- description: API Server
url: https://api.onkernel.com
security:
- bearerAuth: []
tags:
- description: Create and manage app deployments and stream deployment events.
name: Deployments
paths:
/deployments:
get:
description: List deployments. Optionally filter by application name and version.
operationId: getDeployments
parameters:
- description: Filter results by application name.
in: query
name: app_name
required: false
schema:
type: string
- description: Filter results by application version. Requires app_name to be set.
in: query
name: app_version
required: false
schema:
type: string
- description: Limit the number of deployments to return.
in: query
name: limit
required: false
schema:
default: 20
maximum: 100
minimum: 1
type: integer
- description: Offset the number of deployments to return.
in: query
name: offset
required: false
schema:
default: 0
minimum: 0
type: integer
- description: Search deployments by ID or app name.
in: query
name: query
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Deployment'
type: array
description: List of deployments.
headers:
X-Has-More:
description: Whether there are more deployments to fetch.
schema:
default: false
type: boolean
X-Limit:
description: Limit the number of deployments to return.
schema:
default: 20
maximum: 100
minimum: 1
type: integer
X-Next-Offset:
description: The offset where the next page starts. 0 when there are no more results.
schema:
nullable: true
type: integer
X-Offset:
description: The offset of deployments to return.
schema:
default: 0
minimum: 0
type: integer
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
security:
- bearerAuth: []
summary: List deployments
tags:
- Deployments
post:
description: Create a new deployment.
operationId: postDeployments
requestBody:
content:
multipart/form-data:
encoding:
source:
contentType: application/json
examples:
github_private:
summary: Deploy from private GitHub repo
value:
source:
auth:
method: github_token
token: ghs_***
entrypoint: index.ts
path: apps/service
ref: main
type: github
url: https://github.com/org/private-repo
version: latest
github_public:
summary: Deploy from GitHub source
value:
env_vars:
FOO: bar
force: false
region: aws.us-east-1a
source:
entrypoint: src/index.ts
path: apps/api
ref: main
type: github
url: https://github.com/org/repo
version: 1.0.0
upload_zip:
summary: Upload a ZIP file
value:
entrypoint_rel_path: src/app.py
env_vars:
FOO: bar
file: <binary>
force: false
region: aws.us-east-1a
version: 1.0.0
schema:
$ref: '#/components/schemas/DeploymentRequest'
description: App deployment data
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Deployment'
description: Deployment created successfully
'400':
$ref: '#/components/responses/BadRequest'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
security:
- bearerAuth: []
summary: Create a deployment
tags:
- Deployments
/deployments/{id}:
delete:
description: Stops a running deployment and marks it for deletion. If the deployment is already in a terminal state (stopped or failed), returns immediately.
operationId: deleteDeploymentsById
parameters:
- description: Deployment ID
in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: Deployment deleted successfully
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
security:
- bearerAuth: []
summary: Delete a deployment
tags:
- Deployments
get:
description: Get information about a deployment's status.
operationId: getDeploymentsById
parameters:
- description: Deployment ID
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Deployment'
description: Deployment retrieved successfully
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
security:
- bearerAuth: []
summary: Get deployment details
tags:
- Deployments
/deployments/{id}/events:
get:
description: 'Establishes a Server-Sent Events (SSE) stream that delivers real-time logs and
status updates for a deployment. The stream terminates automatically
once the deployment reaches a terminal state.'
operationId: getDeploymentsEventsById
parameters:
- description: The deployment ID to follow.
in: path
name: id
required: true
schema:
type: string
- description: Show logs since the given time (RFC timestamps or durations like 5m).
in: query
name: since
required: false
schema:
example: '2025-06-20T12:00:00Z'
type: string
responses:
'200':
content:
text/event-stream:
schema:
$ref: '#/components/schemas/DeploymentEvent'
description: SSE stream of deployment state updates and logs.
headers:
X-SSE-Content-Type:
description: Media type of SSE data events (always application/json).
schema:
const: application/json
type: string
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
security:
- bearerAuth: []
summary: Stream deployment events via SSE
tags:
- Deployments
x-hidden: false
components:
responses:
NotFound:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Resource not found
BadRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Bad Request – invalid input
InternalError:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Internal Server Error
Unauthorized:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Unauthorized – missing or invalid authorization token
schemas:
DeploymentRequest:
description: App deployment request. Provide either file+entrypoint_rel_path or source.
oneOf:
- required:
- file
- entrypoint_rel_path
- required:
- source
properties:
entrypoint_rel_path:
description: Relative path to the entrypoint of the application
example: src/app.py
type: string
env_vars:
additionalProperties:
type: string
description: Map of environment variables to set for the deployed application. Each key-value pair represents an environment variable.
type: object
file:
description: ZIP file containing the application source directory
example: '@path/to/file.zip'
format: binary
type: string
force:
default: false
description: Allow overwriting an existing app version
example: false
type: boolean
region:
const: aws.us-east-1a
default: aws.us-east-1a
description: Region for deployment. Currently we only support "aws.us-east-1a"
example: aws.us-east-1a
type: string
source:
$ref: '#/components/schemas/DeploymentSource'
version:
default: latest
description: Version of the application. Can be any string.
example: 1.0.0
type: string
type: object
SSEHeartbeatEvent:
description: Heartbeat event sent periodically to keep SSE connection alive.
properties:
event:
const: sse_heartbeat
description: Event type identifier (always "sse_heartbeat").
type: string
timestamp:
description: Time the heartbeat was sent.
format: date-time
type: string
required:
- event
- timestamp
type: object
DeploymentSource:
description: Source from which to fetch application code.
properties:
auth:
description: Authentication for private repositories.
properties:
method:
description: Auth method
enum:
- github_token
example: github_token
type: string
token:
description: GitHub PAT or installation access token
example: ghs_***
format: password
type: string
required:
- method
- token
type: object
entrypoint:
description: Relative path to the application entrypoint within the selected path.
example: src/index.ts
type: string
path:
description: Path within the repo to deploy (omit to use repo root).
example: apps/api
type: string
ref:
description: Git ref (branch, tag, or commit SHA) to fetch.
example: main
type: string
type:
description: Source type identifier.
enum:
- github
example: github
type: string
url:
description: Base repository URL (without blob/tree suffixes).
example: https://github.com/org/repo
type: string
required:
- type
- url
- ref
- entrypoint
type: object
AppAction:
description: An action available on the app
properties:
input_schema:
additionalProperties: true
description: JSON Schema (draft-07) describing the expected input payload. Null if schema could not be automatically generated.
nullable: true
type: object
name:
description: Name of the action
example: analyze
type: string
output_schema:
additionalProperties: true
description: JSON Schema (draft-07) describing the expected output payload. Null if schema could not be automatically generated.
nullable: true
type: object
required:
- name
type: object
ErrorEvent:
description: An error event from the application.
properties:
error:
$ref: '#/components/schemas/Error'
event:
const: error
description: Event type identifier (always "error").
type: string
timestamp:
description: Time the error occurred.
format: date-time
type: string
required:
- event
- timestamp
- error
type: object
Deployment:
description: Deployment record information.
properties:
created_at:
description: Timestamp when the deployment was created
format: date-time
type: string
entrypoint_rel_path:
description: Relative path to the application entrypoint
example: src/app.py
type: string
env_vars:
additionalProperties:
type: string
description: Environment variables configured for this deployment. 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.
type: object
id:
description: Unique identifier for the deployment
example: rr33xuugxj9h0bkf1rdt2bet
type: string
region:
const: aws.us-east-1a
description: Deployment region code
example: aws.us-east-1a
type: string
source_checksum:
description: Hex-encoded SHA-256 checksum of the source archive. For file uploads, this hashes the uploaded archive; for GitHub-sourced deployments, this hashes the GitHub archive downloaded by the API. Omitted for deployments created before this field was recorded.
example: 3f4d0ea1bd2c5c1a1a1f0e9d8c7b6a5948372615049382716a5b4c3d2e1f0a9b
type: string
source_path:
description: For GitHub-sourced deployments, the subpath within the repository that was used as the deploy root. Omitted when the repo root was used or for file uploads.
example: apps/api
type: string
source_ref:
description: For GitHub-sourced deployments, the git ref as requested at deploy time (branch, tag, or commit SHA — not resolved to a commit). Omitted for file uploads.
example: main
type: string
source_type:
description: Origin of the deployed source code. This is read-only response provenance; `file` indicates an uploaded archive and `github` indicates a repository fetched by the API.
enum:
- file
- github
example: github
type: string
x-go-type-name: DeploymentSourceOrigin
source_url:
description: For GitHub-sourced deployments, the repository URL that was fetched. Omitted for file uploads.
example: https://github.com/org/repo
type: string
status:
description: Current status of the deployment
enum:
- queued
- in_progress
- running
- failed
- stopped
example: queued
type: string
status_reason:
description: Status reason
example: Deployment in progress
type: string
updated_at:
description: Timestamp when the deployment was last updated
format: date-time
nullable: true
type: string
required:
- id
- status
- region
- created_at
type: object
ErrorDetail:
properties:
code:
description: Lower-level error code providing more specific detail
example: invalid_input
type: string
message:
description: Further detail about the error
example: Provided version string is not semver compliant
type: string
type: object
Error:
properties:
code:
description: Application-specific error code (machine-readable)
example: bad_request
type: string
details:
description: Additional error details (for multiple errors)
items:
$ref: '#/components/schemas/ErrorDetail'
type: array
inner_error:
$ref: '#/components/schemas/ErrorDetail'
message:
description: Human-readable error description for debugging
example: 'Missing required field: app_name'
type: string
required:
- code
- message
type: object
LogEvent:
description: A log entry from the application.
properties:
event:
const: log
description: Event type identifier (always "log").
type: string
message:
description: Log message text.
type: string
timestamp:
description: Time the log entry was produced.
format: date-time
type: string
required:
- event
- message
- timestamp
type: object
DeploymentEvent:
description: Union type representing any deployment event.
discriminator:
mapping:
app_version_summary: '#/components/schemas/AppVersionSummary'
deployment_state: '#/components/schemas/DeploymentStateEvent'
error: '#/components/schemas/InternalError'
log: '#/components/schemas/LogEvent'
sse_heartbeat: '#/components/schemas/SSEHeartbeatEvent'
propertyName: event
oneOf:
- $ref: '#/components/schemas/LogEvent'
- $ref: '#/components/schemas/DeploymentStateEvent'
- $ref: '#/components/schemas/AppVersionSummaryEvent'
- $ref: '#/components/schemas/ErrorEvent'
- $ref: '#/components/schemas/SSEHeartbeatEvent'
AppVersionSummaryEvent:
description: Summary of an application version.
properties:
actions:
description: List of actions available on the app
items:
$ref: '#/components/schemas/AppAction'
type: array
app_name:
description: Name of the application
example: my-app
type: string
env_vars:
additionalProperties:
type: string
description: Environment variables configured for this app version. Not currently populated on streamed app_version_summary events.
type: object
event:
const: app_version_summary
description: Event type identifier (always "app_version_summary").
type: string
id:
description: Unique identifier for the app version
example: rr33xuugxj9h0bkf1rdt2bet
type: string
region:
const: aws.us-east-1a
description: Deployment region code
example: aws.us-east-1a
type: string
timestamp:
description: Time the state was reported.
format: date-time
type: string
version:
description: Version label for the application
example: 1.0.0
type: string
required:
- event
- timestamp
- id
- app_name
- version
- region
- actions
type: object
DeploymentStateEvent:
description: An event representing the current state of a deployment.
properties:
deployment:
$ref: '#/components/schemas/Deployment'
event:
const: deployment_state
description: Event type identifier (always "deployment_state").
type: string
timestamp:
description: Time the state was reported.
format: date-time
type: string
required:
- event
- deployment
- timestamp
type: object
securitySchemes:
bearerAuth:
scheme: bearer
type: http
x-service-info:
categories:
- browsers
docs:
apiReference: https://www.kernel.sh/docs
homepage: https://www.kernel.sh
llms: https://api.onkernel.com/llms.txt
x-provenance:
method: harvested
publisher: Kernel
source: https://api.onkernel.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)