DocsReference
API reference
Every endpoint below is part of the public NextOS API. Authenticate with a scoped API key from Settings > Developer, or your signed-in session where noted.
Model plane
Chat completions
POST /v1/chat/completions
Auth: Gateway API key (Authorization: Bearer ngk_...)
Body: { model, messages: [{ role, content }], max_tokens?, stream?, response_format? } (OpenAI chat-completions shape)
Response: an OpenAI-compatible chat.completion object, or a chunked stream when stream is true
curl -X POST "https://www.jonkum.in/api/v1/chat/completions" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/chat/completions', {
method: 'POST',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/chat/completions"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())List models
GET /v1/models
Auth: Gateway API key (Authorization: Bearer ngk_...)
Response: { object: 'list', data: [{ id, object, owned_by, context_window, supports_tools }] }
curl -X GET "https://www.jonkum.in/api/v1/models" \
-H "Authorization: Bearer ngk_live_your_key_here"const response = await fetch('https://www.jonkum.in/api/v1/models', {
method: 'GET',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/models"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Agents & tasks
List agents
GET /v1/agents
Auth: Gateway API key (Authorization: Bearer ngk_...)
Response: { agents: [...] }
curl -X GET "https://www.jonkum.in/api/v1/agents" \
-H "Authorization: Bearer ngk_live_your_key_here"const response = await fetch('https://www.jonkum.in/api/v1/agents', {
method: 'GET',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/agents"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Run a one-off task
POST /v1/tasks
Auth: Gateway API key (Authorization: Bearer ngk_...)
Body: { task, provider?, model?, systemPrompt?, tools?, wait? }
Response: { run } once finished (or immediately with wait:true), else { run: { id, status: 'queued', executor } } to poll
curl -X POST "https://www.jonkum.in/api/v1/tasks" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/tasks', {
method: 'POST',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/tasks"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())Start an agent run
POST /v1/agents/:id/runs
Auth: Gateway API key (Authorization: Bearer ngk_...)
Body: { task, wait?, config? }
Response: { run } once finished (or immediately with wait:true), else { run: { id, status: 'queued', executor } } to poll
curl -X POST "https://www.jonkum.in/api/v1/agents/id_123/runs" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/agents/id_123/runs', {
method: 'POST',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/agents/id_123/runs"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())Runs
Get a run
GET /v1/runs/:id
Auth: Gateway API key or a signed-in session, scoped to the caller's own account
Response: { run }
curl -X GET "https://www.jonkum.in/api/v1/runs/id_123" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/runs/id_123', {
method: 'GET',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/runs/id_123"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Get a run manifest
GET /v1/runs/:id/manifest
Auth: whatever can already read the run (owner, a scoped key, or a share token)
Response: { manifest }
curl -X GET "https://www.jonkum.in/api/v1/runs/id_123/manifest"const response = await fetch('https://www.jonkum.in/api/v1/runs/id_123/manifest', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/runs/id_123/manifest"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Get a run segment
GET /v1/runs/:id/segments/:seq
Auth: whatever can already read the run (owner, a scoped key, or a share token)
Response: one immutable run segment
curl -X GET "https://www.jonkum.in/api/v1/runs/id_123/segments/seq_123"const response = await fetch('https://www.jonkum.in/api/v1/runs/id_123/segments/seq_123', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/runs/id_123/segments/seq_123"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Get run state
GET /v1/runs/:id/state
Auth: whatever can already read the run (owner, a scoped key, or a share token)
Response: { run, state, cursor, manifest }
curl -X GET "https://www.jonkum.in/api/v1/runs/id_123/state"const response = await fetch('https://www.jonkum.in/api/v1/runs/id_123/state', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/runs/id_123/state"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())List runs
GET /v1/runs
Auth: Signed-in session, or a gateway key with the agents:read scope
Response: { runs: [...], nextSince }
curl -X GET "https://www.jonkum.in/api/v1/runs" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/runs', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/runs"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Stream run events
GET /v1/runs/:id/events
Auth: whatever can already read the run (owner, a scoped key, or a share token)
Response: a Server-Sent Events stream of run events
curl -X GET "https://www.jonkum.in/api/v1/runs/id_123/events"const response = await fetch('https://www.jonkum.in/api/v1/runs/id_123/events', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/runs/id_123/events"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Verify a run
GET /v1/runs/:id/verify
Auth: whatever can already read the run (owner, a scoped key, or a share token)
Response: { verified, ... } - the run's content-address chain and segment signatures
curl -X GET "https://www.jonkum.in/api/v1/runs/id_123/verify"const response = await fetch('https://www.jonkum.in/api/v1/runs/id_123/verify', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/runs/id_123/verify"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Prompts
Add a prompt version
POST /v1/prompts/:id/versions
Auth: Signed-in session cookie
Body: { body, variables?, note? }
Response: { prompt }
curl -X POST "https://www.jonkum.in/api/v1/prompts/id_123/versions" \
-H "Cookie: <your signed-in session cookie>" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/prompts/id_123/versions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/prompts/id_123/versions"
headers = {}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())Get, update or delete a prompt
GET /v1/prompts/:id
Auth: Signed-in session cookie
Response: { prompt } (full, including versions)
curl -X GET "https://www.jonkum.in/api/v1/prompts/id_123" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/prompts/id_123', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/prompts/id_123"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())PUT /v1/prompts/:id
Auth: Signed-in session cookie
Body: { name?, description?, tags? }
Response: { prompt } (metadata only)
curl -X PUT "https://www.jonkum.in/api/v1/prompts/id_123" \
-H "Cookie: <your signed-in session cookie>" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/prompts/id_123', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/prompts/id_123"
headers = {}
response = requests.put(url, headers=headers, json={})
print(response.status_code, response.json())DELETE /v1/prompts/:id
Auth: Signed-in session cookie
Response: { deleted }
curl -X DELETE "https://www.jonkum.in/api/v1/prompts/id_123" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/prompts/id_123', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/prompts/id_123"
headers = {}
response = requests.delete(url, headers=headers)
print(response.status_code, response.json())List & create prompts
GET /v1/prompts
Auth: Signed-in session cookie
Response: { prompts: [...] }
curl -X GET "https://www.jonkum.in/api/v1/prompts" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/prompts', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/prompts"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())POST /v1/prompts
Auth: Signed-in session cookie
Body: { id?, name, description?, body, variables?, tags?, note? }
Response: { prompt }
curl -X POST "https://www.jonkum.in/api/v1/prompts" \
-H "Cookie: <your signed-in session cookie>" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/prompts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/prompts"
headers = {}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())Render a prompt
GET /v1/prompts/:id/render
Auth: Signed-in session cookie
Response: { text, v } or { error, missing }
curl -X GET "https://www.jonkum.in/api/v1/prompts/id_123/render" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/prompts/id_123/render', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/prompts/id_123/render"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())MCP
MCP: public server
POST /api/mcp
Auth: none (public)
Body: a JSON-RPC 2.0 request
Response: a JSON-RPC 2.0 response
curl -X POST "https://www.jonkum.in/api/mcp" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/mcp', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/mcp"
headers = {}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())MCP: your OS files
POST /v1/mcp/os
Auth: Gateway API key (Authorization: Bearer ngk_...)
Body: a JSON-RPC 2.0 request (MCP Streamable HTTP transport)
Response: a JSON-RPC 2.0 response exposing fs_read, fs_list, fs_write, fs_edit and fs_patch
curl -X POST "https://www.jonkum.in/api/v1/mcp/os" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/mcp/os', {
method: 'POST',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/mcp/os"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())Hosting
Get a site’s audit report
GET /v1/sites/:slug/audit
Auth: Signed-in session cookie, site owner, Hosting add-on required
Response: { report: object | null, trend: Array<{ version: number, at: number, overall: number }> }
curl -X GET "https://www.jonkum.in/api/v1/sites/slug_123/audit" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/sites/slug_123/audit', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/slug_123/audit"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Get a site’s design review
GET /v1/sites/:slug/design-review
Auth: Signed-in session cookie, site owner, Hosting add-on required
Response: { record: object | null, history: Array<{ version: number, at: number, overall: number }> }
curl -X GET "https://www.jonkum.in/api/v1/sites/slug_123/design-review" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/sites/slug_123/design-review', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/slug_123/design-review"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())List a site’s database tables
GET /api/v1/sites/{slug}/db
Auth: session cookie or a gateway API key with hosting access; the caller must be able to read the site
Response: { tables: Array<{ table, label, columns, capabilities, rowCount }> }
curl -X GET "https://www.jonkum.in/api/v1/sites/{slug}/db" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/sites/{slug}/db', {
method: 'GET',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/{slug}/db"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())List or add rows in a site table
GET /api/v1/sites/{slug}/db/{table}
Auth: session cookie or a gateway API key with hosting access; read access to the site
Response: { rows: RowDTO[], total, nextCursor, columns, capabilities }
curl -X GET "https://www.jonkum.in/api/v1/sites/{slug}/db/{table}" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/sites/{slug}/db/{table}', {
method: 'GET',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/{slug}/db/{table}"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())POST /api/v1/sites/{slug}/db/{table}
Auth: session cookie or a gateway API key with hosting access; write access to the site
Body: { cells: Record<string, string | number | boolean | string[] | null> }
Response: { row: RowDTO }
curl -X POST "https://www.jonkum.in/api/v1/sites/{slug}/db/{table}" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/sites/{slug}/db/{table}', {
method: 'POST',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/{slug}/db/{table}"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())Site edge delivery status
GET /v1/sites/:slug/edge
Auth: owner session, Hosting add-on required
Response: { slug, version, publishedAt, deliveryMode, autoRollback, sreAddonActive, rolledBack, rolledBackAt?, history, cache }
curl -X GET "https://www.jonkum.in/api/v1/sites/slug_123/edge" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/sites/slug_123/edge', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/slug_123/edge"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())PATCH /v1/sites/:slug/edge
Auth: same as GET
Body: { autoRollback: boolean }
Response: { autoRollback: boolean }
curl -X PATCH "https://www.jonkum.in/api/v1/sites/slug_123/edge" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/sites/slug_123/edge', {
method: 'PATCH',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/slug_123/edge"
headers = {}
response = requests.patch(url, headers=headers, json={})
print(response.status_code, response.json())Site uptime
GET /v1/sites/:slug/uptime
Auth: owner session, hosting add-on required
Response: { url, uptimePct48h, p95LatencyMs: number | null, samples: [{ at, ok, status?, latencyMs?, error?, region? }], incident: { id, openedAt } | null }
curl -X GET "https://www.jonkum.in/api/v1/sites/slug_123/uptime" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/sites/slug_123/uptime', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/slug_123/uptime"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Stream a site’s database changes
GET /api/v1/sites/{slug}/db/events
Auth: session cookie or a gateway API key with hosting access; site owner only
Response: text/event-stream of { table, rowId, kind: 'inserted'|'updated'|'removed', updatedAt }
curl -X GET "https://www.jonkum.in/api/v1/sites/{slug}/db/events" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/sites/{slug}/db/events', {
method: 'GET',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/{slug}/db/events"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Update or delete a site table row
PATCH /api/v1/sites/{slug}/db/{table}/{rowId}
Auth: session cookie or a gateway API key with hosting access; write access to the site
Body: { cells: Record<string, string | number | boolean | string[] | null> }
Response: { row: RowDTO }
curl -X PATCH "https://www.jonkum.in/api/v1/sites/{slug}/db/{table}/{rowId}" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/sites/{slug}/db/{table}/{rowId}', {
method: 'PATCH',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/{slug}/db/{table}/{rowId}"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.patch(url, headers=headers, json={})
print(response.status_code, response.json())DELETE /api/v1/sites/{slug}/db/{table}/{rowId}
Auth: session cookie or a gateway API key with hosting access; write access to the site
Response: { ok: true }
curl -X DELETE "https://www.jonkum.in/api/v1/sites/{slug}/db/{table}/{rowId}" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/sites/{slug}/db/{table}/{rowId}', {
method: 'DELETE',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/sites/{slug}/db/{table}/{rowId}"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.delete(url, headers=headers)
print(response.status_code, response.json())Account
Who am I
GET /v1/me
Auth: Gateway API key (Authorization: Bearer ngk_...) or a signed-in session
Response: { account, via, scopes, orgId? }
curl -X GET "https://www.jonkum.in/api/v1/me" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>"const response = await fetch('https://www.jonkum.in/api/v1/me', {
method: 'GET',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/me"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())App Store
Download a catalogue app’s zip
GET /v1/store/{publisherId}/{appId}.zip
Auth: none
Response: the app's zip bytes (application/zip), or 404
curl -X GET "https://www.jonkum.in/api/v1/store/{publisherId}/{appId}.zip"const response = await fetch('https://www.jonkum.in/api/v1/store/{publisherId}/{appId}.zip', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/store/{publisherId}/{appId}.zip"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Get a publisher’s catalogue
GET /v1/store/{publisherId}.json
Auth: none (a published catalogue is meant to be shared)
Response: a "kumin-catalog" JSON document listing the publisher's apps, or 404
curl -X GET "https://www.jonkum.in/api/v1/store/{publisherId}.json"const response = await fetch('https://www.jonkum.in/api/v1/store/{publisherId}.json', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/store/{publisherId}.json"
headers = {}
response = requests.get(url, headers=headers)
print(response.status_code, response.json())Publish an app
POST /v1/store/publish
Auth: Gateway API key (Authorization: Bearer ngk_...) or a signed-in session
Body: { id, name, version, kind, description?, icon?, homepage?, license?, author?, permissions?, tags?, screenshots?, minOs?, zipBase64 }
Response: { entry, catalogUrl, publisherId }
curl -X POST "https://www.jonkum.in/api/v1/store/publish" \
-H "Authorization: Bearer ngk_live_your_key_here" \
-H "Cookie: <your signed-in session cookie>" \
-H "Content-Type: application/json" \
-d '{}'const response = await fetch('https://www.jonkum.in/api/v1/store/publish', {
method: 'POST',
headers: {
Authorization: 'Bearer ngk_live_your_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
console.log(response.status, await response.json());import requests
url = "https://www.jonkum.in/api/v1/store/publish"
headers = {"Authorization": "Bearer ngk_live_your_key_here"}
response = requests.post(url, headers=headers, json={})
print(response.status_code, response.json())Three hops, every time
Your code, or your browser, calls one endpoint with a scoped API key.
Authenticates the key, applies your plan and (on a team) your governance policy, then routes the call.
The call reaches the model or storage provider you configured - your own key, or a hosted allowance.
/api/v1/workflows/:id/trigger · Auth: none - verified instead by an HMAC-SHA256 request signature (see
curl -X POST "https://www.jonkum.in/api/v1/workflows/id_123/trigger" \
-H "Content-Type: application/json" \
-d '{}'Governance simulator
Try a tool-argument rule (Settings > Governance) against a sample call, using the real evaluator your team’s policy runs on.
Result: deny — fs_write: path startsWith /projects