For the complete documentation index, see llms.txt. This page is also available as Markdown.

Grids

Organize dedicated compute into grids for your applications.

Grids belong to organizations. Organization-level calls take ?org=; grid-ID calls resolve it from the grid. Admins create and manage grids; Developers deploy to accessible grids and Viewers inspect them. Per-person quota policies are configured in the portal, not through the public API.

List the grids the caller can see: the organization's, then those shared with it

get

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 slugs

  • 403 key_project_restricted: The key is limited to specific projects, and this acts on the organization

Authorizations
AuthorizationstringRequired

An API key from Account settings, e.g. kn_...

Query parameters
orgstring · min: 3 · max: 39Optional

Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one

limitinteger · min: 1 · max: 200Optional

Items per page, 1 to 200 (default 50)

cursorstring · min: 1 · max: 512Optional

nextCursor from the previous page; omit for the first page

Responses
200

OK

application/json
get/grids
GET /v1/grids HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "grids": [
    {
      "id": "text",
      "name": "text",
      "org": {
        "slug": "text",
        "name": "text"
      },
      "access": {
        "role": "admin",
        "outside": true,
        "isCreator": true
      },
      "visibility": "private",
      "createdBy": {
        "userId": "text",
        "name": null,
        "email": "text"
      },
      "nodes": [
        "text"
      ],
      "autoCreated": true,
      "priorityMode": "absolute",
      "needsReconciliation": true,
      "volumes": [
        {
          "mountPath": "text",
          "maxSize": 1,
          "tag": "text"
        }
      ],
      "networks": [
        {
          "cidr": "text",
          "tag": "text"
        }
      ]
    }
  ],
  "nextCursor": null
}

Create a grid in the organization (admins), optionally with servers attached

post

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 slugs

  • 403 key_project_restricted: The key is limited to specific projects, and this acts on the organization

Authorizations
AuthorizationstringRequired

An API key from Account settings, e.g. kn_...

Query parameters
orgstring · min: 3 · max: 39Optional

Slug of the organization to act in (see orgs.list); needed when the caller reaches more than one

Header parameters
Idempotency-Keystring · min: 1 · max: 255Optional

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.

Pattern: ^\S+$
Body
namestring · min: 1 · max: 100Required

Grid name

visibilitystring · enumOptional

Who in the organization can see and deploy to it; private by default

Possible values:
nodesstring[] · max: 100Optional

Addresses of servers to attach

Responses
201

Created

application/json
post/grids
POST /v1/grids HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 155

{
  "name": "text",
  "visibility": "private",
  "volumes": [
    {
      "mountPath": "text",
      "maxSize": 1,
      "tag": "text"
    }
  ],
  "networks": [
    {
      "cidr": "text",
      "tag": "text"
    }
  ],
  "nodes": [
    "text"
  ]
}
{
  "id": "text",
  "name": "text",
  "org": {
    "slug": "text",
    "name": "text"
  },
  "access": {
    "role": "admin",
    "outside": true,
    "isCreator": true
  },
  "visibility": "private",
  "createdBy": {
    "userId": "text",
    "name": null,
    "email": "text"
  },
  "nodes": [
    "text"
  ],
  "autoCreated": true,
  "priorityMode": "absolute",
  "needsReconciliation": true,
  "volumes": [
    {
      "mountPath": "text",
      "maxSize": 1,
      "tag": "text"
    }
  ],
  "networks": [
    {
      "cidr": "text",
      "tag": "text"
    }
  ],
  "warning": null
}

Get a grid and its membership

get

Requires pools:read (View grids and servers).

Authorizations
AuthorizationstringRequired

An API key from Account settings, e.g. kn_...

Path parameters
gridIdstring · min: 1Required

Grid id

Responses
200

OK

application/json
get/grids/{gridId}
GET /v1/grids/{gridId} HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "text",
  "name": "text",
  "org": {
    "slug": "text",
    "name": "text"
  },
  "access": {
    "role": "admin",
    "outside": true,
    "isCreator": true
  },
  "visibility": "private",
  "createdBy": {
    "userId": "text",
    "name": null,
    "email": "text"
  },
  "nodes": [
    "text"
  ],
  "autoCreated": true,
  "priorityMode": "absolute",
  "needsReconciliation": true,
  "volumes": [
    {
      "mountPath": "text",
      "maxSize": 1,
      "tag": "text"
    }
  ],
  "networks": [
    {
      "cidr": "text",
      "tag": "text"
    }
  ]
}

Change a grid's settings, visibility, membership or priority mode (admins). Membership changes are explicit lists of servers to add and to remove.

patch

Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).

Authorizations
AuthorizationstringRequired

An API key from Account settings, e.g. kn_...

Path parameters
gridIdstring · min: 1Required

Grid id

Body
namestring · min: 1 · max: 100Optional

Grid name

visibilitystring · enumOptional

private: admins, its creator and the people added; org: everyone in the organization

Possible values:
addNodesstring[] · max: 500Optional

Servers to add to the grid

removeNodesstring[] · max: 500Optional

Servers to remove from the grid

priorityModestring · enumOptional

How app priorities apply when the grid is contended

Possible values:
Responses
200

OK

application/json
patch/grids/{gridId}
PATCH /v1/grids/{gridId} HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 207

{
  "name": "text",
  "visibility": "private",
  "volumes": [
    {
      "mountPath": "text",
      "maxSize": 1,
      "tag": "text"
    }
  ],
  "networks": [
    {
      "cidr": "text",
      "tag": "text"
    }
  ],
  "addNodes": [
    "text"
  ],
  "removeNodes": [
    "text"
  ],
  "priorityMode": "absolute"
}
{
  "id": "text",
  "name": "text",
  "org": {
    "slug": "text",
    "name": "text"
  },
  "access": {
    "role": "admin",
    "outside": true,
    "isCreator": true
  },
  "visibility": "private",
  "createdBy": {
    "userId": "text",
    "name": null,
    "email": "text"
  },
  "nodes": [
    "text"
  ],
  "autoCreated": true,
  "priorityMode": "absolute",
  "needsReconciliation": true,
  "volumes": [
    {
      "mountPath": "text",
      "maxSize": 1,
      "tag": "text"
    }
  ],
  "networks": [
    {
      "cidr": "text",
      "tag": "text"
    }
  ]
}

Delete a grid (admins). Its servers are kept; sharing grants and invitations are retired.

delete

Requires pools:admin (Delete grids and manage who they are shared with).

Authorizations
AuthorizationstringRequired

An API key from Account settings, e.g. kn_...

Path parameters
gridIdstring · min: 1Required

Grid id

Responses
200

OK

application/json
delete/grids/{gridId}
DELETE /v1/grids/{gridId} HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "text",
  "deleted": true
}

Set a grid member's scheduling priority, -100 to 100. Higher wins when the grid is contended; -100 means backup only. Admins of the grid's organization.

patch

Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).

Authorizations
AuthorizationstringRequired

An API key from Account settings, e.g. kn_...

Path parameters
gridIdstring · min: 1Required

Grid id

addressstringRequired

Server address; must be a member of the grid

Pattern: ^0x[0-9a-fA-F]{40}$
Body
priorityinteger · min: -100 · max: 100Required

-100 (backup only) to 100

Responses
200

OK

application/json
patch/grids/{gridId}/servers/{address}
PATCH /v1/grids/{gridId}/servers/{address} HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 14

{
  "priority": 1
}
{
  "gridId": "text",
  "address": "text",
  "priority": 1
}

Start an app that targets the grid, as an admin of the grid's organization, without a role on the app itself. The app's creator is notified and its organization is billed for it.

post

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:

  • 403 forbidden: The backend refused the action for this grid role

  • 409 app_not_on_grid: The app does not target (or run on) this grid

Authorizations
AuthorizationstringRequired

An API key from Account settings, e.g. kn_...

Path parameters
gridIdstring · min: 1Required

Grid id

appGuidstring · min: 1Required

Runtime identifier of the app (guid on list_apps, get_server)

Body
reasonstring · max: 300Optional

Shown to the app's creator in their notification

Responses
202

Accepted

application/json
post/grids/{gridId}/apps/{appGuid}/start
POST /v1/grids/{gridId}/apps/{appGuid}/start HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 17

{
  "reason": "text"
}
{
  "gridId": "text",
  "appGuid": "text",
  "appId": null,
  "appName": null
}

Stop an app running on the grid, as an admin of the grid's organization, without a role on the app itself. The app's creator is notified.

post

Requires pools:write (Edit grids, manage their servers, attach machines, set Smart Lifecycle and SSH keys).

Errors specific to this operation:

  • 403 forbidden: The backend refused the action for this grid role

  • 409 app_not_on_grid: The app does not target (or run on) this grid

Authorizations
AuthorizationstringRequired

An API key from Account settings, e.g. kn_...

Path parameters
gridIdstring · min: 1Required

Grid id

appGuidstring · min: 1Required

Runtime identifier of the app (guid on list_apps, get_server)

Body
reasonstring · max: 300Optional

Shown to the app's creator in their notification

Responses
202

Accepted

application/json
post/grids/{gridId}/apps/{appGuid}/stop
POST /v1/grids/{gridId}/apps/{appGuid}/stop HTTP/1.1
Host: api.kinesis.network
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 17

{
  "reason": "text"
}
{
  "gridId": "text",
  "appGuid": "text",
  "appId": null,
  "appName": null
}

Was this helpful?