{"openapi":"3.1.0","info":{"title":"MONK Agent Interface","version":"1.1.0","description":"Testnet observation and verified-owner Stop/Resume. No agent credential issuance or gameplay scope."},"servers":[{"url":"/"}],"paths":{"/api/agent/v1/capabilities":{"get":{"summary":"Discover supported version, actions and limitations","responses":{"200":{"description":"Public JSON discovery document","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input, expired/incorrect owner session, request ID conflict, cooldown or unavailable state."},"405":{"description":"Method not allowed"}},"operationId":"getCapabilities","security":[]}},"/api/agent/v1/openapi.json":{"get":{"summary":"Read this OpenAPI contract","responses":{"200":{"description":"Public JSON discovery document","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid input, expired/incorrect owner session, request ID conflict, cooldown or unavailable state."},"405":{"description":"Method not allowed"}},"operationId":"getOpenApi","security":[]}},"/api/agent/v1/bots/{botId}":{"parameters":[{"name":"botId","in":"path","required":true,"schema":{"enum":["leo","max"]}}],"get":{"summary":"Read public bot status","responses":{"200":{"description":"Current public bot status; encrypted seed and vault key are never returned.","content":{"application/json":{"schema":{"type":"object","required":["ok","network","bot"],"properties":{"ok":{"type":"boolean"},"network":{"const":"TESTNET"},"botId":{"enum":["leo","max"]},"label":{"type":"string"},"intervalSeconds":{"type":"integer"},"bot":{"type":["object","null"]}}}}}},"400":{"description":"Invalid input, expired/incorrect owner session, request ID conflict, cooldown or unavailable state."},"405":{"description":"Method not allowed"}},"operationId":"getBotStatus","security":[]}},"/api/agent/v1/bots/{botId}/control":{"parameters":[{"name":"botId","in":"path","required":true,"schema":{"enum":["leo","max"]}}],"post":{"summary":"Stop or resume a bot with the existing verified owner session. No ledger transaction is submitted by this action.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["sessionToken","action","requestId"],"properties":{"sessionToken":{"type":"string","writeOnly":true,"description":"Existing verified owner session; max lifetime two hours."},"action":{"enum":["stop","resume"]},"requestId":{"type":"string","format":"uuid","description":"Reuse on retry; immutable action binding."}}}}}},"responses":{"200":{"description":"Current public bot status; encrypted seed and vault key are never returned.","content":{"application/json":{"schema":{"type":"object","required":["ok","network","bot"],"properties":{"ok":{"type":"boolean"},"network":{"const":"TESTNET"},"botId":{"enum":["leo","max"]},"label":{"type":"string"},"intervalSeconds":{"type":"integer"},"bot":{"type":["object","null"]}}}}}},"400":{"description":"Invalid input, expired/incorrect owner session, request ID conflict, cooldown or unavailable state."},"405":{"description":"POST required"}},"operationId":"controlBot"}},"/api/monk-max-bot":{"get":{"summary":"Read Max status (website alias)","responses":{"200":{"description":"Current public bot status; encrypted seed and vault key are never returned.","content":{"application/json":{"schema":{"type":"object","required":["ok","network","bot"],"properties":{"ok":{"type":"boolean"},"network":{"const":"TESTNET"},"botId":{"enum":["leo","max"]},"label":{"type":"string"},"intervalSeconds":{"type":"integer"},"bot":{"type":["object","null"]}}}}}},"400":{"description":"Invalid input, expired/incorrect owner session, request ID conflict, cooldown or unavailable state."},"405":{"description":"Method not allowed"}},"operationId":"getMaxStatus","security":[]}},"/api/agent/v1/site":{"get":{"operationId":"getSiteMap","summary":"Machine-readable pages, public reads, authentication and limitations.","security":[],"responses":{"200":{"description":"Machine-readable pages, public reads, authentication and limitations.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Data unavailable; back off and retry observation."},"405":{"description":"GET required"}}}},"/api/monknopoly/board":{"get":{"operationId":"getGameBoard","summary":"Current server board rules.","security":[],"responses":{"200":{"description":"Current server board rules.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Data unavailable; back off and retry observation."},"405":{"description":"GET required"}}}},"/api/monknopoly/share-prices":{"get":{"operationId":"getSharePrices","summary":"Public current game share prices.","security":[],"responses":{"200":{"description":"Public current game share prices.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Data unavailable; back off and retry observation."},"405":{"description":"GET required"}}}},"/api/monknopoly/leaderboards":{"get":{"operationId":"getLeaderboards","summary":"Public game leaderboard data.","security":[],"responses":{"200":{"description":"Public game leaderboard data.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Data unavailable; back off and retry observation."},"405":{"description":"GET required"}}}},"/api/agent/v1/profiles":{"get":{"operationId":"getBotProfiles","summary":"Read Leo and Max public avatar profiles","security":[],"responses":{"200":{"description":"Public bot ID, label, wallet address and avatar filename only.","content":{"application/json":{"schema":{"type":"object","required":["ok","network","profiles"],"properties":{"ok":{"type":"boolean"},"network":{"const":"TESTNET"},"profiles":{"type":"array","items":{"type":"object","properties":{"botId":{"enum":["leo","max"]},"label":{"type":"string"},"address":{"type":["string","null"]},"avatarId":{"type":"string"}}}}}}}}},"405":{"description":"GET required"},"503":{"description":"Profile storage unavailable; retry later."}}}}}}