API reference
Flocks
Your own machines and cloud instances with a harness installed: enroll nodes, rotate their credentials and read their state.
- Operations
- 10
- Base path
https://os.one.ml/api/v1/flocks- Scopes
flocks:readflocks:write- API keys
- 1 failed with an API key · 2 need a signed-in session · 4 not yet tested · 3 tested with an API key
- SDK
genesis.call('flocks_enrollNode', …)· helpers undergenesis.flocks- MCP
- 10 tools
Operations
Byom
Exchange a join token under verified One account org identity
POST/v1/flocks/byom/enroll
Request body application/json
tokenstringrequiredmax length 256
namestringrequiredmax length 128
platformstringrequiredmax length 128
cpu_countintegerrequiredmin 1 · max 65536
Responses
- 200Success
Response fields
nodeobjectrequirednode.idstringrequirednode.namestringrequirednode.nicknamestringrequirednode.platformstringrequirednode.cpu_countintegerrequiredmin 1
node.state"enrolled" | "revoked"requirednode.last_seen_atintegerrequirednode.enrolled_atintegerrequirednode_bindingstringrequiredheartbeat_interval_secondsintegerrequired
- 401Invalid One account credential or node binding
- 403Insufficient permission
- 404Unknown resource in verified org
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/flocks/byom/enroll" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"token": "string",
"name": "string",
"platform": "string",
"cpu_count": 1
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_enrollNode', {
body: {
token: 'string',
name: 'string',
platform: 'string',
cpu_count: 1,
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_enrollNode",
"arguments": {
"body": {
"token": "string",
"name": "string",
"platform": "string",
"cpu_count": 1
}
}
}
}List customer hardware belonging to the verified org
GET/v1/flocks/byom/nodes
Responses
- 200Success
Response fields
idstringrequirednamestringrequirednicknamestringrequiredplatformstringrequiredcpu_countintegerrequiredmin 1
state"enrolled" | "revoked"requiredlast_seen_atintegerrequiredenrolled_atintegerrequired
- 401Invalid One account credential or node binding
- 403Insufficient permission
- 404Unknown resource in verified org
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/flocks/byom/nodes" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_listNodes'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_listNodes",
"arguments": {}
}
}Revoke an org-owned node binding immediately
DELETE/v1/flocks/byom/nodes/{id}
Parameters
idpath · stringrequired
Responses
- 200Success
Response fields
idstringrequirednamestringrequirednicknamestringrequiredplatformstringrequiredcpu_countintegerrequiredmin 1
state"enrolled" | "revoked"requiredlast_seen_atintegerrequiredenrolled_atintegerrequired
- 401Invalid One account credential or node binding
- 403Insufficient permission
- 404Unknown resource in verified org
- 4xx 5xxThe error envelope.
curl -X DELETE "https://os.one.ml/api/v1/flocks/byom/nodes/$ID" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_revokeNode', {
id: '<id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_revokeNode",
"arguments": {
"id": "<id>"
}
}
}Update an org-owned node nickname
PATCH/v1/flocks/byom/nodes/{id}
Parameters
idpath · stringrequired
Request body application/json
nicknamestringrequiredmax length 128
Responses
- 200Success
Response fields
idstringrequirednamestringrequirednicknamestringrequiredplatformstringrequiredcpu_countintegerrequiredmin 1
state"enrolled" | "revoked"requiredlast_seen_atintegerrequiredenrolled_atintegerrequired
- 401Invalid One account credential or node binding
- 403Insufficient permission
- 404Unknown resource in verified org
- 4xx 5xxThe error envelope.
curl -X PATCH "https://os.one.ml/api/v1/flocks/byom/nodes/$ID" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nickname": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_renameNode', {
id: '<id>',
body: {
nickname: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_renameNode",
"arguments": {
"id": "<id>",
"body": {
"nickname": "string"
}
}
}
}Record presence using One account auth plus the node-specific binding
POST/v1/flocks/byom/nodes/{id}/heartbeat
Parameters
idpath · stringrequired
Request body application/json
node_bindingstringrequiredmin length 64 · max length 64
Responses
- 200Success
Response fields
acceptedbooleanrequired
- 401Invalid One account credential or node binding
- 403Insufficient permission
- 404Unknown resource in verified org
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/flocks/byom/nodes/$ID/heartbeat" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"node_binding": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_heartbeatNode', {
id: '<id>',
body: {
node_binding: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_heartbeatNode",
"arguments": {
"id": "<id>",
"body": {
"node_binding": "string"
}
}
}
}Read server-owned enrollment availability for the verified org
GET/v1/flocks/byom/readiness
Responses
- 200Enrollment readiness
Response fields
node_enrollment_availablebooleanrequiredTrue only when the service can complete the scoped One account node credential flow.
reason_code"node_credential_issuer_unavailable"Present while a supported scoped node credential issuer is unavailable.
- 401Invalid One account credential
- 403Insufficient permission
- 503The configured durable inventory store is unavailable
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/flocks/byom/readiness" \
-H "Authorization: Bearer $GENESIS_API_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_getEnrollmentReadiness'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_getEnrollmentReadiness",
"arguments": {}
}
}Create an org-scoped single-use join token (admin required)
POST/v1/flocks/byom/tokens
Request body application/json
ttl_secondsintegermin 60 · max 600 · default 600
Responses
- 200Success
Response fields
tokenstringrequiredexpires_atintegerrequired
- 401Invalid One account credential or node binding
- 403Insufficient permission
- 404Unknown resource in verified org
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/flocks/byom/tokens" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_createJoinToken', {
body: {},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_createJoinToken",
"arguments": {
"body": {}
}
}
}Activate
Activate the exact saved One account node reservation idempotently
POST/v1/flocks/nodes/{id}/activate
Parameters
idpath · string (uuid)required
Request body application/json
node_noncestringrequiredpattern ^[0-9a-f]{64}$
namestringrequiredmin length 1 · max length 128
platformstringrequiredmin length 1 · max length 128
cpu_countintegerrequiredmin 1 · max 65536
Responses
- 200The same enrolled node, without reusable secrets
Response fields
nodeobjectrequirednode.idstringrequirednode.namestringrequirednode.nicknamestringrequirednode.platformstringrequirednode.cpu_countintegerrequiredmin 1
node.state"enrolled" | "revoked"requirednode.last_seen_atintegerrequirednode.enrolled_atintegerrequiredactivatedbooleanrequired
- 401Inactive node credential
- 404Unknown or foreign node/nonce
- 409Conflicting or revoked reservation
- 503Native receiver unavailable
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/flocks/nodes/$ID/activate" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"node_nonce": "string",
"name": "string",
"platform": "string",
"cpu_count": 1
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_activateNode', {
id: '<id>',
body: {
node_nonce: 'string',
name: 'string',
platform: 'string',
cpu_count: 1,
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_activateNode",
"arguments": {
"id": "<id>",
"body": {
"node_nonce": "string",
"name": "string",
"platform": "string",
"cpu_count": 1
}
}
}
}Credential:rotate
Prepare a fixed-scope key, persist it, then commit; cancel an uncertain prepare before retrying
POST/v1/flocks/nodes/{id}/credential:rotate
Parameters
idpath · string (uuid)required
Request body application/json
action"prepare" | "commit" | "cancel"requirednode_noncestringrequiredpattern ^[0-9a-f]{64}$
operation_noncestringrequiredpattern ^[0-9a-f]{64}$
Responses
- 200Committed or cancelled
Response fields
acceptedbooleanrequired
- 201Prepared key shown once; persist before commit
Response fields
node_idstring (uuid)requiredorganization_idstringrequiredcredential_idstringrequiredcredential_valuestringrequiredmin length 1 · max length 4096
scopes"flocks:node"[]requiredexpires_atstring (date-time)requirednode_nonce_hashstringpattern ^[0-9a-f]{64}$
- 401Inactive key version
- 404Unknown or foreign node/nonce
- 409Pending, terminal or premature rotation
- 503Rotation unavailable; retain recovery state
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/flocks/nodes/$ID/credential:rotate" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "prepare",
"node_nonce": "string",
"operation_nonce": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_rotateNodeCredential', {
id: '<id>',
body: {
action: 'prepare',
node_nonce: 'string',
operation_nonce: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_rotateNodeCredential",
"arguments": {
"id": "<id>",
"body": {
"action": "prepare",
"node_nonce": "string",
"operation_nonce": "string"
}
}
}
}Nodes
Exchange a one-time Console join for a node-only One account credential; persist it before activation
POST/v1/flocks/nodes/enroll
Request body application/json
tokenstringrequiredpattern ^[0-9a-f]{64}$
node_noncestringrequiredpattern ^[0-9a-f]{64}$
Responses
- 201Credential shown once; save privately before activation
Response fields
node_idstring (uuid)requiredorganization_idstringrequiredcredential_idstringrequiredcredential_valuestringrequiredmin length 1 · max length 4096
scopes"flocks:node"[]requiredexpires_atstring (date-time)requirednode_nonce_hashstringpattern ^[0-9a-f]{64}$
- 400Invalid closed body or unexpected bearer
- 401Expired or used join
- 503Native issuance unavailable
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/flocks/nodes/enroll" \
-H "Content-Type: application/json" \
-d '{
"token": "string",
"node_nonce": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('flocks_exchangeJoinToken', {
body: {
token: 'string',
node_nonce: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "flocks_exchangeJoinToken",
"arguments": {
"body": {
"token": "string",
"node_nonce": "string"
}
}
}
}One Superintelligence, Inc. · Built from Genesis 0.1.12 and the live gateway on 2026-10-20. Support