Servers
Provision servers, follow orders and manage machine lifecycles.
Pass the organization slug as ?org= where listed in the operation parameters. Admins manage servers, orders and SSH keys; other members can inspect accessible infrastructure. Use name as the display label and address as the stable identifier.
List the organization's servers, those it rents, and pending orders. A shared grid's servers count as usable
Requires pools:read (View grids and servers).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Items per page, 1 to 200 (default 50)
nextCursor from the previous page; omit for the first page
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
GET /v1/servers HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"servers": [
{
"address": "text",
"name": null,
"hostname": null,
"csp": null,
"region": null,
"zone": null,
"instanceType": null,
"kcRegion": null,
"owned": true,
"ownerName": null,
"state": "text",
"hibernation": "text",
"lastPulseAt": "2026-01-01T00:00:00.000Z",
"specs": {
"cpuThreads": 1,
"ramBytes": 1,
"storageBytes": 1,
"gpus": [
{
"model": "text",
"count": 1,
"vramBytes": 1
}
]
},
"utilization": {
"cpu": 1,
"ram": 1,
"storage": 1,
"gpu": 1,
"vram": 1
},
"runningApps": 1,
"lease": {
"id": "text",
"gridId": "text",
"availableUntil": "2026-01-01T00:00:00.000Z",
"priceCentsPerHour": 1
},
"provisionStatus": null,
"createdAt": "2026-01-01T00:00:00.000Z"
}
],
"nextCursor": null,
"pending": [
{
"orderId": "text",
"address": null,
"status": "text",
"failure": null,
"csp": null,
"region": null,
"instanceType": null,
"gridIds": [
"text"
],
"attempts": {
"made": 1,
"max": 1
},
"createdAt": "2026-01-01T00:00:00.000Z"
}
]
}Order dedicated servers from a cloud provider. Checks the quota and the balance first; set dryRun to get the cost estimate without ordering. Poll servers.orders.get with the returned order id to follow the order.
Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys), compute:spend (Spend credits: start, scale or resize apps, provision or wake servers, rent spot instances).
Errors specific to this operation:
402
insufficient_balance: The balance does not cover the minimum runtime of the order; topUpNeededCents says how much to add (billingUrl)403
provision_quota: The organization's provisioning limit is reached400
no_provider_for_region: No provider serves the requested Kinesis region400
ephemeral_ssd_unavailable: The instance type has no bundled local SSD; set storageSizeGb instead400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Any unique string of at most 255 characters. A retry with the same key and body returns the first call's response (with Idempotent-Replayed: true) instead of acting twice; a different body is refused with 409 idempotency_conflict, and a retry while the first call is still running gets 409 request_in_progress. Keys are kept for 24 hours.
^\S+$Cloud provider
Provider region id (see catalog.regions)
Availability zone; omit to let the provider choose
Instance type id (see catalog.instanceTypes)
Servers to order, 1 to 10 (default 1)
Disk per server in GB, 50 to 10000; required unless useEphemeralSsd is set
Use the bundled local SSD instead of a network volume (supported non-hibernatable Kinesis compute configurations only)
Grids the servers join once they register
Run every check and return the estimate without ordering
OK
Accepted
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The balance or the card does not cover the action: insufficient_balance, balance_over_limit, card_declined, authentication_required or blocked_by_risk
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/provision HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 153
{
"csp": "kinesis",
"region": "text",
"zone": "text",
"instanceType": "text",
"count": 1,
"storageSizeGb": 1,
"useEphemeralSsd": true,
"gridIds": [
"text"
],
"dryRun": true
}{
"dryRun": true,
"csp": "text",
"region": "text",
"instanceType": "text",
"count": 1,
"estimate": {
"instanceCount": 1,
"totalHourlyCostCents": 1,
"totalRequiredCents": 1,
"minimumHours": 1,
"balanceCents": 1,
"overLimitCents": 1,
"availableRunwayCents": 1,
"topUpNeededCents": 1
},
"orders": [
{
"orderId": "text",
"status": "text",
"count": 1,
"csp": null,
"failure": null,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"dismissed": true
}
]
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Server addresses, at most 50
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/deprovision HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 22
{
"addresses": [
"text"
]
}{
"results": [
{
"address": "text",
"ok": true,
"error": null
}
]
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Server addresses, at most 50
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/hibernate HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 22
{
"addresses": [
"text"
]
}{
"results": [
{
"address": "text",
"ok": true,
"error": null,
"reason": "out_of_stock"
}
]
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys), compute:spend (Spend credits: start, scale or resize apps, provision or wake servers, rent spot instances).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Server addresses, at most 50
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/wake HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 22
{
"addresses": [
"text"
]
}{
"results": [
{
"address": "text",
"ok": true,
"error": null,
"reason": "out_of_stock"
}
]
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Server addresses, at most 50
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/reboot HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 22
{
"addresses": [
"text"
]
}{
"results": [
{
"address": "text",
"ok": true,
"error": null
}
]
}Get a provisioning order the caller placed and the machines it has produced. Completed, replacement and dismissed orders are readable too. Poll this after servers.provision or servers.replace until done.
Requires pools:read (View grids and servers).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Provisioning order id
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
GET /v1/servers/orders/{orderId} HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"order": {
"orderId": "text",
"status": "text",
"count": 1,
"csp": null,
"failure": null,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"dismissed": true
},
"instances": [
{
"orderId": "text",
"address": null,
"status": "text",
"failure": null,
"csp": null,
"region": null,
"instanceType": null,
"gridIds": [
"text"
],
"attempts": {
"made": 1,
"max": 1
},
"createdAt": "2026-01-01T00:00:00.000Z"
}
],
"done": true
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys), compute:spend (Spend credits: start, scale or resize apps, provision or wake servers, rent spot instances).
Errors specific to this operation:
409
provision_order_failed: The backend refused the action for this order; the message says why400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Provisioning order id
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/orders/{orderId}/retry HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"order": {
"orderId": "text",
"status": "text",
"count": 1,
"csp": null,
"failure": null,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"dismissed": true
}
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
409
provision_order_failed: The backend refused the action for this order; the message says why400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Provisioning order id
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/orders/{orderId}/dismiss HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"orderId": "text",
"dismissed": true
}Get a provision token and install command for attaching a machine. The one-line command attaches it (bring your own device) as one of the organization's servers. The same usable token comes back on repeated calls until it is consumed or expires; forceNew mints a fresh one.
Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Lifetime of a newly minted token, 3600 by default
Mint a new token even when a usable one exists
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/byod-token HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 34
{
"expiresInSec": 1,
"forceNew": true
}{
"token": "text",
"expiresAt": "2026-01-01T00:00:00.000Z",
"needVpn": true,
"expiresInSec": 1,
"installCommand": "text"
}The Smart Lifecycle setting of each server the organization owns. On, the platform hibernates it when nothing runs on it (storage billing only) and wakes it when an app needs it
Requires pools:read (View grids and servers).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
GET /v1/servers/smart-lifecycle HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"servers": [
{
"address": "text",
"enabled": true
}
]
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Server addresses, at most 50
On or off
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
PATCH /v1/servers/smart-lifecycle HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 37
{
"addresses": [
"text"
],
"enabled": true
}{
"servers": [
{
"address": "text",
"enabled": true
}
]
}Get one server: specs, utilization, apps, grids and provisioning order. Its own organization also sees its public address
Requires pools:read (View grids and servers).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Server address
^0x[0-9a-fA-F]{40}$Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
GET /v1/servers/{address} HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"address": "text",
"name": null,
"hostname": null,
"csp": null,
"region": null,
"zone": null,
"instanceType": null,
"kcRegion": null,
"owned": true,
"ownerName": null,
"state": "text",
"hibernation": "text",
"lastPulseAt": "2026-01-01T00:00:00.000Z",
"specs": {
"cpuThreads": 1,
"ramBytes": 1,
"storageBytes": 1,
"gpus": [
{
"model": "text",
"count": 1,
"vramBytes": 1
}
]
},
"utilization": {
"cpu": 1,
"ram": 1,
"storage": 1,
"gpu": 1,
"vram": 1
},
"runningApps": 1,
"lease": {
"id": "text",
"gridId": "text",
"availableUntil": "2026-01-01T00:00:00.000Z",
"priceCentsPerHour": 1
},
"provisionStatus": null,
"createdAt": "2026-01-01T00:00:00.000Z",
"ipAddress": null,
"version": null,
"countryCode": null,
"autoWakeup": true,
"gridIds": [
"text"
],
"apps": [
{
"guid": "text",
"image": null,
"state": "text",
"targetState": "running",
"reportedAt": "2026-01-01T00:00:00.000Z"
}
],
"order": {
"id": "text",
"status": "text",
"failure": null,
"attempts": {
"made": 1,
"max": 1
},
"awaitingStockSince": "2026-01-01T00:00:00.000Z"
}
}Read the newest lines of a server's own logs. Agent, runtime health, installation and GPU setup, for one of the organization's servers. Narrow the window with since and until; lines come back oldest to newest.
Requires monitoring:read (Read usage metrics, app logs, build logs and server logs).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Server address
^0x[0-9a-fA-F]{40}$Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Earliest line to include; omit for no lower bound
Latest line to include; omit for now
Newest lines to return within the window, 500 by default
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
GET /v1/servers/{address}/logs HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"logs": [
{
"at": "2026-01-01T00:00:00.000Z",
"source": "text",
"level": "trace",
"text": "text"
}
],
"truncated": true
}The organization's SSH public keys and where each is installed (admins). Also its servers a key can be installed on (those added without Kinesis Remote Reach)
Requires pools:read (View grids and servers).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
GET /v1/ssh-keys HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"keys": [
{
"id": "text",
"label": "text",
"fingerprint": "text",
"servers": [
"text"
],
"createdAt": "2026-01-01T00:00:00.000Z"
}
],
"eligibleServers": [
{
"address": "text",
"csp": null,
"region": null,
"instanceType": null,
"ipAddress": null
}
]
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
A name for the key
The public key, e.g. the contents of id_ed25519.pub
Created
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/ssh-keys HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 35
{
"label": "text",
"publicKey": "text"
}{
"id": "text",
"label": "text",
"fingerprint": "text",
"servers": [
"text"
],
"createdAt": "2026-01-01T00:00:00.000Z"
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Key id from the list
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
DELETE /v1/ssh-keys/{keyId} HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"deleted": true
}Install an SSH key on servers (eligibleServers in sshKeys.list); ssh <user>@<ipAddress> then works with the matching private key
Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Key id from the list
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Server addresses, at most 50
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/ssh-keys/{keyId}/servers HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 22
{
"addresses": [
"text"
]
}{
"id": "text",
"label": "text",
"fingerprint": "text",
"servers": [
"text"
],
"createdAt": "2026-01-01T00:00:00.000Z"
}Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Key id from the list
Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Server addresses, at most 50
OK
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
DELETE /v1/ssh-keys/{keyId}/servers?addresses=text HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "text",
"label": "text",
"fingerprint": "text",
"servers": [
"text"
],
"createdAt": "2026-01-01T00:00:00.000Z"
}Provision an identical server and retire this one once the new one is up. The retired server's disk is not kept. Poll servers.orders.get with the returned order id to follow the replacement.
Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys), compute:spend (Spend credits: start, scale or resize apps, provision or wake servers, rent spot instances).
Errors specific to this operation:
400
org_required: The caller reaches more than one organization and named none; details.orgs lists their slugs403
key_project_restricted: The key is limited to specific projects, and this acts on the organization
An API key from Account settings, e.g. kn_...
Address of the server to replace
^0x[0-9a-fA-F]{40}$Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one
Any unique string of at most 255 characters. A retry with the same key and body returns the first call's response (with Idempotent-Replayed: true) instead of acting twice; a different body is refused with 409 idempotency_conflict, and a retry while the first call is still running gets 409 request_in_progress. Keys are kept for 24 hours.
^\S+$Accepted
The request body, query or headers are invalid (invalid_request, invalid_idempotency_key, ...)
The API key is missing, malformed, unknown, revoked or expired
The key lacks a required permission (insufficient_scope), is limited to other projects or to projects while the call acts on the organization (key_project_restricted), the caller's role on the resource is too low (forbidden), or the account is frozen
No such resource, or the caller cannot see it
The resource is in a state that does not allow the action, or an idempotency key was reused
The request body exceeds the limit given in the body
Too many requests; see the X-RateLimit-* headers and Retry-After
Something failed on our side; the request id is in the body
A service we depend on (the runtime, GitHub) did not answer; retry shortly
The feature is not enabled on this server (github_not_configured), or a service we depend on is down; retry later
A service we depend on did not answer in time; retry shortly
POST /v1/servers/{address}/replace HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"order": {
"orderId": "text",
"status": "text",
"count": 1,
"csp": null,
"failure": null,
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"dismissed": true
}
}Was this helpful?
