API reference
Fleets
Managed Henry agents: create instances, give them tasks and read their usage.
- Operations
- 18
- Base path
https://os.one.ml/api/v1/fleets- Scopes
fleets:readfleets:write- API keys
- 8 failed with an API key · 2 not yet tested · 8 tested with an API key
- SDK
genesis.call('fleets_listAgents', …)· helpers undergenesis.fleets- MCP
- 18 tools
Operations
| Operation | Endpoint | API key |
|---|---|---|
| List persistent Henry agents | GET/agents | Tested with an API key |
| Launch a persistent Henry agent | POST/agents | Tested with an API key |
| Read one persistent Henry agent | GET/agents/{agent_id} | Tested with an API key |
| Send input to a persistent Henry agent | POST/agents/{agent_id}/command | Failed with an API key |
| Recover a persistent Henry agent | POST/agents/{agent_id}/recover | Failed with an API key |
| Stop a persistent Henry agent | POST/agents/{agent_id}/stop | Failed with an API key |
| Read the organization Foundry connection | GET/connection | Tested with an API key |
| Encrypt an organization-owned Foundry key with Genesis KMS | PUT/connection | Tested with an API key |
| Disconnect the organization Foundry key | DELETE/connection | Tested with an API key |
| Read admitted Henry instance status in the verified organization | GET/instances | Failed with an API key |
| Read one admitted Henry instance | GET/instances/{instance_id} | Failed with an API key |
| Start already admitted Henry compute | POST/instances/{instance_id}/start | Failed with an API key |
| Stop admitted Henry compute and retain its data | POST/instances/{instance_id}/stop | Failed with an API key |
| List organization tasks | GET/tasks | Tested with an API key |
| Dispatch an agent task | POST/tasks | Failed with an API key |
| Read an organization task | GET/tasks/{task_id} | Tested with an API key |
| Cancel an organization task | POST/tasks/{task_id}/cancel | — |
| Read an execution receipt | GET/tasks/{task_id}/receipt | — |
Agents
List persistent Henry agents
GET/v1/fleets/agents
Lists only agents owned by the verified organization. Henry owns execution; Foundry inference is managed by the platform and Memory defaults to Minds while allowing a compatible provider.
Responses
- 200Success
Response fields
agentsobject[]requiredagents[].[].idstring (uuid)requiredagents[].[].namestringrequiredagents[].[].state"launching" | "running" | "stopping" | "stopped" | "recovering" | "recovery_required"requiredagents[].[].memoryobjectrequiredagents[].[].memory.provider"minds" | "files" | "custom"requiredagents[].[].memory.namespacestringmax length 128
agents[].[].memory.endpointstring (uri)agents[].[].modelstring | nullagents[].[].inferenceobjectrequiredagents[].[].inference.provider"foundry"requiredagents[].[].inference.mode"managed"requiredagents[].[].created_at_msintegerrequiredmin 0
agents[].[].updated_at_msintegerrequiredmin 0
agents[].[].last_operation_idstring | null (uuid)
- 401Verified Genesis identity and fleets scope required
- 404Agent is missing or belongs to another organization
- 409Operation conflicts with the current agent state
- 422Invalid input
- 503Henry runtime or durable agent storage is unavailable
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/fleets/agents" \
-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('fleets_listAgents'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_listAgents",
"arguments": {}
}
}Launch a persistent Henry agent
POST/v1/fleets/agents
Creates one durable Henry agent on Fleets-managed compute. The platform supplies Foundry inference automatically; no provider key is accepted. Memory defaults to Minds and may name a compatible provider.
Request body application/json
namestringrequiredmin length 1 · max length 128
memoryobjectmemory.provider"minds" | "files" | "custom"requiredmemory.namespacestringmax length 128
memory.endpointstring (uri)modelstringmax length 128
instructionsstringmax length 65536
idempotency_keystringmin length 1 · max length 128 · pattern ^[!-~]+$
Responses
- 201Agent launched
Response fields
idstring (uuid)requirednamestringrequiredstate"launching" | "running" | "stopping" | "stopped" | "recovering" | "recovery_required"requiredmemoryobjectrequiredmemory.provider"minds" | "files" | "custom"requiredmemory.namespacestringmax length 128
memory.endpointstring (uri)modelstring | nullinferenceobjectrequiredinference.provider"foundry"requiredinference.mode"managed"requiredcreated_at_msintegerrequiredmin 0
updated_at_msintegerrequiredmin 0
last_operation_idstring | null (uuid)
- 401Verified Genesis identity and fleets scope required
- 404Agent is missing or belongs to another organization
- 409Operation conflicts with the current agent state
- 422Invalid input
- 503Henry runtime or durable agent storage is unavailable
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/fleets/agents" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('fleets_launchAgent', {
body: {
name: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_launchAgent",
"arguments": {
"body": {
"name": "string"
}
}
}
}Read one persistent Henry agent
GET/v1/fleets/agents/{agent_id}
Parameters
agent_idpath · string (uuid)required
Responses
- 200Success
Response fields
idstring (uuid)requirednamestringrequiredstate"launching" | "running" | "stopping" | "stopped" | "recovering" | "recovery_required"requiredmemoryobjectrequiredmemory.provider"minds" | "files" | "custom"requiredmemory.namespacestringmax length 128
memory.endpointstring (uri)modelstring | nullinferenceobjectrequiredinference.provider"foundry"requiredinference.mode"managed"requiredcreated_at_msintegerrequiredmin 0
updated_at_msintegerrequiredmin 0
last_operation_idstring | null (uuid)
- 401Verified Genesis identity and fleets scope required
- 404Agent is missing or belongs to another organization
- 409Operation conflicts with the current agent state
- 422Invalid input
- 503Henry runtime or durable agent storage is unavailable
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/fleets/agents/$AGENT_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('fleets_getAgent', {
agent_id: '<agent_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_getAgent",
"arguments": {
"agent_id": "<agent_id>"
}
}
}Command
Send input to a persistent Henry agent
POST/v1/fleets/agents/{agent_id}/command
Parameters
agent_idpath · string (uuid)required
Request body application/json
inputstringrequiredmin length 1 · max length 65536
delivery"queue" | "steer" | "interrupt"
Responses
- 200Success
Response fields
agentobjectrequiredagent.idstring (uuid)requiredagent.namestringrequiredagent.state"launching" | "running" | "stopping" | "stopped" | "recovering" | "recovery_required"requiredagent.memoryobjectrequiredagent.memory.provider"minds" | "files" | "custom"requiredagent.memory.namespacestringmax length 128
agent.memory.endpointstring (uri)agent.modelstring | nullagent.inferenceobjectrequiredagent.inference.provider"foundry"requiredagent.inference.mode"managed"requiredagent.created_at_msintegerrequiredmin 0
agent.updated_at_msintegerrequiredmin 0
agent.last_operation_idstring | null (uuid)operation_idstring (uuid)requiredresultobject
- 401Verified Genesis identity and fleets scope required
- 404Agent is missing or belongs to another organization
- 409Operation conflicts with the current agent state
- 422Invalid input
- 503Henry runtime or durable agent storage is unavailable
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/fleets/agents/$AGENT_ID/command" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('fleets_commandAgent', {
agent_id: '<agent_id>',
body: {
input: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_commandAgent",
"arguments": {
"agent_id": "<agent_id>",
"body": {
"input": "string"
}
}
}
}Recover
Recover a persistent Henry agent
POST/v1/fleets/agents/{agent_id}/recover
Parameters
agent_idpath · string (uuid)required
Responses
- 200Success
Response fields
agentobjectrequiredagent.idstring (uuid)requiredagent.namestringrequiredagent.state"launching" | "running" | "stopping" | "stopped" | "recovering" | "recovery_required"requiredagent.memoryobjectrequiredagent.memory.provider"minds" | "files" | "custom"requiredagent.memory.namespacestringmax length 128
agent.memory.endpointstring (uri)agent.modelstring | nullagent.inferenceobjectrequiredagent.inference.provider"foundry"requiredagent.inference.mode"managed"requiredagent.created_at_msintegerrequiredmin 0
agent.updated_at_msintegerrequiredmin 0
agent.last_operation_idstring | null (uuid)operation_idstring (uuid)requiredresultobject
- 401Verified Genesis identity and fleets scope required
- 404Agent is missing or belongs to another organization
- 409Operation conflicts with the current agent state
- 422Invalid input
- 503Henry runtime or durable agent storage is unavailable
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/fleets/agents/$AGENT_ID/recover" \
-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('fleets_recoverAgent', {
agent_id: '<agent_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_recoverAgent",
"arguments": {
"agent_id": "<agent_id>"
}
}
}Stop
Stop a persistent Henry agent
POST/v1/fleets/agents/{agent_id}/stop
Parameters
agent_idpath · string (uuid)required
Responses
- 200Success
Response fields
agentobjectrequiredagent.idstring (uuid)requiredagent.namestringrequiredagent.state"launching" | "running" | "stopping" | "stopped" | "recovering" | "recovery_required"requiredagent.memoryobjectrequiredagent.memory.provider"minds" | "files" | "custom"requiredagent.memory.namespacestringmax length 128
agent.memory.endpointstring (uri)agent.modelstring | nullagent.inferenceobjectrequiredagent.inference.provider"foundry"requiredagent.inference.mode"managed"requiredagent.created_at_msintegerrequiredmin 0
agent.updated_at_msintegerrequiredmin 0
agent.last_operation_idstring | null (uuid)operation_idstring (uuid)requiredresultobject
- 401Verified Genesis identity and fleets scope required
- 404Agent is missing or belongs to another organization
- 409Operation conflicts with the current agent state
- 422Invalid input
- 503Henry runtime or durable agent storage is unavailable
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/fleets/agents/$AGENT_ID/stop" \
-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('fleets_stopAgent', {
agent_id: '<agent_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_stopAgent",
"arguments": {
"agent_id": "<agent_id>"
}
}
}Stop admitted Henry compute and retain its data
POST/v1/fleets/instances/{instance_id}/stop
Requires Fleets write. No body or query. Returns only the original confirmed release receipt; an uncertain mutation response is observed without replay. Does not imply agent inference or Memory readiness.
Parameters
instance_idpath · string (uuid)requiredIdempotency-Keyheader · stringCanonical UUID4 identifying one explicit lifecycle operation; retain after an uncertain reply. It carries no authorization.
Responses
- 200Original confirmed release acknowledgment
Response fields
idstring (uuid)requiredstate"released"requiredreapedtruerequireddata_retainedtruerequiredstatus_evidence"confirmed_release_receipt"requiredrelease_acknowledged_at_msintegerrequiredmin 0
- 401Verified Genesis identity and fleets:write required
- 404Instance is missing or belongs to another organization
- 422Stop accepts no body or query
- 503Release is unavailable or not confirmed; no invented success
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/fleets/instances/$INSTANCE_ID/stop" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const idempotencyKey = '<a stable key per change>'
const result = await genesis.call('fleets_stopInstance', {
instance_id: '<instance_id>',
}, {
headers: { 'Idempotency-Key': idempotencyKey }, // one key per change, reused on every retry
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_stopInstance",
"arguments": {
"instance_id": "<instance_id>",
"idempotency_key": "<a stable key per change>"
}
}
}Connection
Read the organization Foundry connection
GET/v1/fleets/connection
Responses
- 200Secret-free connection status
Response fields
connectedbooleanrequiredmodelstringrequiredupdated_atintegermin 0
- 401Verified caller required
- 403Insufficient scope
- 422Invalid or foreign-organization credential
- 503Connection storage unavailable
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/fleets/connection" \
-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('fleets_getConnection'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_getConnection",
"arguments": {}
}
}Encrypt an organization-owned Foundry key with Genesis KMS
PUT/v1/fleets/connection
Request body application/json
api_keystringrequiredFoundry key owned by the signed organization with foundry:gateway:invoke; 1–4096 UTF-8 bytes without CR, LF or NUL. min length 1 · max length 4096 · pattern ^[^\r\n\u0000]*$
Responses
- 200Secret-free connection status
Response fields
connectedbooleanrequiredmodelstringrequiredupdated_atintegermin 0
- 401Verified caller required
- 403Insufficient scope
- 422Invalid or foreign-organization credential
- 503Connection storage unavailable
- 4xx 5xxThe error envelope.
curl -X PUT "https://os.one.ml/api/v1/fleets/connection" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"api_key": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('fleets_setConnection', {
body: {
api_key: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_setConnection",
"arguments": {
"body": {
"api_key": "string"
}
}
}
}Disconnect the organization Foundry key
DELETE/v1/fleets/connection
Responses
- 200Secret-free connection status
Response fields
connectedbooleanrequiredmodelstringrequiredupdated_atintegermin 0
- 401Verified caller required
- 403Insufficient scope
- 422Invalid or foreign-organization credential
- 503Connection storage unavailable
- 4xx 5xxThe error envelope.
curl -X DELETE "https://os.one.ml/api/v1/fleets/connection" \
-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('fleets_deleteConnection'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_deleteConnection",
"arguments": {}
}
}Instances
Read admitted Henry instance status in the verified organization
GET/v1/fleets/instances
Protected server-owned placements only. Admission hold is distinct from physical state and neither proves harness readiness. Default-off until actual Henry Host bindings are configured.
Parameters
limitquery · integerafterquery · string (uuid)
Responses
- 200Actual scoped Host status page
Response fields
instancesobject[]requiredinstances[].[].idstring (uuid)requiredinstances[].[].namestringrequiredmin length 1 · max length 128
instances[].[].organization_idstringrequiredinstances[].[].workspace_idstringrequiredinstances[].[].project_idstringrequiredinstances[].[].admission_heldboolean | nullrequiredHost admission fence; does not mean the workload is physically paused. Null after confirmed release.
instances[].[].physical_state"created" | "running" | "held" | "stopped" | "recovery_required" | "released"requiredinstances[].[].status_evidence"live_controller" | "confirmed_release_receipt"requiredinstances[].[].release_acknowledged_at_msinteger | nullrequiredOriginal Host acknowledgment of a confirmed release, not a new live observation min 0
instances[].[].harness_readybooleanrequiredReported by the real Henry harness, never inferred from a container or relay
instances[].[].observed_at_msinteger | nullrequiredmin 0
instances[].[].lease_expiresobject | nullrequiredinstances[].[].lease_expires.wall_msintegerrequiredmin 0
instances[].[].lease_expires.logicalintegerrequiredmin 0
next_cursorstring | null (uuid)required
- 401Verified Genesis identity and Fleets read scope required
- 404Cursor does not belong to the verified organization
- 422Invalid query
- 503Placements are unconfigured or actual Host status is unavailable; never an invented empty list
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/fleets/instances" \
-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('fleets_listInstances'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_listInstances",
"arguments": {}
}
}Read one admitted Henry instance
GET/v1/fleets/instances/{instance_id}
Parameters
instance_idpath · string (uuid)required
Responses
- 200Actual scoped Host status
Response fields
idstring (uuid)requirednamestringrequiredmin length 1 · max length 128
organization_idstringrequiredworkspace_idstringrequiredproject_idstringrequiredadmission_heldboolean | nullrequiredHost admission fence; does not mean the workload is physically paused. Null after confirmed release.
physical_state"created" | "running" | "held" | "stopped" | "recovery_required" | "released"requiredstatus_evidence"live_controller" | "confirmed_release_receipt"requiredrelease_acknowledged_at_msinteger | nullrequiredOriginal Host acknowledgment of a confirmed release, not a new live observation min 0
harness_readybooleanrequiredReported by the real Henry harness, never inferred from a container or relay
observed_at_msinteger | nullrequiredmin 0
lease_expiresobject | nullrequiredlease_expires.wall_msintegerrequiredmin 0
lease_expires.logicalintegerrequiredmin 0
- 401Verified Genesis identity and Fleets read scope required
- 404Instance is missing or belongs to another verified organization
- 503Actual Host status is unavailable or unconfirmed
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/fleets/instances/$INSTANCE_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('fleets_getInstance', {
instance_id: '<instance_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_getInstance",
"arguments": {
"instance_id": "<instance_id>"
}
}
}Start
Start already admitted Henry compute
POST/v1/fleets/instances/{instance_id}/start
Requires Fleets write. No body or query. Confirms one genuine Start connection and a current unheld/running observation, without automatic replay. Does not create a new placement or configure inference/Memory; harness_ready remains false in this producer slice.
Parameters
instance_idpath · string (uuid)requiredIdempotency-Keyheader · stringCanonical UUID4 identifying one explicit lifecycle operation; retain after an uncertain reply. It carries no authorization.
Responses
- 200Confirmed current admitted-compute status
Response fields
idstring (uuid)requirednamestringrequiredmin length 1 · max length 128
organization_idstringrequiredworkspace_idstringrequiredproject_idstringrequiredadmission_heldboolean | nullrequiredHost admission fence; does not mean the workload is physically paused. Null after confirmed release.
physical_state"created" | "running" | "held" | "stopped" | "recovery_required" | "released"requiredstatus_evidence"live_controller" | "confirmed_release_receipt"requiredrelease_acknowledged_at_msinteger | nullrequiredOriginal Host acknowledgment of a confirmed release, not a new live observation min 0
harness_readybooleanrequiredReported by the real Henry harness, never inferred from a container or relay
observed_at_msinteger | nullrequiredmin 0
lease_expiresobject | nullrequiredlease_expires.wall_msintegerrequiredmin 0
lease_expires.logicalintegerrequiredmin 0
- 401Verified Genesis identity and fleets:write required
- 404Instance is missing or belongs to another organization
- 422Start accepts no body or query
- 503Connection or current running state is unavailable or unconfirmed; no retry
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/fleets/instances/$INSTANCE_ID/start" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY"import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const idempotencyKey = '<a stable key per change>'
const result = await genesis.call('fleets_startInstance', {
instance_id: '<instance_id>',
}, {
headers: { 'Idempotency-Key': idempotencyKey }, // one key per change, reused on every retry
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_startInstance",
"arguments": {
"instance_id": "<instance_id>",
"idempotency_key": "<a stable key per change>"
}
}
}Tasks
List organization tasks
GET/v1/fleets/tasks
Parameters
limitquery · integerbeforequery · string (uuid)
Responses
- 200Success
Response fields
tasksobject[]requiredtasks[].[].task_idstring (uuid)requiredtasks[].[].submitted_atstring (date-time)requiredtasks[].[].started_atstring | null (date-time)tasks[].[].completed_atstring | null (date-time)tasks[].[].state"pending" | "running" | "cancelling" | "completed" | "failed" | "cancelled" | "timed_out"requirednext_beforestring | null (uuid)required
- 401Invalid credential
- 403Insufficient scope
- 404Task does not belong to the verified organization
- 409Receipt not ready or idempotency conflict
- 422Invalid input
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/fleets/tasks" \
-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('fleets_listTasks'){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_listTasks",
"arguments": {}
}
}Dispatch an agent task
POST/v1/fleets/tasks
Request body application/json
inputstringrequiredTask text: 1–65536 UTF-8 bytes without NUL. The byte limit applies to encoded text, not character count. min length 1 · max length 65536 · pattern ^[^\u0000]*$
timeout_secondsintegermin 1 · max 3600 · default 300
idempotency_keystringmin length 1 · max length 128 · pattern ^[!-~]+$
Responses
- 200Success
Response fields
task_idstring (uuid)requiredstatusobjectrequiredstatus.state"pending" | "running" | "cancelling" | "completed" | "failed" | "cancelled" | "timed_out"requiredstatus.outputstringstatus.errorstringsubmitted_atstring (date-time)requiredstarted_atstring | null (date-time)completed_atstring | null (date-time)
- 401Invalid credential
- 403Insufficient scope
- 404Task does not belong to the verified organization
- 409Receipt not ready or idempotency conflict
- 422Invalid input
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/fleets/tasks" \
-H "Authorization: Bearer $GENESIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"input": "string"
}'import { Genesis } from '@lifesi/genesis'
const genesis = new Genesis({ apiKey: process.env.GENESIS_API_KEY })
const result = await genesis.call('fleets_submitTask', {
body: {
input: 'string',
},
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_submitTask",
"arguments": {
"body": {
"input": "string"
}
}
}
}Read an organization task
GET/v1/fleets/tasks/{task_id}
Parameters
task_idpath · string (uuid)required
Responses
- 200Success
Response fields
task_idstring (uuid)requiredstatusobjectrequiredstatus.state"pending" | "running" | "cancelling" | "completed" | "failed" | "cancelled" | "timed_out"requiredstatus.outputstringstatus.errorstringsubmitted_atstring (date-time)requiredstarted_atstring | null (date-time)completed_atstring | null (date-time)
- 401Invalid credential
- 403Insufficient scope
- 404Task does not belong to the verified organization
- 409Receipt not ready or idempotency conflict
- 422Invalid input
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/fleets/tasks/$TASK_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('fleets_getTask', {
task_id: '<task_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_getTask",
"arguments": {
"task_id": "<task_id>"
}
}
}Cancel
Cancel an organization task
POST/v1/fleets/tasks/{task_id}/cancel
Parameters
task_idpath · string (uuid)required
Responses
- 200Success
Response fields
task_idstringrequiredstatusobjectrequiredstatus.state"pending" | "running" | "cancelling" | "completed" | "failed" | "cancelled" | "timed_out"requiredstatus.outputstringstatus.errorstring
- 401Invalid credential
- 403Insufficient scope
- 404Task does not belong to the verified organization
- 409Receipt not ready or idempotency conflict
- 422Invalid input
- 4xx 5xxThe error envelope.
curl -X POST "https://os.one.ml/api/v1/fleets/tasks/$TASK_ID/cancel" \
-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('fleets_cancelTask', {
task_id: '<task_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_cancelTask",
"arguments": {
"task_id": "<task_id>"
}
}
}Receipt
Read an execution receipt
GET/v1/fleets/tasks/{task_id}/receipt
Parameters
task_idpath · string (uuid)required
Responses
- 200Success
Response fields
task_idstring (uuid)requiredstatusobjectrequiredstatus.state"pending" | "running" | "cancelling" | "completed" | "failed" | "cancelled" | "timed_out"requiredstatus.outputstringstatus.errorstringsubmitted_atstring (date-time)requiredstarted_atstring | null (date-time)completed_atstring | null (date-time)tenantstringrequiredprincipalstringrequiredidempotency_keystring | nullrequiredrequest_fingerprintstringrequiredtimeout_secondsintegerrequiredexit_codeinteger | nullrequiredexit_signalinteger | nullrequiredcleanup_resultobject | nullrequiredcleanup_result.process_group_gonebooleancleanup_result.workdir_removedbooleancleanup_result.sigkill_sentbooleanhenry_receiptobjectOriginal Henry signed execution record when Henry launched; provider response text is separate and is not signed by this record.
- 401Invalid credential
- 403Insufficient scope
- 404Task does not belong to the verified organization
- 409Receipt not ready or idempotency conflict
- 422Invalid input
- 4xx 5xxThe error envelope.
curl "https://os.one.ml/api/v1/fleets/tasks/$TASK_ID/receipt" \
-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('fleets_getTaskReceipt', {
task_id: '<task_id>',
}){
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "fleets_getTaskReceipt",
"arguments": {
"task_id": "<task_id>"
}
}
}One Superintelligence, Inc. · Built from Genesis 0.1.12 and the live gateway on 2026-10-20. Support