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