{"openapi":"3.1.1","info":{"title":"Unify quote and recovery API","version":"1.2.0","description":"Core discovery, streaming and wallet-owned recovery contracts. Quotes remain read-only. The explicit execution-plan endpoint returns short-lived unsigned ERC-20 swap/approval transactions for reviewed adapters; Unify never signs or broadcasts them. No guaranteed liquidity. Partner keys require operator provisioning; wallet sessions require a signature. Shared durability requires configured PostgreSQL."},"servers":[{"url":"https://unifyroutes.com"}],"paths":{"/v1/portfolio-history":{"get":{"operationId":"portfolioHistory","security":[{"WalletSession":[]}],"parameters":[{"name":"account","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},{"name":"days","in":"query","schema":{"type":"integer","enum":[1,7,30]}}],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"deletePortfolioHistory","security":[{"WalletSession":[]}],"parameters":[{"name":"account","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"observePortfolio","security":[{"WalletSession":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioObservation"}}}},"responses":{"201":{"description":"Server-observed hourly wallet token snapshot","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/portfolio-liquidity":{"post":{"operationId":"portfolioLiquidity","security":[{"WalletSession":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioLiquidity"}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/chains":{"get":{"operationId":"chains","security":[{"PartnerKey":[]}],"parameters":[],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/route-sources":{"get":{"operationId":"sources","security":[{"PartnerKey":[]}],"parameters":[],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/arc-capabilities":{"get":{"operationId":"arcCapabilities","security":[{"PartnerKey":[]}],"parameters":[],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/routing-performance":{"get":{"operationId":"routingPerformance","security":[{"PartnerKey":[]}],"parameters":[],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/arc-assets":{"get":{"operationId":"arcAssets","security":[{"PartnerKey":[]}],"parameters":[{"name":"cursor","in":"query","schema":{"type":"integer","minimum":0,"maximum":1000000}}],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/usage":{"get":{"operationId":"usage","security":[{"PartnerKey":[]}],"parameters":[],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Usage"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/liquidity":{"get":{"operationId":"liquidity","security":[{"PartnerKey":[]}],"parameters":[{"name":"chainId","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/quotes":{"post":{"operationId":"quote","security":[{"PartnerKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteInput"}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/quotes/{quoteId}":{"get":{"operationId":"getQuote","security":[{"PartnerKey":[]}],"parameters":[{"name":"quoteId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/quotes/{quoteId}/verify":{"post":{"operationId":"verify","security":[{"PartnerKey":[]}],"parameters":[{"name":"quoteId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Selection"}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/quotes/{quoteId}/execution-plan":{"post":{"operationId":"executionPlan","security":[{"PartnerKey":[]}],"parameters":[{"name":"quoteId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["mode","pathKey"],"additionalProperties":false,"properties":{"mode":{"type":"string","enum":["v2","direct-v3","multihop-v3","pancake-v3","solidly","slipstream"]},"pathKey":{"type":"string","maxLength":1024}}}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsignedSwapPlan"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/portfolio-quotes":{"post":{"operationId":"portfolioQuote","security":[{"PartnerKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioInput"}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/portfolio-plans":{"post":{"operationId":"portfolioPlans","security":[{"PartnerKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioInput"}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/position-route-preview":{"post":{"operationId":"positionRoutePreview","security":[{"PartnerKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["account","position","to"],"properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"position":{"type":"object","additionalProperties":false,"required":["chainId","address","kind"],"properties":{"chainId":{"type":"integer","minimum":1},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"kind":{"type":"string","enum":["lp-token","concentrated-nft","vault-shares","aave-supply"]},"tokenId":{"type":"string"}}},"to":{"$ref":"#/components/schemas/Asset"},"slippageBps":{"type":"integer","minimum":5,"maximum":1000},"routingPolicy":{"type":"string","enum":["net","balanced","fast","simple"]}}}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/route-comparisons":{"post":{"operationId":"compare","security":[{"PartnerKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteInput"}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans":{"get":{"operationId":"plans","security":[{"WalletSession":[]}],"parameters":[{"name":"account","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"createPlan","security":[{"WalletSession":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioInput"}}}},"responses":{"201":{"description":"Plan created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans/{planId}":{"get":{"operationId":"plan","security":[{"WalletSession":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"account","in":"query","required":true,"schema":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}],"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/quotes/stream":{"post":{"operationId":"streamQuote","security":[{"PartnerKey":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteInput"}}}},"responses":{"200":{"description":"SSE started, immutable candidate quotes, complete or error. Candidates are read-only; verify selected paths before signing.","content":{"text/event-stream":{"schema":{"type":"string"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans/{planId}/link":{"post":{"operationId":"plan_link","security":[{"WalletSession":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sourceIndex":{"type":"integer","minimum":0,"maximum":7},"orderId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["account","sourceIndex","orderId"]}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans/{planId}/relay":{"post":{"operationId":"plan_relay","security":[{"WalletSession":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sourceIndex":{"type":"integer","minimum":0,"maximum":7},"requestId":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["account","sourceIndex","requestId"]}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans/{planId}/refresh":{"post":{"operationId":"plan_refresh","security":[{"WalletSession":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}},"required":["account"]}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans/{planId}/review":{"post":{"operationId":"plan_review","security":[{"WalletSession":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sourceIndex":{"type":"integer","minimum":0,"maximum":7}},"required":["account","sourceIndex"]}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans/{planId}/execution":{"post":{"operationId":"plan_execution","security":[{"WalletSession":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sourceIndex":{"type":"integer","minimum":0,"maximum":7},"quoteId":{"type":"string","format":"uuid"},"hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$","description":"Optional submitted transaction hash; absence arms a durable pre-submission lock."}},"required":["account","sourceIndex","quoteId"]}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans/{planId}/receipt":{"post":{"operationId":"plan_receipt","security":[{"WalletSession":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sourceIndex":{"type":"integer","minimum":0,"maximum":7},"quoteId":{"type":"string","format":"uuid"},"hash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}},"required":["account","sourceIndex","quoteId","hash"]}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/conversion-plans/{planId}/final-quote":{"post":{"operationId":"plan_final_quote","security":[{"WalletSession":[]}],"parameters":[{"name":"planId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sourceIndex":{"type":"integer","minimum":0,"maximum":7},"selection":{"$ref":"#/components/schemas/Selection"}},"required":["account","sourceIndex"]}}}},"responses":{"200":{"description":"Validated response; not a signing authorization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"PartnerKey":{"type":"apiKey","in":"header","name":"x-api-key"},"WalletSession":{"type":"http","scheme":"bearer"}},"schemas":{"PortfolioObservation":{"type":"object","required":["account","tokens","consent","viewActive"],"properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"tokens":{"type":"array","minItems":1,"maxItems":128,"items":{"type":"object","required":["chainId","address"],"properties":{"chainId":{"type":"integer","minimum":1},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}}},"consent":{"const":true},"viewActive":{"const":true}},"description":"Explicit opt-in, full-wallet origin-bound session. Only server-read balances/prices are stored. No historical backfill, no DeFi coverage and no investment-return claim."},"PortfolioLiquidity":{"type":"object","required":["account","tokens","viewActive"],"properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"tokens":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"object","required":["chainId","address"],"properties":{"chainId":{"type":"integer","minimum":1},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}}},"viewActive":{"const":true}},"description":"Bounded registered-factory checks. V2 reserves with independent prices; V3 active units are not USD TVL. Not execution authorization."},"Object":{"type":"object","additionalProperties":true},"Asset":{"type":"object","required":["chainId","address"],"properties":{"chainId":{"type":"integer","minimum":1},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}},"Source":{"allOf":[{"$ref":"#/components/schemas/Asset"},{"type":"object","required":["amountRaw"],"properties":{"amountRaw":{"type":"string","pattern":"^[1-9][0-9]{0,77}$","description":"Integer token base units, not display share units."}}}]},"QuoteInput":{"type":"object","required":["account","from","to","slippageBps"],"properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"recipient":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"from":{"$ref":"#/components/schemas/Source"},"to":{"$ref":"#/components/schemas/Asset"},"slippageBps":{"type":"integer","minimum":5,"maximum":1000},"routingPolicy":{"type":"string","enum":["net","balanced","fast","simple"]}}},"PortfolioInput":{"type":"object","required":["account","sources","to","slippageBps"],"properties":{"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"recipient":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"sources":{"type":"array","minItems":1,"maxItems":8,"items":{"$ref":"#/components/schemas/Source"}},"to":{"$ref":"#/components/schemas/Asset"},"slippageBps":{"type":"integer","minimum":5,"maximum":1000},"routingPolicy":{"type":"string","enum":["net","balanced","fast","simple"]}}},"Selection":{"type":"object","properties":{"mode":{"type":"string"},"pathKey":{"type":"string","maxLength":1400}},"description":"Empty object verifies the original winner; otherwise provide both exact fields."},"Route":{"type":"object","required":["mode","pathKey","estimatedAmountRaw","minimumAmountRaw"],"properties":{"mode":{"type":"string"},"pathKey":{"type":"string"},"estimatedAmountRaw":{"type":"string"},"minimumAmountRaw":{"type":"string"},"totalGasUsd":{"type":"number"},"estimatedNetUsd":{"type":"number"}}},"Quote":{"type":"object","required":["quoteId","engine","account","recipient","source","destination","slippageBps","winner","expiresAt"],"properties":{"quoteId":{"type":"string","format":"uuid"},"engine":{"const":"Unify"},"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"recipient":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"source":{"$ref":"#/components/schemas/Source"},"destination":{"$ref":"#/components/schemas/Asset"},"slippageBps":{"type":"integer"},"winner":{"$ref":"#/components/schemas/Route"},"alternatives":{"type":"array","items":{"$ref":"#/components/schemas/Route"}},"expiresAt":{"type":"string","format":"date-time"}}},"UnsignedTransaction":{"type":"object","additionalProperties":false,"required":["chainId","from","to","data","value"],"properties":{"chainId":{"type":"integer","minimum":1},"from":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"to":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"data":{"type":"string","pattern":"^0x([0-9a-fA-F]{2})+$"},"value":{"const":"0x0"}}},"UnsignedSwapPlan":{"type":"object","required":["kind","quoteId","mode","pathKey","account","recipient","source","destination","status","checks","steps","expiresAt","snapshot","minimumAmountRaw","spender"],"description":"Unsigned only. Missing funds/approvals are not simulated. Reprepare after approvals; wallet preflight remains required.","properties":{"kind":{"const":"unsigned-swap-plan"},"quoteId":{"type":"string","format":"uuid"},"mode":{"type":"string","enum":["v2","direct-v3","multihop-v3","pancake-v3","solidly","slipstream"]},"pathKey":{"type":"string"},"account":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"recipient":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"source":{"$ref":"#/components/schemas/Source"},"destination":{"$ref":"#/components/schemas/Asset"},"spender":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"approvalAmountRaw":{"type":"string"},"minimumAmountRaw":{"type":"string"},"estimatedAmountRaw":{"type":"string"},"slippageBps":{"type":"integer"},"deadline":{"type":"string"},"status":{"type":"string","enum":["ready","approval_required","funds_required","gas_required"]},"checkedAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"snapshot":{"type":"object","required":["blockNumber","blockHash"],"properties":{"blockNumber":{"type":"string"},"blockHash":{"type":"string","pattern":"^0x[0-9a-fA-F]{64}$"}}},"checks":{"type":"object","required":["deployment","poolMappings","balance","allowance","simulation","gas"],"properties":{"deployment":{"const":true},"poolMappings":{"const":true},"balance":{"type":"boolean"},"allowance":{"type":"boolean"},"simulation":{"type":"string","enum":["passed","not_run"]},"gas":{"type":"boolean"},"simulationBlockNumber":{"type":["string","null"]},"gasEstimateBlock":{"const":"latest"}}},"steps":{"type":"array","minItems":1,"maxItems":3,"items":{"type":"object","required":["kind","transaction","requiresReceipt"],"properties":{"kind":{"type":"string","enum":["reset_approval","approval","swap"]},"transaction":{"$ref":"#/components/schemas/UnsignedTransaction"},"requiresReceipt":{"const":true},"requiresFreshSimulation":{"const":true}}}},"gasEstimateRaw":{"type":["string","null"]},"l1FeeUpperBoundRaw":{"type":"string"},"requiredNativeGasRaw":{"type":["string","null"]},"executionPayloadIncluded":{"const":true},"userSignsTransactions":{"const":true},"serverSignsTransactions":{"const":false},"serverBroadcastsTransactions":{"const":false},"caveat":{"type":"string"}}},"Usage":{"type":"object","properties":{"partner":{"type":"string"},"quota":{"type":"object","properties":{"limit":{"type":"integer"},"used":{"type":"integer"},"remaining":{"type":"integer"},"resetsAt":{"type":"string","format":"date-time"},"shared":{"type":"boolean"}}}}},"Error":{"type":"object","required":["error","code","retryable","requestId"],"properties":{"error":{"type":"string"},"code":{"type":"string"},"retryable":{"type":"boolean"},"retryAfterMs":{"type":"integer"},"nextAction":{"type":"string"},"requestId":{"type":"string","format":"uuid"}}}}}}