{"openapi":"3.1.0","info":{"title":"Ylalo API","version":"0.1.0","description":"Agent-first multi-asset trading on Robinhood Chain. Mirrors the MCP tools at /mcp."},"servers":[{"url":"https://www.ylalo.com"}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/v1/auth/otp":{"post":{"summary":"Request an SMS verification code","security":[],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"phoneNumber":{"type":"string","pattern":"^\\+[1-9]\\d{6,14}$"}},"required":["phoneNumber"]}}}}}},"/v1/auth/verify":{"post":{"summary":"Verify the code; creates the account and wallet on first use; returns accessToken","security":[],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"phoneNumber":{"type":"string","pattern":"^\\+[1-9]\\d{6,14}$"},"code":{"type":"string","pattern":"^\\d{6}$"},"nickname":{"type":"string","minLength":2,"maxLength":32}},"required":["phoneNumber","code"]}}}}}},"/v1/auth/session":{"delete":{"summary":"Revoke the current session","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}}}},"/v1/portfolio":{"get":{"summary":"USD NAV, cash and holdings","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}}}},"/v1/markets":{"get":{"summary":"Search tradable assets (?query=&asset_class=)","security":[],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}},"parameters":[{"name":"query","in":"query","schema":{"default":"","type":"string","maxLength":64}},{"name":"asset_class","in":"query","schema":{"default":"all","type":"string","enum":["stocks","bonds","crypto","prediction","all"]}}]}},"/v1/trades":{"post":{"summary":"Execute a gas-sponsored trade","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"asset_class":{"type":"string","enum":["stocks","bonds","crypto","prediction"]},"contractAddress":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$"},"side":{"type":"string","enum":["buy","sell","yes","no"]},"amount":{"type":"string"},"amountEth":{"type":"string"},"sellAll":{"type":"boolean"},"slippageBps":{"type":"integer","minimum":0,"maximum":1000}},"required":["asset_class","contractAddress","side"]}}}}},"get":{"summary":"Trade history (?limit=&before=)","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}},"parameters":[{"name":"limit","in":"query","schema":{"default":50,"type":"integer","minimum":1,"maximum":200}},{"name":"before","in":"query","schema":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}]}},"/v1/pnl":{"get":{"summary":"Realized and unrealized P&L (USD)","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}}}},"/v1/nav":{"get":{"summary":"NAV and time series (?range=1d|7d|30d|all)","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}},"parameters":[{"name":"range","in":"query","schema":{"default":"7d","type":"string","enum":["1d","7d","30d","all"]}}]}},"/v1/system/status":{"get":{"summary":"Public health and gas-sponsorship status","security":[],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}}}},"/v1/public-config":{"get":{"summary":"Public client config (Sentry DSN and tunnel)","security":[],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}}}},"/v1/admin/funding":{"get":{"summary":"Funding wallets, runway and thresholds","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}}}},"/v1/admin/maintenance":{"post":{"summary":"Run maintenance now (reconcile, retries, top-ups, NAV snapshots)","security":[{"bearer":[]}],"responses":{"200":{"description":"OK"},"default":{"description":"Error: { error: { code, message } }"}}}}}}