Hemrock Exit Waterfall API

The Exit Waterfall API from Hemrock — 1 operation(s) for exit waterfall.

GitHub OpenAPI

Operations 1

POST /exit-waterfall/compute Compute an exit waterfall #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hemrock-com:hemrock-com-exit-waterfall-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hemrock-com-exit-waterfall-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hemrock Com Exit Waterfall API
  version: 0.1.0
  description: 'Operations tagged Exit Waterfall across 2 of this provider''s published API definitions: hemrock-com-openapi.json, hemrock_com_openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.hemrock.com/v1
  description: Production
security:
- bearerAuth: []
tags:
- name: Exit Waterfall
paths:
  /exit-waterfall/compute:
    post:
      summary: Compute an exit waterfall
      operationId: computeExitWaterfall
      description: 'Distribute exit proceeds across the cap stack: preferences, participation, conversions, and in-the-money options/warrants. Requires the Cap Table & Exit Waterfall entitlement (a valid key without it returns 402).'
      security:
      - bearerAuth: []
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        description: Retry key for one logical calculation. Reusing a key with a different payload returns 409.
        schema:
          type: string
          minLength: 1
          maxLength: 255
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WaterfallComputeRequest'
            example:
              model:
                common:
                - id: founder
                  name: Founder
                  shares: 8000000
                preferred:
                - id: seed
                  name: Seed
                  seniority: 1
                  holders:
                  - id: seed-fund
                    name: Seed Fund
                    shares: 2500000
                    invested: 2000000
              exitValuation: 50000000
      responses:
        '200':
          description: Computed waterfall
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultResponse'
        '400':
          description: Validation failed (bad JSON or missing model / exitValuation)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Cap Table & Exit Waterfall entitlement required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Idempotency key was already used with a different payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Engine error (well-formed but invalid input)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded (paid quota exhaustion uses 403)
          headers:
            Retry-After:
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Compute service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      tags:
      - Exit Waterfall
    servers:
    - url: https://api.hemrock.com/v1
      description: Production
components:
  schemas:
    ResultResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            result:
              oneOf:
              - $ref: '#/components/schemas/WaterfallResult'
              - $ref: '#/components/schemas/FundResult'
        meta:
          type: object
          properties:
            keyName:
              type: string
    FundResult:
      type: object
      required:
      - committedCapital
      - calledCapital
      - managementFees
      - partnershipExpenses
      - investedCapital
      - proceeds
      - distributions
      - grossMultiple
      - netMultiple
      - grossIRR
      - netIRR
      - pic
      - dpi
      - rvpi
      - tvpi
      - weightedHoldPeriodYears
      properties:
        committedCapital:
          $ref: '#/components/schemas/LineTotals'
        calledCapital:
          $ref: '#/components/schemas/LineTotals'
        managementFees:
          $ref: '#/components/schemas/LineTotals'
        partnershipExpenses:
          $ref: '#/components/schemas/LineTotals'
        investedCapital:
          $ref: '#/components/schemas/LineTotals'
        proceeds:
          $ref: '#/components/schemas/LineTotals'
        distributions:
          $ref: '#/components/schemas/LineTotals'
        grossMultiple:
          $ref: '#/components/schemas/LineTotals'
        netMultiple:
          $ref: '#/components/schemas/LineTotals'
        grossIRR:
          $ref: '#/components/schemas/LineTotals'
        netIRR:
          $ref: '#/components/schemas/LineTotals'
        pic:
          type: number
        dpi:
          type: number
        rvpi:
          type: number
        tvpi:
          type: number
        weightedHoldPeriodYears:
          type: number
        tiers:
          type: array
          items:
            type: object
    WaterfallComputeRequest:
      type: object
      properties:
        exitValuation:
          type: number
          minimum: 0
          maximum: 1000000000000000
        model:
          type: object
          properties:
            common:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 200
                    minLength: 1
                  name:
                    type: string
                    maxLength: 200
                  shares:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  invested:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                required:
                - id
                - name
                - shares
                additionalProperties: false
              maxItems: 500
            preferred:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 200
                    minLength: 1
                  name:
                    type: string
                    maxLength: 200
                  holders:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          maxLength: 200
                          minLength: 1
                        name:
                          type: string
                          maxLength: 200
                        shares:
                          type: number
                          minimum: 0
                          maximum: 1000000000000000
                        invested:
                          type: number
                          minimum: 0
                          maximum: 1000000000000000
                      required:
                      - id
                      - name
                      - shares
                      - invested
                      additionalProperties: false
                    maxItems: 500
                  multiple:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  participation:
                    type: string
                    enum:
                    - none
                    - full
                    - capped
                  participationCap:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  seniority:
                    type: number
                  conversionRatio:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                    exclusiveMinimum: 0
                  investmentDate:
                    type: string
                    pattern: ^\d{4}-\d{2}-\d{2}$
                  dividendStart:
                    type: string
                    pattern: ^\d{4}-\d{2}-\d{2}$
                  dividendRate:
                    type: number
                    minimum: 0
                    maximum: 1
                  dividendCumulative:
                    type: boolean
                required:
                - id
                - name
                - holders
                - seniority
                additionalProperties: false
              maxItems: 20
            options:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 200
                    minLength: 1
                  name:
                    type: string
                    maxLength: 200
                  shares:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  strike:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  vestedFraction:
                    type: number
                    minimum: 0
                    maximum: 1
                required:
                - id
                - name
                - shares
                - strike
                additionalProperties: false
              maxItems: 500
            warrants:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 200
                    minLength: 1
                  name:
                    type: string
                    maxLength: 200
                  shares:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  strike:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                required:
                - id
                - name
                - shares
                - strike
                additionalProperties: false
              maxItems: 500
            unissuedPool:
              type: object
              properties:
                shares:
                  type: number
                  minimum: 0
                  maximum: 1000000000000000
                treatment:
                  type: string
                  const: cancel
              required:
              - shares
              additionalProperties: false
            convertibles:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    maxLength: 200
                    minLength: 1
                  name:
                    type: string
                    maxLength: 200
                  kind:
                    type: string
                    enum:
                    - pre-safe
                    - post-safe
                    - note
                  principal:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  discount:
                    type: number
                    minimum: 0
                    maximum: 1
                  cap:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                    exclusiveMinimum: 0
                  accruedInterest:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  premiumMultiple:
                    type: number
                    minimum: 0
                    maximum: 1000000000000000
                  cashOutAs:
                    type: string
                    enum:
                    - debt
                    - equity
                  seniority:
                    type: number
                  cashOutSeniority:
                    type: string
                    enum:
                    - senior
                    - pari-passu
                required:
                - id
                - name
                - kind
                - principal
                additionalProperties: false
              maxItems: 100
            debt:
              type: number
              minimum: 0
              maximum: 1000000000000000
            transactionExpenses:
              type: number
              minimum: 0
              maximum: 1000000000000000
          required:
          - common
          - preferred
          additionalProperties: false
      required:
      - exitValuation
      - model
      additionalProperties: false
      $schema: http://json-schema.org/draft-07/schema#
    WaterfallResult:
      type: object
      required:
      - exitValuation
      - distributable
      - classes
      - series
      - convertibles
      - holders
      - perShare
      - iterations
      - converged
      properties:
        exitValuation:
          type: number
        distributable:
          type: number
        classes:
          type: array
          items:
            type: object
        series:
          type: array
          items:
            type: object
        convertibles:
          type: array
          items:
            type: object
        holders:
          type: array
          items:
            type: object
        perShare:
          type: array
          items:
            type: object
        iterations:
          type: integer
        converged:
          type: boolean
    LineTotals:
      type: object
      required:
      - total
      - lp
      - gp
      properties:
        total:
          type: number
        lp:
          type: number
        gp:
          type: number
    Error:
      type: object
      properties:
        error:
          type: object
          required:
          - code
          - message
          - retryable
          properties:
            code:
              type: string
              enum:
              - unauthorized
              - payment_required
              - validation_failed
              - engine_error
              - quota_exhausted
              - rate_limited
              - idempotency_conflict
              - service_unavailable
              - method_not_allowed
              - internal_error
            message:
              type: string
            retryable:
              type: boolean
            details: {}
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key (`hk_live_…`), created in the Hemrock developer dashboard. Calls use that account’s product access: lifetime free credits or an active paid allowance.'
x-refined-from:
- hemrock-com-openapi.json


# --- truncated at 32 KB (69 KB total) ---
# Full source: https://artifacts.apis.io/hemrock-com/openapi/hemrock-com-exit-waterfall-api-openapi.yml