---
title: "List annuity contracts"
method: GET
path: "/v1/annuity_contracts"
tags: ["Annuity Contracts"]
---

# List annuity contracts

`GET /v1/annuity_contracts`

## Request

- Base URL: `https://api.slant.app`
- URL: `https://api.slant.app/v1/annuity_contracts`
- Auth: HTTP bearer

Financial terms and values; no custodian data or attachments. Numbers are masked. Imported annuity terms and parties are read-only except notes. Values use dollars; balances use cents. Party arrays replace submitted roles or accessible annuity parties. Only advisor valuations can be edited.

## Query parameters

- `page` integer
- `per_page` integer
- `book_id` string
- `household_id` string
- `q` string
- `updated_since` string

## Headers

- `Authorization` string

## Response `200`

Successful financial resource access

- object
  - `data` object[], required
    - `carrier_key` string, nullable
    - `carrier_name` string
    - `contract_number` string: Masked contract number; the full number is never returned.
    - `contract_type` 'variable_annuity' | 'other_annuity'
    - `product_code` string, nullable
    - `product_name` string, nullable
    - `status` string, nullable
    - `tax_status` string, nullable
    - `established_on` string, date, nullable
    - `issued_on` string, date, nullable
    - `anniversary_on` string, date, nullable
    - `matures_on` string, date, nullable
    - `notes` string, nullable
    - `parties` object[]
      - `role` 'owner' | 'joint_owner' | 'annuitant' | 'joint_annuitant' | 'insured' | 'secondary_insured' | 'primary_beneficiary' | 'contingent_beneficiary' | 'other', required
      - `display_name` string, nullable
      - `participant_type` 'Person' | 'Business' | 'Trust', nullable
      - `participant_id` string, nullable
      - `id` string
    - `id` string, required
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `term_authority` 'advisor' | 'integration'
    - `data_provider` string, nullable
    - `last_synced_at` string, date-time, nullable
    - `registration_type` string, nullable
    - `placements` object[]: Only placements in accessible books.
      - `id` string
      - `book_id` string
      - `household_id` string, nullable
      - `business_id` string, nullable
      - `trust_id` string, nullable
      - `placement_authority` 'advisor' | 'integration'
    - `current_values` object
    - `values` object[]
      - `kind` 'accumulation_value' | 'surrender_value' | 'surrender_charge' | 'death_benefit' | 'premiums_paid_to_date' | 'cash_value' | 'loan_value'
      - `amount` string, nullable: Money in dollars as a decimal string.
      - `as_of_date` string, date
      - `id` string, required
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `annuity_contract_id` string
      - `source_kind` 'integration' | 'statement' | 'advisor'
  - `pagination` Pagination, required
    - `current_page` integer
    - `total_pages` integer
    - `total_count` integer
    - `per_page` integer

## Other responses

- `400`: Bad Request - malformed JSON, invalid filters, or missing required book context
- `401`: Unauthorized - missing or invalid token
- `403`: Access denied. Policy and membership failures may have an empty body. A read-only personal token cannot perform writes.
- `429`: An hourly API rate limit was exceeded. Wait Retry-After seconds before retrying.

## Changes

- **2026-11-03** `173c41bf6be9`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/slant/apis/slant-public-api-v1/changes/v1/annuity_contracts/get.md)

---

[API](https://skmtc.dev/slant/apis/slant-public-api-v1.md) - [All operations](https://skmtc.dev/slant/apis/slant-public-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/slant/apis/slant-public-api-v1/revisions/173c41bf6be9?raw)
