> ## Documentation Index
> Fetch the complete documentation index at: https://developer.lofty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026

<Update label="July 2026" tags={["Field changes"]}>
  ## Leads — remove tags on Update Lead

  **`PUT /v1.0/leads/{leadId}`** gains two request fields for removing tags without resending the full list:

  * **`tagsRemove`** (string array) — removes the named tags from the lead. Names are matched literally; a name not currently on the lead is ignored. Applied after `tags` / `tagsAdd`.
  * **`clearAllTags`** (boolean, default `false`) — set to `true` to remove **all** tags from the lead. Takes precedence over `tags` / `tagsAdd` / `tagsRemove`.

  Previously, removing a tag required replacing the entire tag set via `tags`.
</Update>

<Update label="June 2026" tags={["New endpoints", "Webhooks", "Field changes", "Fixes"]}>
  ## Communications — Cursor-paged search

  Added **`GET /v2.0/communication/agent`** — cursor-paginated search of an agent's communications. Supports `type=ALL` to merge calls, texts, and emails; a query window of up to 90 days; and `search_after`-based pagination via an opaque `cursor` (replacing offset paging). The response includes `data`, `nextCursor`, `hasMore`, `limit`, and `totalCount`.

  ## Webhooks — Ownership-based delivery

  Added a **`permissionMode`** field on `POST /v1.0/webhook`:

  * **`0`** (default) — assignment-based delivery; unchanged behavior.
  * **`1`** — ownership-based delivery; the subscriber also receives callbacks for any lead within their ownership scope (team, office, or personally owned), not only assigned leads.

  ## Field Changes

  * **System Logs** (`GET /v1.0/systemLogs`) — each entry now includes **`timelineTypeDesc`**, a human-readable event name paired with the integer `timelineType`, so you no longer need to map the integer yourself.

  ## Fixes

  * **Leads** (`GET /v1.0/leads`) — the **`opportunity`** field is now correctly populated (it previously always returned empty).
</Update>

<Update label="May 2026" tags={["New endpoints"]}>
  ## Communications — single-record lookups

  Added v2 endpoints to fetch a single communication by ID:

  * **`GET /v2.0/communication/call/{communicationId}`**
  * **`GET /v2.0/communication/text/{communicationId}`**
  * **`GET /v2.0/communication/email/{communicationId}`**

  Single-record responses also surface manually-logged calls and their text content.
</Update>

<Update label="April 2026" tags={["New endpoints", "Field changes", "New tools"]}>
  ## Lofty CLI

  Released [`@loftyai/lofty-cli`](https://www.npmjs.com/package/@loftyai/lofty-cli) — a command-line tool for the Lofty API. Manage leads, agents, listings, tasks, transactions, and more from your terminal.

  ```bash theme={null}
  npm install -g @loftyai/lofty-cli
  lofty-cli auth login
  lofty-cli leads list --limit 10
  ```

  See the [Lofty CLI documentation](/cli/install) for setup and command reference.

  ## Transaction V2 Search

  Added `GET /v2.0/transactions` — paginated transaction search with keyword, lead, and date filters.

  ## Lead Query Enhancements

  New parameters for `GET /v1.0/leads`:

  * **`returnFields`**: Specify which fields to return (comma-separated), reducing payload size.
  * **`otherFilters`**: Pass custom LeadFilter overrides for advanced filtering.
  * **`key`**: Fuzzy search by name, phone, or email in a single parameter.

  ## Field Changes

  * **Calendar V2** — `startTime` / `endTime` now accept millisecond timestamps in addition to ISO 8601.
  * **Manual Log** (`POST /v1.0/logType`) — Added `emailSubject`, `toEmail`, `fromEmail` fields for email log entries.
  * **Manual Log** (`POST /v1.0/logType`) — The response now returns the created entry's `id`.
  * **Manual Log** (`GET /v1.0/logType`) — Added `sort` / `order` parameters to control result ordering, and the response now includes the `content` field.
</Update>

<Update label="March 2026" tags={["New endpoints", "New features", "Authentication"]}>
  ## Sales Agents & AI

  8 new endpoints for managing Sales Agent workflows:

  * **`GET /v2.0/sales-agents/by-lead`** — Get Sales Agent by lead ID
  * **`GET /v2.0/sales-agents/quota`** — Get current user's quota
  * **`GET /PUT /v2.0/sales-agent/settings`** — Query and update settings
  * **`PUT /v2.0/sales-agents/working-lead/{leadId}/mute`** — Mute a working lead
  * **`POST /v2.0/working-leads/add`** — Batch add leads to working pool
  * **`POST /v2.0/plan-tasks/create`** — Batch create plan tasks

  ## Intelligent Features (AI)

  6 new AI-powered endpoints:

  * **`POST /v2.0/ai/call-script`** — Generate call script
  * **`GET /POST /v2.0/ai/call-summary`** — Get or trigger call summary generation
  * **`POST /v2.0/ai/prepare-insight`** — Generate prepare insight
  * **`GET /POST /v2.0/ai/lead-analysis`** — List or create lead analysis tasks

  ## Calendar V2

  Full CRUD + lifecycle management for calendar events:

  * **`GET /POST /v2.0/calendar`** — List and create events
  * **`PUT /DELETE /v2.0/calendar/{calendarId}`** — Update and delete events
  * **`POST finish/unfinish`** — Mark events as completed or reopen
  * **`GET /v2.0/calendar/meetings/available`** — List available meeting slots

  ## Tasks V2 Enhancements

  * **`GET /v2.0/tasks/my-tasks`** — List tasks and appointments assigned to the current user
  * **`POST finish/unfinish`** — Mark tasks as completed or reopen

  ## Lead Activity V2

  * **`GET /v2.0/leads/{leadId}/activities`** — Unified timeline with calls, texts, and emails in chronological order

  ## Listing V2

  * **`POST /v2.0/listings/search`** — Search by location, price, beds, baths, property type
  * Replaced `locations` array with simpler `key` / `keywordType` params

  ## Notifications

  * **`POST /v2.0/sales-agent/notification/app-push/send-task-reminder`** — Task reminder push
  * **`POST send-to-agent`** — Send system SMS or email to agent
  * **`POST /v2.0/sales-agent/ai-number/send-sms-to-agent`** — Send SMS via AI number

  ## Agent Tags

  * **`POST /v1.0/agent/{agentId}/tag/add`** — Batch add tags with autoCreate support

  ## Field Changes

  * **Listing** — Added `propertyTypePrimary` and `propertyTypeSecondary` to response
  * **Note** — Added `noteId`, `noteType`, `idOfType` fields
  * **Calendar V2** — Added `taskId` field to calendar items

  ## Authentication

  * Added OAuth 2.0 Client Credentials flow (`/oauth/token`) for server-to-server integrations
  * Added per-app rate limiting and token scope enforcement
</Update>
