---
title: "Compute a Required Minimum Distribution"
method: POST
path: "/v1/retirement/rmd"
tags: ["Retirement"]
---

# Compute a Required Minimum Distribution

`POST /v1/retirement/rmd`

## Request

- Base URL: `https://api.numeratica.com`
- URL: `https://api.numeratica.com/v1/retirement/rmd`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Computes the Required Minimum Distribution from tax-deferred retirement accounts: the prior-year-end balance divided by the IRS Uniform Lifetime Table distribution period for the owner's age. The beginning age follows SECURE 2.0 (73, or 75 for those born 1960 or later). Uses the Uniform Lifetime Table only; the Joint Life and Single Life tables are not modeled. Calculation engine output, not tax advice. Deterministic.

## Request body

- RMDRequest
  - `age` integer, required: Owner's age at the end of the distribution year.
  - `account_balance` number, required: Prior-year-end balance of tax-deferred accounts.
  - `birth_year` integer: Optional. Sets the SECURE 2.0 beginning age (73, or 75 if born 1960+). Defaults to a beginning age of 73 if omitted.
  - `table` 'uniform' | 'single' | 'joint': Optional distribution-period table. "uniform" (default) is the owner's own RMD; "single" is the Single Life Table for beneficiary/inherited accounts (not gated by the SECURE 2.0 beginning age); "joint" is the Joint and Last Survivor Table for an owner whose sole beneficiary is a spouse more than 10 years younger (requires second_age).
  - `second_age` integer: The sole spousal beneficiary's age. Required when table=joint.

## Response `200`

RMD result

- RMDResponse
  - `result_id` string
  - `engine_version` string
  - `inputs` RMDRequest
    - `age` integer, required: Owner's age at the end of the distribution year.
    - `account_balance` number, required: Prior-year-end balance of tax-deferred accounts.
    - `birth_year` integer: Optional. Sets the SECURE 2.0 beginning age (73, or 75 if born 1960+). Defaults to a beginning age of 73 if omitted.
    - `table` 'uniform' | 'single' | 'joint': Optional distribution-period table. "uniform" (default) is the owner's own RMD; "single" is the Single Life Table for beneficiary/inherited accounts (not gated by the SECURE 2.0 beginning age); "joint" is the Joint and Last Survivor Table for an owner whose sole beneficiary is a spouse more than 10 years younger (requires second_age).
    - `second_age` integer: The sole spousal beneficiary's age. Required when table=joint.
  - `result` object
    - `required` boolean: Whether an RMD is required at this age.
    - `beginning_age` integer: Age at which RMDs must begin.
    - `distribution_period` number: Life-expectancy factor used (Uniform or Single Life depending on `table`); 0 if not yet applicable.
    - `amount` number: The required minimum distribution.
    - `table_used` string: The distribution-period table applied ("uniform" or "single"); present only when `table` is supplied.
  - `disclaimer` string

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key.
- `405`: Method not allowed
- `429`: The key's per-minute request budget is exceeded. Retry after the delay in the Retry-After header.
- `503`: A dependency (e.g. the key store) is temporarily unavailable, or the request exceeded its compute deadline. Retryable.

---

[API](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api.md) · [All operations](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api/llms.txt) · [OpenAPI document](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api/revisions/075bcfbd1ebf?raw)
