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