We > Ultrarich Comparison API

Compare any wealth expression for two wealths ('yours' and 'theirs') in a single call — get both results as well as the ratio between them.

OpenAPI Specification

wegtultrarich-comparison-api-openapi.yml Raw ↑
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