{"openapi":"3.1.0","info":{"title":"Kira Sato AISO profile API","version":"0.1.0"},"servers":[{"url":"https://aiso.tools"}],"paths":{"/p/kira/profile.json":{"get":{"summary":"Read public profile metadata","responses":{"200":{"description":"Profile metadata"}}}},"/p/kira/api/profile":{"get":{"summary":"Read free agent-callable profile JSON","responses":{"200":{"description":"Profile metadata"},"404":{"description":"Profile not found"}}}},"/p/kira/offers.json":{"get":{"summary":"Read public agent-readable offers","description":"Published services, products, booking links, and agent-pricing metadata derived from visible profile blocks. This endpoint is read-only and never creates payment intents, x402 nonces, or settlements.","responses":{"200":{"description":"Offer catalog metadata"},"404":{"description":"Profile not found"}}}},"/p/kira/api/catalog":{"get":{"summary":"Read public product catalog","description":"Published active Product rows for this profile, including SKU, price, image, and honest availability. This endpoint is read-only; checkout is exposed through the MCP place_order tool and remains gated by commerce/payment env flags.","responses":{"200":{"description":"Product catalog metadata"},"404":{"description":"Profile not found"}}}},"/p/kira/api/markets":{"get":{"summary":"Read free Market Follow preview","description":"Free preview endpoint for the profile's connected Hyperliquid / Polymarket wallets. Returns the verified connection set and metadata only — never positions or fills. Paid per-provider endpoints under /api/markets/{provider} are the read surface for actual trading activity.","responses":{"200":{"description":"Market Follow preview (provider list, verification state, no positions)"},"404":{"description":"Profile not found"}}}},"/p/kira/api/markets/hyperliquid":{"get":{"summary":"Read paid Hyperliquid wallet activity (x402)","description":"x402-gated. First request without proof returns 402 PAYMENT-REQUIRED with EIP-712 typed data; retry with X-PAYMENT or X-AISO-X402-* proof headers. Returns the owner-shared wallet's perp positions, recent fills, open orders, and portfolio. Returns 404 with `market_follow_not_available` until the owner has connected + verified + enabled this provider.","responses":{"200":{"description":"Hyperliquid wallet activity (positions, fills, portfolio)"},"402":{"description":"Payment required challenge"},"404":{"description":"Market follow not available for this profile/provider"}}}},"/p/kira/api/markets/polymarket":{"get":{"summary":"Read paid Polymarket wallet activity (x402)","description":"x402-gated. First request without proof returns 402 PAYMENT-REQUIRED with EIP-712 typed data; retry with X-PAYMENT or X-AISO-X402-* proof headers. Returns the owner-shared wallet's prediction-market positions, recent trades, and portfolio. Returns 404 with `market_follow_not_available` until the owner has connected + verified + enabled this provider.","responses":{"200":{"description":"Polymarket wallet activity (positions, trades, portfolio)"},"402":{"description":"Payment required challenge"},"404":{"description":"Market follow not available for this profile/provider"}}}},"/p/kira/api/articles":{"get":{"summary":"Read paid sandbox x402 article feed","description":"Disabled until x402 sandbox env and a profile price are configured.","responses":{"200":{"description":"Paid article feed with PAYMENT-RESPONSE header"},"402":{"description":"Payment required challenge"},"501":{"description":"x402 disabled"}},"x-aiso-x402":{"enabled":false,"mode":"disabled","scheme":"aiso-x402-sandbox","network":"base","asset":"USDC","recipient":"0x2e66236984af3e7f4B011f1318B253Cb3b03E1B2","facilitator":null,"status":{"onchainVerification":true,"binding":true,"facilitatorConfigured":false,"recipientConfigured":true},"endpoints":[{"path":"/p/kira/api/profile","amount":"0","currency":"USD","access":"free"},{"path":"/p/kira/api/articles","amount":null,"amountUsdcMinor":null,"currency":"USDC","access":"disabled"}]}}},"/p/kira/api/contact":{"get":{"summary":"Read public contact options","description":"Returns configured public contact links such as WhatsApp, email, X, LinkedIn, website, or manual contact URLs derived from visible profile blocks.","responses":{"200":{"description":"Contact options"},"404":{"description":"Profile not found"}}},"post":{"summary":"Submit a contact request","description":"Stores a rate-limited pending owner-reviewed lead and emits the lead.captured webhook event for subscribers.","responses":{"201":{"description":"Lead captured for owner review"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"}}}},"/p/kira/api/book":{"get":{"summary":"Read public booking options","description":"Returns configured booking/calendar links such as Cal.com derived from visible profile blocks.","responses":{"200":{"description":"Booking options"},"404":{"description":"Profile not found"}}},"post":{"summary":"Request a booking","description":"Stores a rate-limited pending booking request and emits booking.created with externalBookingStatus=not_created. External calendar confirmation still happens through the configured calendar link.","responses":{"202":{"description":"Booking request captured"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"}}}},"/api/public/profiles/{handle}/ask":{"post":{"summary":"Ask the public AI chat for this profile","description":"Soft-grounded profile chat backed by NanoGPT subscription models. Owner facts come only from approved profile content; general questions are open.","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string","example":"kira"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","maxLength":1200},"history":{"type":"array","maxItems":8,"items":{"type":"object","properties":{"role":{"type":"string","enum":["user","assistant"]},"content":{"type":"string","maxLength":1200}},"required":["role","content"]}}},"required":["message"]}}}},"responses":{"200":{"description":"Grounded profile answer"},"400":{"description":"Invalid chat input"},"429":{"description":"Profile chat rate limit reached"},"503":{"description":"NanoGPT key or model is not configured safely"}},"x-aiso-chat-endpoint":"https://aiso.tools/api/public/profiles/kira/ask","x-aiso-chat-enabled":true}},"/api/mcp/{handle}":{"post":{"summary":"Model Context Protocol (MCP) server for this profile","description":"Stateless Streamable-HTTP MCP endpoint (JSON-RPC 2.0). Any MCP client (Hermes, OpenClaw, Claude, Cursor) can connect and call the tools to read or query this profile.","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string","example":"kira"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"type":["string","number","null"]},"method":{"type":"string","example":"tools/list"},"params":{"type":"object"}},"required":["jsonrpc","method"]}}}},"responses":{"200":{"description":"JSON-RPC result"},"202":{"description":"Accepted notification (no body)"},"404":{"description":"Profile not found"}},"x-aiso-mcp-endpoint":"https://aiso.tools/api/mcp/kira","x-aiso-mcp-tools":["get_profile","list_offers","get_readiness","get_power_score","ask_profile","list_market_follow","get_market_follow_preview","request_booking","submit_contact","submit_review","start_checkout","place_order","answer_product","answer_sport","answer_flight","answer_hotel","answer_job","answer_places","answer_llm","answer_creator","answer_github","answer_nutrition"]}}},"x-aiso-profile":{"profileUrl":"https://aiso.tools/p/kira","chatEndpoint":"https://aiso.tools/api/public/profiles/kira/ask","chatEnabled":true,"mcpEndpoint":"https://aiso.tools/api/mcp/kira","x402":{"enabled":false,"mode":"disabled","scheme":"aiso-x402-sandbox","network":"base","asset":"USDC","recipient":"0x2e66236984af3e7f4B011f1318B253Cb3b03E1B2","facilitator":null,"status":{"onchainVerification":true,"binding":true,"facilitatorConfigured":false,"recipientConfigured":true},"endpoints":[{"path":"/p/kira/api/profile","amount":"0","currency":"USD","access":"free"},{"path":"/p/kira/api/articles","amount":null,"amountUsdcMinor":null,"currency":"USDC","access":"disabled"}]}},"x-aiso-rich-answer-cards":{"description":"10 universal platform tools the chat + MCP server can call when visitor intent matches a category. Each returns a structured ResultCard sourced from context.aiso.tools/answer.","tools":["answer_product","answer_sport","answer_flight","answer_hotel","answer_job","answer_places","answer_llm","answer_creator","answer_github","answer_nutrition"],"categories":[{"category":"commerce.product","tool":"answer_product","eyebrow":"SHOPPING","index":"AISO Commerce Index"},{"category":"sports.polymarket","tool":"answer_sport","eyebrow":"SPORTS BETTING","index":"AISO Sports Index"},{"category":"travel.flight","tool":"answer_flight","eyebrow":"FLIGHT","index":"AISO Travel Index"},{"category":"travel.hotel","tool":"answer_hotel","eyebrow":"HOTEL","index":"AISO Travel Index"},{"category":"work.job","tool":"answer_job","eyebrow":"JOB","index":"AISO Work Index"},{"category":"local.places","tool":"answer_places","eyebrow":"NEARBY","index":"AISO Local Graph"},{"category":"knowledge.llm","tool":"answer_llm","eyebrow":"MODEL COMPARISON","index":"AISO Knowledge Index"},{"category":"media.creator","tool":"answer_creator","eyebrow":"CREATOR","index":"AISO Media Index"},{"category":"dev.github","tool":"answer_github","eyebrow":"GITHUB TRENDING","index":"AISO Dev Index"},{"category":"health.nutrition","tool":"answer_nutrition","eyebrow":"NUTRITION","index":"AISO Nutrition Index"}]}}