Kryton API (0.0.0)

Download OpenAPI specification:

Kryton server API

platform

Health, version, admin, settings

List invite codes (admin)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an invite code (admin)

Request Body schema: application/json
required
expiresAt
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...

Responses

Request samples

Content type
application/json
{
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "code": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "createdById": "string",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "usedById": "string"
}

Delete an invite code (admin)

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "ok": true
}

Get registration mode (admin)

Responses

Response samples

Content type
application/json
{
  • "mode": "string"
}

Update registration mode (admin)

Request Body schema: application/json
required
mode
required
string
Enum: "open" "invite-only"

Responses

Request samples

Content type
application/json
{
  • "mode": "open"
}

Response samples

Content type
application/json
{
  • "mode": "string"
}

Force a tunnel reconnect attempt (admin)

Responses

Response samples

Content type
application/json
{
  • "accepted": true
}

Get tunnel traffic stats (admin)

query Parameters
window
string
Default: "24h"
Enum: "24h" "7d" "30d"

Responses

Response samples

Content type
application/json
{
  • "bytes_in": 9007199254740991,
  • "bytes_out": 9007199254740991,
  • "daily": [
    ],
  • "requests": 9007199254740991,
  • "since": -9007199254740991,
  • "window": "24h"
}

Get tunnel status (admin)

Responses

Response samples

Content type
application/json
{
  • "state": "closing"
}

Clear the tunnel JWT (admin)

Responses

Set the tunnel JWT (admin)

Request Body schema: application/json
required
token
required
string^eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-...

Responses

Request samples

Content type
application/json
{
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "state": "closing"
}

List all users (admin)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete a user (admin)

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "ok": true
}

Update a user (admin)

path Parameters
id
required
string
Request Body schema: application/json
required
disabled
boolean
role
string
Enum: "user" "admin"

Responses

Request samples

Content type
application/json
{
  • "disabled": true,
  • "role": "user"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "disabled": true,
  • "email": "string",
  • "id": "string",
  • "name": "string",
  • "role": "string"
}

Reset a user's password (admin)

path Parameters
id
required
string
Request Body schema: application/json
required
newPassword
required
string [ 8 .. 72 ] characters

Responses

Request samples

Content type
application/json
{
  • "newPassword": "stringst"
}

Response samples

Content type
application/json
{
  • "ok": true
}

Get current user's settings

Responses

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Update a per-user setting

path Parameters
key
required
string
Request Body schema: application/json
required
value
required
string

Responses

Request samples

Content type
application/json
{
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "key": "string",
  • "message": "string",
  • "value": "string"
}

Liveness probe

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}

Readiness probe

Responses

Response samples

Content type
application/json
{
  • "checks": {
    },
  • "status": "ok"
}

Server version and build info

Responses

Response samples

Content type
application/json
{
  • "commit": "string",
  • "major": -9007199254740991,
  • "version": "string"
}

identity

Auth, users, API keys

List API keys for the current user

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new API key

Request Body schema: application/json
required
agentId
string non-empty
expiresAt
string <date-time> ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[...
name
required
string [ 1 .. 100 ] characters
scope
required
string
Enum: "read-only" "read-write"

Responses

Request samples

Content type
application/json
{
  • "agentId": "string",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "scope": "read-only"
}

Response samples

Content type
application/json
{
  • "agentId": "string",
  • "createdAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "key": "string",
  • "keyPrefix": "string",
  • "name": "string",
  • "scope": "string"
}

Revoke an API key

path Parameters
id
required
string non-empty

Responses

Search for a user by email

query Parameters
email
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "email": "string",
  • "id": "string",
  • "name": "string"
}

notes

Notes, folders, attachments, canvas

Upload an attachment

Responses

Response samples

Content type
application/json
{
  • "contentHash": "string",
  • "createdAt": "string",
  • "filename": "string",
  • "id": "string",
  • "mimeType": "string",
  • "notePath": "string",
  • "sizeBytes": -9007199254740991,
  • "storagePath": "string",
  • "userId": "string"
}

Download an attachment

path Parameters
id
required
string

Responses

Get backlinks for a note

path Parameters
*
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List canvas files

Responses

Response samples

Content type
application/json
[
  • "string"
]

Create a canvas file

Request Body schema: application/json
required
object
name
required
string [ 1 .. 200 ] characters

Responses

Request samples

Content type
application/json
{
  • "content": {
    },
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "name": "string"
}

Delete a canvas file

path Parameters
name
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Read a canvas file

path Parameters
name
required
string non-empty

Responses

Update a canvas file

path Parameters
name
required
string non-empty
Request Body schema: application/json
required
edges
Array of any
nodes
Array of any
property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "edges": [
    ],
  • "nodes": [
    ],
  • "property1": null,
  • "property2": null
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "name": "string"
}

Create or get today's daily note

Responses

Response samples

Content type
application/json
{
  • "content": "string",
  • "modifiedAt": "string",
  • "path": "string",
  • "title": "string"
}

Rename a folder

path Parameters
*
required
string
Request Body schema: application/json
required
newPath
required
string [ 1 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "newPath": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "newPath": "string",
  • "oldPath": "string"
}

Create a folder

Request Body schema: application/json
required
name
string [ 1 .. 200 ] characters
path
string [ 1 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "path": "string"
}

Delete a folder (recursively trashes any notes inside)

path Parameters
*
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Restore a specific version of a note

path Parameters
*
required
string
query Parameters
ts
required
integer [ -9007199254740991 .. 9007199254740991 ]

Responses

Response samples

Content type
application/json
{
  • "restored": true
}

Read a specific version of a note

path Parameters
*
required
string
query Parameters
ts
required
integer [ -9007199254740991 .. 9007199254740991 ]

Responses

Response samples

Content type
application/json
{
  • "content": "string",
  • "date": "string",
  • "timestamp": -9007199254740991
}

List versions of a note

path Parameters
*
required
string

Responses

Response samples

Content type
application/json
{
  • "versions": [
    ]
}

Rename a note

path Parameters
*
required
string
Request Body schema: application/json
required
newPath
required
string [ 1 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "newPath": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "newPath": "string",
  • "oldPath": "string"
}

List all notes as a tree

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new note

Request Body schema: application/json
required
content
string <= 1000000 characters
path
required
string [ 1 .. 500 ] characters

Responses

Request samples

Content type
application/json
{
  • "content": "string",
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "path": "string"
}

Read a shared note

path Parameters
ownerUserId
required
string [ 1 .. 100 ] characters
*
required
string

Responses

Response samples

Content type
application/json
{
  • "content": "string",
  • "path": "string",
  • "title": "string"
}

Write to a shared note

path Parameters
ownerUserId
required
string [ 1 .. 100 ] characters
*
required
string
Request Body schema: application/json
required
content
required
string <= 1000000 characters

Responses

Request samples

Content type
application/json
{
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "path": "string"
}

Delete a note (move to trash)

path Parameters
*
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Get note content

path Parameters
*
required
string

Responses

Response samples

Content type
application/json
{
  • "content": "string",
  • "modifiedAt": "string",
  • "path": "string",
  • "title": "string"
}

Update a note

path Parameters
*
required
string
Request Body schema: application/json
required
content
required
string <= 1000000 characters

Responses

Request samples

Content type
application/json
{
  • "content": "string"
}

Response samples

Content type
application/json
{
  • "message": "string",
  • "path": "string"
}

List all tags with counts

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List notes with a specific tag

path Parameters
tag
required
string non-empty

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all templates

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get template content

path Parameters
name
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "content": "string",
  • "name": "string"
}

Empty the entire trash

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

List all trashed notes

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Restore a note from trash

path Parameters
*
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "path": "string"
}

Permanently delete a note from trash

path Parameters
*
required
string

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

knowledge

Search, graph

Get knowledge graph

Responses

Response samples

Content type
application/json
{
  • "edges": [
    ],
  • "nodes": [
    ]
}

Search notes (3-layer RRF fusion with lexical fallback)

query Parameters
q
required
string non-empty
limit
integer ( 0 .. 100 ]
Default: 20

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Semantic search readiness + pending-job count

Responses

Response samples

Content type
application/json
{
  • "dimensions": -9007199254740991,
  • "model": "string",
  • "pendingJobs": -9007199254740991,
  • "provider": "pgvector-local",
  • "ready": true
}

Re-enqueue semantic embedding jobs for the calling user

query Parameters
scope
string
Default: "self"
Enum: "self" "all"

Responses

Response samples

Content type
application/json
{
  • "enqueued": -9007199254740991
}

Get the current user's fusion weights (lex/sem/graph)

Responses

Response samples

Content type
application/json
{
  • "graph": 1,
  • "lex": 1,
  • "sem": 1
}

Update the current user's fusion weights (normalised to sum=1)

Request Body schema: application/json
required
graph
required
number [ 0 .. 1 ]
lex
required
number [ 0 .. 1 ]
sem
required
number [ 0 .. 1 ]

Responses

Request samples

Content type
application/json
{
  • "graph": 1,
  • "lex": 1,
  • "sem": 1
}

Response samples

Content type
application/json
{
  • "graph": 1,
  • "lex": 1,
  • "sem": 1
}

collab

Shares, sync, realtime

List pending access requests I need to act on

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Request access to a note

Request Body schema: application/json
required
message
string <= 500 characters
notePath
required
string [ 1 .. 500 ] characters
ownerUserId
required
string [ 1 .. 100 ] characters

Responses

Request samples

Content type
application/json
{
  • "message": "string",
  • "notePath": "string",
  • "ownerUserId": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "notePath": "string",
  • "ownerUserId": "string",
  • "requesterUserId": "string",
  • "status": "string",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List my outgoing access requests

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Approve or deny an access request

path Parameters
id
required
string non-empty
Request Body schema: application/json
required
action
required
string
Enum: "approve" "deny"
permission
string
Enum: "read" "readwrite"

Responses

Request samples

Content type
application/json
{
  • "action": "approve",
  • "permission": "read"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "notePath": "string",
  • "ownerUserId": "string",
  • "requesterUserId": "string",
  • "status": "string",
  • "updatedAt": "2019-08-24T14:15:22Z"
}

List shares I own

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a share

Request Body schema: application/json
required
isFolder
boolean
path
required
string [ 1 .. 500 ] characters
permission
required
string
Enum: "read" "readwrite"
sharedWithUserId
required
string [ 1 .. 100 ] characters

Responses

Request samples

Content type
application/json
{
  • "isFolder": true,
  • "path": "string",
  • "permission": "read",
  • "sharedWithUserId": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "isFolder": true,
  • "ownerUserId": "string",
  • "path": "string",
  • "permission": "string",
  • "sharedWithUserId": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "version": -9007199254740991
}

List shares shared with me

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Revoke a share

path Parameters
id
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Update share permission

path Parameters
id
required
string non-empty
Request Body schema: application/json
required
permission
required
string
Enum: "read" "readwrite"

Responses

Request samples

Content type
application/json
{
  • "permission": "read"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "isFolder": true,
  • "ownerUserId": "string",
  • "path": "string",
  • "permission": "string",
  • "sharedWithUserId": "string",
  • "updatedAt": "2019-08-24T14:15:22Z",
  • "version": -9007199254740991
}

agents

Agents and MCP

List agents owned by the current user

Responses

Response samples

Content type
application/json
{
  • "agents": [
    ]
}

Create a new agent

Request Body schema: application/json
required
label
required
string [ 1 .. 200 ] characters
name
required
string [ 1 .. 100 ] characters

Responses

Request samples

Content type
application/json
{
  • "label": "string",
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "createdAt": "2019-08-24T14:15:22Z",
  • "id": "string",
  • "label": "string",
  • "lastSeenAt": "2019-08-24T14:15:22Z",
  • "name": "string",
  • "ownerUserId": "string",
  • "policyText": "string"
}

MCP transport reachability probe

Responses

Response samples

Content type
application/json
{
  • "status": "ok"
}

List MCP sessions currently connected for the calling user

Responses

Response samples

Content type
application/json
{
  • "clients": [
    ],
  • "count": 9007199254740991
}

Revoke an agent token

path Parameters
tokenId
required
string non-empty

Responses

Delete an agent

path Parameters
id
required
string non-empty

Responses

Set or replace the Cedar policy for an agent

path Parameters
id
required
string non-empty
Request Body schema: application/json
required
policyText
required
string

Responses

Request samples

Content type
application/json
{
  • "policyText": "string"
}

Mint a bearer token for an agent

path Parameters
id
required
string non-empty
Request Body schema: application/json
required
expiresInSeconds
required
integer ( 0 .. 9007199254740991 ]
scope
string

Responses

Request samples

Content type
application/json
{
  • "expiresInSeconds": 9007199254740991,
  • "scope": "string"
}

Response samples

Content type
application/json
{
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "token": "string",
  • "tokenId": "string"
}

plugins

Plugin runtime

List active plugins with client bundle info

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all plugins with state info (admin)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download and install a plugin from the registry (admin)

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "id": "string",
  • "state": "string",
  • "uninstalled": true,
  • "version": "string"
}

Fetch the plugin registry (cached 5 min)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download and hot-swap a plugin with the latest registry version (admin)

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "id": "string",
  • "state": "string",
  • "uninstalled": true,
  • "version": "string"
}

Check for available plugin updates (admin)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Disable and unload a plugin (admin)

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "id": "string",
  • "state": "string",
  • "uninstalled": true,
  • "version": "string"
}

Enable and load a plugin (admin)

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "id": "string",
  • "state": "string",
  • "uninstalled": true,
  • "version": "string"
}

Hot-swap reload a plugin (admin)

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "id": "string",
  • "state": "string",
  • "uninstalled": true,
  • "version": "string"
}

Deactivate and remove a plugin (admin)

path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "id": "string",
  • "state": "string",
  • "uninstalled": true,
  • "version": "string"
}

/.well-known/apple-app-site-association

Responses

/.well-known/assetlinks.json

Responses

/api/notifications/stream

Responses

plugin-builtin

Create a note

Request Body schema: application/json
required
content
required
string
path
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "content": "string",
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "ok": true
}

Delete a note

query Parameters
path
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "ok": true
}

Read a single note

query Parameters
path
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "content": "string",
  • "modifiedAt": "2019-08-24T14:15:22Z",
  • "path": "string",
  • "title": "string"
}

List notes for the current user (optionally under a folder)

query Parameters
folder
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Request that the client UI open a note (emits note:open)

Request Body schema: application/json
required
path
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "ok": true
}

Splice a line range in a note with new source

Request Body schema: application/json
required
newSource
required
string
path
required
string non-empty
required
object

Responses

Request samples

Content type
application/json
{
  • "newSource": "string",
  • "path": "string",
  • "range": {
    }
}

Response samples

Content type
application/json
{
  • "ok": true
}

Overwrite a note

Request Body schema: application/json
required
content
required
string
path
required
string non-empty

Responses

Request samples

Content type
application/json
{
  • "content": "string",
  • "path": "string"
}

Response samples

Content type
application/json
{
  • "ok": true
}

Delete a storage key for the current user + plugin

query Parameters
key
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "ok": true
}

Read a storage key for the current user + plugin

query Parameters
key
required
string non-empty

Responses

Response samples

Content type
application/json
{
  • "value": null
}

List storage entries for the current user + plugin

query Parameters
prefix
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Write a storage key for the current user + plugin

Request Body schema: application/json
required
key
required
string non-empty
value
required
any

Responses

Request samples

Content type
application/json
{
  • "key": "string",
  • "value": null
}

Response samples

Content type
application/json
{
  • "ok": true
}

push

Register a push notification device token

Request Body schema: application/json
required
platform
required
string
Enum: "ios" "android"
token
required
string [ 1 .. 2048 ] characters

Responses

Request samples

Content type
application/json
{
  • "platform": "ios",
  • "token": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "platform": "ios"
}

Deregister a push notification device

path Parameters
id
required
string

Responses