openapi: 3.2.0
info:
title: We > Ultrarich Wealth Expression 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: Wealth Expression
description: Express a single wealth through one of four lenses (daily spending, physical size, purchasing power, or compound interest).
paths:
/durationOfDailySpend:
get:
operationId: durationOfDailySpend
summary: Duration Of Daily Spend
description: Given a wealth and amount, returns the duration of time a specified-wealth would last when a specified-amount was spent daily.
tags:
- Wealth Expression
parameters:
- in: query
name: wealth
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 is the amount of money to be described via this expression.
- in: query
name: spend
required: true
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 (the crux of this expression).
responses:
'200':
description: a JSON object with response data
content:
application/json:
example:
status: success
data:
value: 2739.72602739726
unit: years
type: null
phrase: 2.7 Millennia (2,740 Years)
sentence: A person with a wealth of $1,000,000,000 could spend $1,000 every day for 2.7 millennia (2,740 years)!
scale: That's approximately 1.4 times as long ago as when modern religions began to take shape in what was considered ancient history (≈4,000 BCE to 1,000 AD).
schema:
type: object
properties:
status:
type: string
example: success
data:
type: object
properties:
value:
type: number
example: 2739.72602739726
description: The value for duration of time.
unit:
type: string
example: years
description: The unit for duration of time.
type:
type:
- string
- 'null'
example: null
description: This expression doesn't have any types.
phrase:
type: string
example: 2.7 Millennia (2,740 Years)
description: A phrase of the duration of time (title-cased for use as a standalone label).
sentence:
type: string
example: A person with a wealth of $1,000,000,000 could spend $1,000 every day for 2.7 millennia (2,740 years)!
description: A complete sentence summarizing the expression and its duration of time result (sentence-cased for use as inline prose).
scale:
type:
- string
- 'null'
example: That's approximately 1.4 times as long ago as when modern religions began to take shape in what was considered ancient history (≈4,000 BCE to 1,000 AD).
description: A complete sentence providing context for the expression and its duration of time result (sentence-cased for use as inline prose).
required:
- value
- unit
- type
- phrase
- sentence
- scale
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: Wealth Missing
description: A human-readable error message like 'Wealth Missing', 'Wealth Malformed', 'Wealth Zero', 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.
/heightOfMoneyStack:
get:
operationId: heightOfMoneyStack
summary: Height Of Stacked Money
description: Given a wealth and type of money, returns the height of a stack of the specified-wealth in the specified-type-of-money.
tags:
- Wealth Expression
parameters:
- in: query
name: wealth
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 is the amount of money to be described via this expression.
- in: query
name: typeOfMoney
required: true
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 (the crux of this expression): * `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).
'
responses:
'200':
description: a JSON object with response data
content:
application/json:
example:
status: success
data:
value: 2000000
unit: meters
type: dollar coins
phrase: 1,243 Miles (2,000 km)
sentence: A person with a wealth of $1,000,000,000 would have a stack of dollar coins 1,243 miles (2,000 km) high!
scale: That's about 10 times the distance of a roundtrip to the edge of space (Kármán Line).
schema:
type: object
properties:
status:
type: string
example: success
data:
type: object
properties:
value:
type: number
example: 2000000
description: The value for height.
unit:
type: string
example: meters
description: The unit for height.
type:
type: string
example: dollar coins
description: The currency and kind of stacked money (coins or bills) per inputted typeOfMoney.
phrase:
type: string
example: 1,243 Miles (2,000 km)
description: A phrase of the height (title-cased for use as a standalone label).
sentence:
type: string
example: A person with a wealth of $1,000,000,000 would have a stack of dollar coins 1,243 miles (2,000 km) high!
description: A complete sentence summarizing the expression and its height result (sentence-cased for use as inline prose).
scale:
type:
- string
- 'null'
example: That's about 10 times the distance of a roundtrip to the edge of space (Kármán Line).
description: A complete sentence providing context for the expression and its height result (sentence-cased for use as inline prose).
required:
- value
- unit
- type
- phrase
- sentence
- scale
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: Wealth Missing
description: A human-readable error message like 'Wealth Missing', 'Wealth Malformed', 'Wealth Zero', 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.
/numberOfItems:
get:
operationId: numberOfItems
summary: Number Of Items Paid For
description: Given a wealth and type of item, returns the number of specified-items the specified-wealth could buy or pay for/off. Note — Item prices are approximate U.S. benchmark prices denominated in USD. A currency symbol supplied with a wealth value changes the currency label shown in the result; it does not convert or localize the item prices. Until localized item sets are introduced, use USD wealth values for the most meaningful purchasing-power results.
tags:
- Wealth Expression
parameters:
- in: query
name: wealth
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 is the amount of money to be described via this expression.
- in: query
name: typeOfItem
required: true
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 (the crux of this expression): * `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
'
responses:
'200':
description: a JSON object with response data
content:
application/json:
example:
status: success
data:
value: 2000
unit: null
type: houses
phrase: 2,000 Houses
sentence: A person with a wealth of $1,000,000,000 could buy 2,000 houses all at once!
scale: That's approximately 1.3 times enough for every person in a village (typically between 1K–10K population).
schema:
type: object
properties:
status:
type: string
example: success
data:
type: object
properties:
value:
type: number
example: 2000
description: The number of items bought or paid for/off.
unit:
type:
- string
- 'null'
example: null
description: This expression doesn't have any units.
type:
type: string
example: houses
description: The kind of item bought or paid for/off.
phrase:
type: string
example: 2,000 Houses
description: A phrase of the number of items bought or paid for/off (title-cased for use as a standalone label).
sentence:
type: string
example: A person with a wealth of $1,000,000,000 could buy 2,000 houses all at once!
description: A complete sentence summarizing the expression and its number of items bought or paid for/off result (sentence-cased for use as inline prose).
scale:
type:
- string
- 'null'
example: That's approximately 1.3 times enough for every person in a village (typically between 1K–10K population).
description: A complete sentence providing context for the expression and its number of items bought or paid for/off result (sentence-cased for use as inline prose).
required:
- value
- unit
- type
- phrase
- sentence
- scale
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: Wealth Missing
description: A human-readable error message like 'Wealth Missing', 'Wealth Malformed', 'Wealth Zero', 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.
/growthOfCompoundInterest:
get:
operationId: growthOfCompoundInterest
summary: Growth Of Compound Interest
description: Given a wealth and a rate, frequency, and period, returns the growth of a specified-wealth's compound interest at a specified-rate and specified-frequency for a specified-period.
tags:
- Wealth Expression
parameters:
- in: query
name: wealth
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 is the amount of money to be described via this expression.
- in: query
name: rate
required: true
schema:
type: number
format: float
example: 0.01
exclusiveMinimum: 0
exclusiveMaximum: 1
description: Rate is the interest rate at which the wealth is compounded (one-third of the crux of this expression).
- in: query
name: frequency
required: true
schema:
type: string
enum:
- '1'
- '2'
- '4'
- '12'
- '365'
description: 'Frequency is how often the wealth is compounded (one-third of the crux of this expression): * `1` - Annually * `2` - Semiannually * `4` - Quarterly * `12` - Monthly * `365` - Daily
'
- in: query
name: period
required: true
schema:
type: number
example: 20
exclusiveMinimum: 0
exclusiveMaximum: 100
description: Period is the duration of time in years over which the wealth is compounded (one-third of the crux of this expression).
responses:
'200':
description: a JSON object with response data
content:
application/json:
example:
status: success
data:
value: 220190040
unit: dollars
type: null
phrase: By $220,190,040 Over 20 Years
sentence: With 1% interest compounded annually, a person with $1,000,000,000 would grow their wealth by $220,190,040 over 20 years!
scale: This growth in their wealth — not the principal, just the interest they earned during this single period of time — is approximately 2.2 times the annual recurring revenue goal for a best-in-class startup company (≈$100M).
schema:
type: object
properties:
status:
type: string
example: success
data:
type: object
properties:
value:
type: number
example: 220190040
description: The value for growth of compounded interest.
unit:
type: string
example: dollars
description: The unit for growth of compounded interest.
type:
type:
- string
- 'null'
example: null
description: This expression doesn't have any types.
phrase:
type: string
example: By $220,190,040 Over 20 Years
description: A phrase of the growth of compounded interest (title-cased for use as a standalone label).
sentence:
type: string
example: With 1% interest compounded annually, a person with $1,000,000,000 would grow their wealth by $220,190,040 over 20 years!
description: A complete sentence summarizing the expression and its growth of compounded interest result (sentence-cased for use as inline prose).
scale:
type:
- string
- 'null'
example: This growth in their wealth — not the principal, just the interest they earned during this single period of time — is approximately 2.2 times the annual recurring revenue goal for a best-in-class startup company (≈$100M).
description: A complete sentence providing context for the expression and its growth of compounded interest result (sentence-cased for use as inline prose).
required:
- value
- unit
- type
- phrase
- sentence
- scale
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: Wealth Missing
description: A human-readable error message like 'Wealth Missing', 'Wealth Malformed', 'Wealth Zero', 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