---
title: "List Term Sheets"
method: GET
path: "/api/external/v2/deals/{deal_id}/term-sheets"
tags: ["external-v2-term-sheets"]
---

# List Term Sheets

`GET /api/external/v2/deals/{deal_id}/term-sheets`

List term sheets for a deal.

## Path parameters

- `deal_id` integer, required

## Query parameters

- `limit` integer — Number of results to return (1-200, clamped)
- `offset` integer — Offset for pagination (>= 0, clamped)
- `fields` string, nullable — Comma-separated sparse fieldset
- `include` string, nullable — Comma-separated relationship includes
- `cursor` string, nullable — Base64 cursor for pagination

## Response `200`

Successful Response

- TermSheetListResponse — OpenAPI schema for GET /api/external/v2/deals/<deal_id>/term-sheets (list envelope).
  - `request_id` string, required
  - `timestamp` string, required
  - `data` TermSheetSummaryResponse[], required
    - `id` integer, required
    - `deal_id` integer, nullable, required
    - `title` string, nullable, required
    - `quote_type` string, nullable, required
    - `initial_funding` integer, nullable, required
    - `total_rate` number, nullable, required — Rate as a percent (e.g. 7.53 = 7.53%). Interpret relative to the term sheet's ``base_rate``: if ``base_rate`` is set, ``total_rate`` is the spread over that base rate; if ``base_rate`` is null or ``'none-fixed'``, ``total_rate`` is the all-in fixed rate.
    - `base_rate` string, nullable, required
    - `base_rate_value` number, nullable — Base-rate snapshot as a percent. For base-rate quotes, the displayed all-in rate is ``base_rate_value + total_rate`` when both values are known.
    - `effective_spread` number, nullable — Effective spread as a percent for underwriting and comparison. For base-rate quotes, this normally equals ``total_rate``.
    - `rate_type` string, nullable, required
    - `term` integer, nullable, required
    - `io_period` integer, nullable, required
    - `recourse` string, nullable, required
    - `max_ltv` number, nullable, required
    - `max_ltc` number, nullable, required
    - `origination_fee` number, nullable, required
    - `exit_fee` number, nullable, required
    - `notes` string, nullable
    - `lender_name` string, nullable — Lender display name for this term sheet. For non-owner viewers of masked placements, this is a stable masked label such as 'Lender A'.
    - `org_id` integer, nullable, required — Canonical lender Organization ID. Null for non-owner viewers of masked placements.
    - `placement_id` integer, nullable, required
    - `winning` boolean, nullable, required
    - `is_visible_to_borrower` boolean, required
    - `created_at` string, nullable
    - `updated_at` string, nullable
  - `pagination` union, required
    - CursorPaginationResponse
      - `total` integer, required
      - `limit` integer, required
      - `cursor` string, nullable, required
      - `has_more` boolean, required
      - `next_cursor` string, nullable, required
    - OffsetPaginationResponse
      - `total` integer, required
      - `limit` integer, required
      - `offset` integer, required
      - `has_more` boolean, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/lev/apis/lev-api.md) · [All operations](https://skmtc.net/lev/apis/lev-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lev/lev-api/versions/5bfe74cf6f12/schema)
