---
title: "List by Lead"
method: GET
path: "/v1.0/leads/{leadId}/transactions"
tags: ["Lead Transaction"]
---

# List by Lead

`GET /v1.0/leads/{leadId}/transactions`

## Request

- Base URL: `https://api.lofty.com`
- URL: `https://api.lofty.com/v1.0/leads/{leadId}/transactions`
- Auth: none required
- TypeScript: <https://skmtc.dev/lofty/apis/lofty-service-open-apis/docs/v1.0/leads/:leadId/transactions/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns all transactions attached to the given lead.

## Path parameters

- `leadId` integer, required

## Headers

- `Authorization` string, required

## Response `200`

List of transactions (may be empty).

- LeadTransaction[]
  - `created` integer: Transaction creation timestamp, in milliseconds since Unix epoch (UTC). Do not supply on create.
  - `updated` integer: Transaction last-modified timestamp, in milliseconds since Unix epoch (UTC). Do not supply on create or update.
  - `transactionId` integer: Transaction ID. Do not supply on create.
  - `transactionName` string, required: Property address or deal name. Required on create. Must not be blank and must not contain '<' or '>' characters.
  - `leadName` string: Name of the lead this transaction belongs to. Ignored if supplied in a request body.
  - `assignedAgent` integer: User ID of the agent this transaction is assigned to. Ignored if supplied in a request body.
  - `transactionType` 'Purchase' | 'Listing' | 'Lease' | 'Other': Transaction type. Case-sensitive; must be one of the supported values. Values not matching the team's configured pipeline types fall back silently to the first pipeline (typically 'Purchase / Pre-contract'); always pass a valid type to avoid this silent behavior.
  - `homePrice` number: Home price of the transaction.
  - `transactionStatus` string: Transaction status name. Must match one of the statuses configured in the team's pipeline for the given transactionType; unmatched values silently fall back to the first status of that type.
  - `expectedCloseDate` integer: Expected close date, in milliseconds since Unix epoch (UTC).
  - `closeDate` integer: Actual close date, in milliseconds since Unix epoch (UTC).
  - `commissionRate` number: Commission rate, expressed as a percentage (e.g. 3 for 3%).
  - `gci` number: Gross Commission Income (GCI) of the transaction.
  - `teamRevenue` number: Portion of the GCI attributed to the team.
  - `agentRevenue` number: Portion of the GCI attributed to the agent.
  - `appointmentDate` integer: Appointment date, in milliseconds since Unix epoch (UTC).
  - `agreementSignedDate` integer: Agreement-signed date, in milliseconds since Unix epoch (UTC).
  - `offerDate` integer: Offer date, in milliseconds since Unix epoch (UTC).
  - `contractDate` integer: Contract date, in milliseconds since Unix epoch (UTC).
  - `appraisalDate` integer: Appraisal date, in milliseconds since Unix epoch (UTC).
  - `homeInspectionDate` integer: Home-inspection date, in milliseconds since Unix epoch (UTC).
  - `escrowDate` integer: Escrow date, in milliseconds since Unix epoch (UTC).
  - `expiration` integer: Expiration date (listing / contract), in milliseconds since Unix epoch (UTC).
  - `customFields` CustomFieldRequest[]: Custom field values; full-coverage update or insertion. See GET /v1.0/transaction/customfields for the team's custom field definitions.
    - `id` integer: Custom field id
    - `value` string: Custom field value For multi_select, the format is:["Item1","Item2", ...]
  - `commissions` Commissions: Commission structure (preSplit / split / postSplit). See POST /v1.0/leads/{leadId}/transaction description for validation rules.
    - `preSplit` Commission[]
      - `id` integer
      - `splitPayType` 'TEAM' | 'AGENT' | 'VENDOR_PARTNER' | 'LEAD' | 'OTHER' | 'BROKERAGE' | 'UPLINE'
      - `splitPayTo` integer
      - `splitPayToName` string
      - `payType` 'TEAM' | 'AGENT' | 'VENDOR_PARTNER' | 'LEAD' | 'OTHER' | 'BROKERAGE' | 'UPLINE'
      - `payTo` integer
      - `payToName` string
      - `value` integer
      - `calculateType` 'PERCENT' | 'AMOUNT'
      - `desc` string
    - `split` Commission[]
      - `id` integer
      - `splitPayType` 'TEAM' | 'AGENT' | 'VENDOR_PARTNER' | 'LEAD' | 'OTHER' | 'BROKERAGE' | 'UPLINE'
      - `splitPayTo` integer
      - `splitPayToName` string
      - `payType` 'TEAM' | 'AGENT' | 'VENDOR_PARTNER' | 'LEAD' | 'OTHER' | 'BROKERAGE' | 'UPLINE'
      - `payTo` integer
      - `payToName` string
      - `value` integer
      - `calculateType` 'PERCENT' | 'AMOUNT'
      - `desc` string
    - `postSplit` Commission[]
      - `id` integer
      - `splitPayType` 'TEAM' | 'AGENT' | 'VENDOR_PARTNER' | 'LEAD' | 'OTHER' | 'BROKERAGE' | 'UPLINE'
      - `splitPayTo` integer
      - `splitPayToName` string
      - `payType` 'TEAM' | 'AGENT' | 'VENDOR_PARTNER' | 'LEAD' | 'OTHER' | 'BROKERAGE' | 'UPLINE'
      - `payTo` integer
      - `payToName` string
      - `value` integer
      - `calculateType` 'PERCENT' | 'AMOUNT'
      - `desc` string

## Other responses

- `401`: Missing or invalid authentication token.
- `404`: Lead does not exist or caller has no manage permission (error code 20006 LEAD_NOT_EXIST).
- `500`: Internal server error.

---

[API](https://skmtc.dev/lofty/apis/lofty-service-open-apis.md) - [All operations](https://skmtc.dev/lofty/apis/lofty-service-open-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/lofty/apis/lofty-service-open-apis/revisions/23e640467118?raw)
