openapi: 3.2.0 info: title: We > Ultrarich Comparison API description: 'We > Ultrarich (We Are Greater Than The Ultrarich) makes extreme wealth inequality tangible. It presents billionaire and trillionaire fortunes in personalized comparisons: Duration Of Daily Spend (Daily Spending), Height Of Stacked Money (Physical Size), Number Of Items Paid For (Purchasing Power), and Growth Of Compound Interest (Compound Interest). An MCP (Model Context Protocol) server exposing these operations as agent tools is available at https://api.wegtultrarich.org/mcp. The server answers both MCP revisions `2026-07-28` and `2025-11-25`. Free for any use, including commercial. Results are licensed CC BY 4.0 — please use the attribution "Source: We > Ultrarich (wegtultrarich.org)." The API''s source code is not open source; view [LICENSE.md](https://wegtultrarich.org/LICENSE.md). Naming: Write it as `We > Ultrarich` (or `We Are Greater Than The Ultrarich` where > won''t work). Use `wegtultrarich` in identifiers. Full guide in [LICENSE.md](https://wegtultrarich.org/LICENSE.md#name--wordmark--all-rights-reserved). ' termsOfService: https://wegtultrarich.org/terms-of-use.html version: 1.4.0 contact: name: We > Ultrarich Support email: info@wegtultrarich.org url: https://wegtultrarich.org/faq.html license: name: CC BY 4.0 url: https://creativecommons.org/licenses/by/4.0/ x-privacy-policy-url: https://wegtultrarich.org/privacy-policy.html servers: - url: https://api.wegtultrarich.org/v1 description: Main (Production) Server security: [] tags: - name: Comparison description: Compare any wealth expression for two wealths ('yours' and 'theirs') in a single call — get both results as well as the ratio between them. paths: /comparison: get: operationId: comparison summary: Full Comparison Of Two Wealths description: Given an expression, two wealths (yours and theirs), and that expression's own parameters, returns the expression's result for both wealths plus the ratio between them — a complete "them vs. you" comparison in a single call. tags: - Comparison parameters: - in: query name: expression required: true schema: type: string enum: - durationOfDailySpend - heightOfMoneyStack - numberOfItems - growthOfCompoundInterest description: 'Expression is the wealth expression to compute for both wealths (the crux of this comparison): * `durationOfDailySpend` - also requires `spend` * `heightOfMoneyStack` - also requires `typeOfMoney` * `numberOfItems` - also requires `typeOfItem` (see note above about use of approximate U.S. benchmark prices denominated in USD) * `growthOfCompoundInterest` - also requires `rate`, `frequency`, and `period` ' - in: query name: wealthYours required: true schema: oneOf: - type: number description: a numeric amount with or without decimal places minimum: 1 maximum: 1000000000000000000000000 example: 1000000000 - type: string description: a string with a local-formatted number (like 1,000,000) or shorthand (like 1M) with or without a URL-encoded currency symbol description: Wealth Yours is the amount of money of the user ("your" wealth) to be compared via the specified expression. - in: query name: wealthTheirs required: true schema: oneOf: - type: number description: a numeric amount with or without decimal places minimum: 1 maximum: 1000000000000000000000000 example: 1000000000 - type: string description: a string with a local-formatted number (like 1,000,000) or shorthand (like 1M) with or without a URL-encoded currency symbol description: Wealth Theirs is the amount of money of the ultrarich ("their" wealth) to be compared via the specified expression. - in: query name: spend required: false schema: oneOf: - type: number description: a numeric amount with or without decimal places minimum: 1 maximum: 1000000000000000000000000 example: 1000 - type: string description: a string with a local-formatted number (like 1,000,000) or shorthand (like 1M) with or without a URL-encoded currency symbol description: Spend is the amount of money to be spent daily. Required when expression is durationOfDailySpend; ignored otherwise. - in: query name: typeOfMoney required: false schema: type: string enum: - usd_1_coin - usd_100_bill - cad_1_coin - cad_100_bill - eur_1_coin - eur_100_bill - gbp_1_coin - gbp_100_bill - cny_1_coin - cny_100_bill - inr_1_coin - inr_100_bill - krw_1_coin - krw_1000_bill - rub_1_coin - rub_100_bill - try_1_coin - try_100_bill - chf_1_coin - chf_100_bill - brl_1_coin - brl_100_bill description: 'Type Of Money is the money to be stacked. Required when expression is heightOfMoneyStack; ignored otherwise. * `usd_1_coin` - Dollar Coins (USD; 2 mm per coin); * `usd_100_bill` - Hundred-Dollar Bills (USD; 0.11 mm per bill); * `cad_1_coin` - Loonies (CAD; 1.95 mm per coin); * `cad_100_bill` - Hundred-Dollar Bills (CAD; 0.0875 mm per bill); * `eur_1_coin` - Euro Coins (EUR; 2.33 mm per coin); * `eur_100_bill` - Hundred-Euro Bills (EUR; 0.12 mm per bill); * `gbp_1_coin` - Pound Coins (GBP; 2.8 mm per coin); * `gbp_100_bill` - Hundred-Pound Bills (GBP; 0.0825 mm per bill); * `cny_1_coin` - Yuan Coins (CNY; 1.85 mm per coin); * `cny_100_bill` - Hundred-Yuan Bills (CNY; 0.1 mm per bill); * `inr_1_coin` - Rupee Coins (INR; 1.45 mm per coin); * `inr_100_bill` - Hundred-Rupee Bills (INR; 0.11 mm per bill); * `krw_1_coin` - Won Coins (KRW; 1.45 mm per coin); * `krw_1000_bill` - Thousand-Won Bills (KRW; 0.1 mm per bill); * `rub_1_coin` - Ruble Coins (RUB; 1.5 mm per coin); * `rub_100_bill` - Hundred-Ruble Bills (RUB; 0.1 mm per bill); * `try_1_coin` - Lira Coins (TRY; 2 mm per coin); * `try_100_bill` - Hundred-Lira Bills (TRY; 0.105 mm per bill); * `chf_1_coin` - Franc Coins (CHF; 1.55 mm per coin); * `chf_100_bill` - Hundred-Franc Bills (CHF; 0.11 mm per bill); * `brl_1_coin` - Real Coins (BRL; 1.95 mm per coin); or * `brl_100_bill` - Hundred-Real Bills (BRL; 0.105 mm per bill). ' - in: query name: typeOfItem required: false schema: type: string enum: - fancy_coffee - quick_meal - dinner_with_drinks - iphone - month_of_childcare - rent_or_mortgage_payment - year_of_low_minimum_wage_salary - year_of_high_minimum_wage_salary - student_loan_debt - car - year_of_salary_65k - year_of_salary_100k - luxury_car - house - yacht - supercar - island - mansion - estate_with_a_mega_mansion - luxury_island - superyacht description: 'Type Of Item is the item to be bought or paid for/off. Required when expression is numberOfItems; ignored otherwise. * `fancy_coffee` - $10 Fancy Coffee * `quick_meal` - $15 Quick Meal * `dinner_with_drinks` - $175 Dinner With Drinks * `iphone` - $1,400 iPhone * `month_of_childcare` - $1,750 Month Of Childcare * `rent_or_mortgage_payment` - $3,000 Rent Or Mortgage Payment * `year_of_low_minimum_wage_salary` - Year Of Low Minimum Wage Salary ($15,080) * `year_of_high_minimum_wage_salary` - Year Of High Minimum Wage Salary ($32,240) * `student_loan_debt` - $40K Student Loan Debt * `car` - $50K Car * `year_of_salary_65k` - Year Of $65,000 Salary * `year_of_salary_100k` - Year Of $100,000 Salary * `luxury_car` - $275K Luxury Car * `house` - $500K House * `yacht` - $800K Yacht * `supercar` - $4M Supercar * `island` - $30M Island * `mansion` - $75M Mansion * `estate_with_a_mega_mansion` - $200M Estate With A Mega-Mansion * `luxury_island` - $300M Luxury Island * `superyacht` - $600M Superyacht ' - in: query name: rate required: false schema: type: number format: float example: 0.01 exclusiveMinimum: 0 exclusiveMaximum: 1 description: Rate is the interest rate at which the wealths are compounded. Required when expression is growthOfCompoundInterest; ignored otherwise. - in: query name: frequency required: false schema: type: string enum: - '1' - '2' - '4' - '12' - '365' description: Frequency is how often the wealths are compounded (1 Annually; 2 Semiannually; 4 Quarterly; 12 Monthly; 365 Daily). Required when expression is growthOfCompoundInterest; ignored otherwise. - in: query name: period required: false schema: type: number example: 20 exclusiveMinimum: 0 exclusiveMaximum: 100 description: Period is the duration of time in years over which the wealths are compounded. Required when expression is growthOfCompoundInterest; ignored otherwise. responses: '200': description: a JSON object with response data content: application/json: example: status: success data: expression: durationOfDailySpend resultTheirs: value: 273972.602739726 unit: years type: null phrase: 274 Millennia (273,973 Years) sentence: A person with a wealth of $100,000,000,000 could spend $1,000 every day for 274 millennia (273,973 years)! scale: That's approximately 1.6 times as long ago as when Homo Sapiens began wearing primitive clothing (≈170K BCE). resultYours: value: 0.273972602739726 unit: years type: null phrase: 100 Days sentence: A person with a wealth of $100,000 could spend $1,000 every day for 100 days! scale: null ratio: value: 1000000 phrase: '1,000,000 : 1' sentence: Their wealth is 1,000,000 times yours. scale: That's extreme wealth inequality. schema: type: object properties: status: type: string example: success data: type: object properties: expression: type: string example: durationOfDailySpend description: The expression that was computed for both wealths (echoed so the payload is self-describing). resultTheirs: type: object description: The expression's result for wealthTheirs. Same shape as the expression's own endpoint response data. properties: value: type: number example: 273972.602739726 description: The raw numeric result for their wealth. unit: type: - string - 'null' example: years description: The unit of the value (where applicable). type: type: - string - 'null' example: null description: The type of result (kind of stacked money, kind of item, or null). phrase: type: string example: 274 Millennia (273,973 Years) description: A phrase of the result (title-cased for use as a standalone label). sentence: type: string example: A person with a wealth of $100,000,000,000 could spend $1,000 every day for 274 millennia (273,973 years)! description: A complete sentence summarizing the expression and its result (sentence-cased for use as inline prose). scale: type: - string - 'null' example: That's approximately 1.6 times as long ago as when Homo Sapiens began wearing primitive clothing (≈170K BCE). description: A complete sentence providing context for the result (sentence-cased for use as inline prose). required: - value - unit - type - phrase - sentence - scale resultYours: type: object description: The expression's result for wealthYours. Same shape as the expression's own endpoint response data. properties: value: type: number example: 0.273972602739726 description: The raw numeric result for your wealth. unit: type: - string - 'null' example: years description: The unit of the value (where applicable). type: type: - string - 'null' example: null description: The type of result (kind of stacked money, kind of item, or null). phrase: type: string example: 100 Days description: A phrase of the result (title-cased for use as a standalone label). sentence: type: string example: A person with a wealth of $100,000 could spend $1,000 every day for 100 days! description: A complete sentence summarizing the expression and its result (sentence-cased for use as inline prose). scale: type: - string - 'null' example: null description: A complete sentence providing context for the result (sentence-cased for use as inline prose). required: - value - unit - type - phrase - sentence - scale ratio: type: object description: The ratio between the two wealths (wealthTheirs divided by wealthYours; values below 1 mean wealthYours is the larger). properties: value: type: number example: 1000000 description: The raw numeric ratio of wealthTheirs to wealthYours. phrase: type: string example: '1,000,000 : 1' description: A phrase of the ratio with the 1 on the smaller side (title-cased for use as a standalone label). sentence: type: string example: Their wealth is 1,000,000 times yours. description: A complete direction-aware sentence summarizing the ratio (sentence-cased for use as inline prose). scale: type: - string - 'null' example: That's extreme wealth inequality. description: A complete sentence assessing the ratio, tiered by magnitude (ratios of 200-to-1 or more are described as extreme wealth inequality — a rounded contextual threshold informed by a reported ~190:1 global disparity, not an official IMF definition). required: - value - phrase - sentence - scale required: - expression - resultTheirs - resultYours - ratio required: - status - data '400': description: a JSON object with error data content: application/json: schema: type: object properties: status: type: string example: error error: type: object properties: code: type: integer example: 400 message: type: string example: Their Wealth Missing description: A human-readable error message like 'Expression Invalid', 'Your Wealth Zero', 'Their Wealth Missing', etc. required: - code - message required: - status - error '429': description: rate limit exceeded headers: Retry-After: description: The number of seconds remaining until the rate-limit window resets. schema: type: integer example: 60 content: application/json: schema: type: object properties: status: type: string example: error error: type: object properties: code: type: integer example: 429 message: type: string example: Too Many Requests details: type: string example: Rate limit exceeded. Try again in 60 seconds. retryAfter: type: integer example: 60 description: The number of seconds remaining until the rate-limit window resets. required: - code - message - details - retryAfter required: - status - error x-ratelimit: limit: 100 period: 1 minute unit: requests scope: ip shared: true description: Rate limited to 100 requests per minute per IP, shared across all /v1 endpoints. externalDocs: description: API Documentation url: https://api.wegtultrarich.org/README.md