# Lofty Developer API ## Docs - [Introduction](https://developer.lofty.com/introduction.md): The Lofty Developer API provides REST access to leads, listings, transactions, communications, tasks, and webhooks in Lofty's real estate CRM platform. - [Quickstart](https://developer.lofty.com/quickstart.md): Create a Lofty developer account, register your application, obtain OAuth 2.0 credentials or an API key, and make your first authenticated API call in minutes. - [Overview](https://developer.lofty.com/authentication/overview.md): Authenticate with the Lofty API using OAuth 2.0 or API keys. - [OAuth 2.0](https://developer.lofty.com/authentication/oauth2.md): Set up OAuth 2.0 authentication for your Lofty API integration. - [API Keys](https://developer.lofty.com/authentication/api-keys.md): Authenticate with the Lofty API using a personal access token (API key). - [Leads](https://developer.lofty.com/concepts/leads.md): Understand the lead data model, lifecycle, and routing in Lofty. - [Tasks & Appointments](https://developer.lofty.com/concepts/tasks-appointments.md): Tasks are to-do items for agents; appointments are scheduled meetings. Both share a unified taskId namespace and are managed through the V2 API. - [Listings](https://developer.lofty.com/concepts/listings.md): Search active and sold MLS listings, retrieve published listings for a site feed, and associate properties with leads using the Lofty REST API. - [Transactions](https://developer.lofty.com/concepts/transactions.md): Transactions represent real estate deals linked to a lead. Create, update, and track deals through your pipeline with custom fields and property addresses. - [Webhooks](https://developer.lofty.com/concepts/webhooks.md): Subscribe to real-time event notifications from Lofty via HTTP callbacks. - [Error Codes](https://developer.lofty.com/authentication/error-codes.md): Complete reference of error codes returned by the Lofty API. - [Lead Management](https://developer.lofty.com/guides/lead-management.md): Create, retrieve, update, assign, and delete leads using the Lofty API. - [Communication](https://developer.lofty.com/guides/communication.md): Send emails and SMS, retrieve call and message history, add notes, and log external communications for Lofty leads using the REST API. - [Working Leads](https://developer.lofty.com/guides/working-leads.md): Add leads to an agent's active working pipeline, check who is working a lead, manage mute status, and query quota limits using the Lofty V2 API. - [AI Features](https://developer.lofty.com/guides/ai-features.md): Use Lofty's AI endpoints to analyze leads, summarize calls, generate call scripts, and prepare insights for more effective outreach. - [JS / TS Integration](https://developer.lofty.com/javascript-integration.md): Safely handle 64-bit integer IDs from the Lofty API in JavaScript and TypeScript to prevent silent precision loss in your application. - [Install the Lofty CLI](https://developer.lofty.com/cli/install.md): Install lofty-cli and verify the installation. - [Quickstart](https://developer.lofty.com/cli/quickstart.md): Common lofty-cli recipes you can copy and run today. Each example assumes you have already completed Install and Authentication. - [Authentication](https://developer.lofty.com/cli/authentication.md): lofty-cli supports four authentication methods. They are evaluated in priority order at every command invocation: the first one that yields a valid access token wins. - [Configuration](https://developer.lofty.com/cli/configuration.md): lofty-cli is configured through environment variables, on-disk config files, and per-invocation flags. Everything has a sensible default -- you only need to override what is relevant to your environment. - [Output Formats](https://developer.lofty.com/cli/output-formats.md): lofty-cli supports four output formats so you can pipe results into any downstream tool. The default is human-readable text; everything else is selected with --format or the --json shortcut. - [Troubleshooting](https://developer.lofty.com/cli/troubleshooting.md): If something does not work as expected, run the failing command with --verbose first. It prints the resolved auth method, the outgoing URL, and any error details to stderr. - [Command Reference](https://developer.lofty.com/cli/reference/overview.md): Every lofty-cli resource, command, and subcommand. - [auth](https://developer.lofty.com/cli/reference/auth.md): Reference for the lofty-cli auth command and its subcommands. - [leads](https://developer.lofty.com/cli/reference/leads.md): Reference for the lofty-cli leads command and its subcommands. - [transactions](https://developer.lofty.com/cli/reference/transactions.md): Reference for the lofty-cli transactions command and its subcommands. - [calendar](https://developer.lofty.com/cli/reference/calendar.md): Reference for the lofty-cli calendar command and its subcommands. - [tasks-appointments](https://developer.lofty.com/cli/reference/tasks-appointments.md): Reference for the lofty-cli tasks-appointments command and its subcommands. - [communication](https://developer.lofty.com/cli/reference/communication.md): Reference for the lofty-cli communication command and its subcommands. - [calls](https://developer.lofty.com/cli/reference/calls.md): Reference for the lofty-cli calls command and its subcommands. - [notes](https://developer.lofty.com/cli/reference/notes.md): Reference for the lofty-cli notes command and its subcommands. - [sales-agents](https://developer.lofty.com/cli/reference/sales-agents.md): Reference for the lofty-cli sales-agents command and its subcommands. - [agent-org](https://developer.lofty.com/cli/reference/agent-org.md): Reference for the lofty-cli agent-org command and its subcommands. - [agent-user](https://developer.lofty.com/cli/reference/agent-user.md): Reference for the lofty-cli agent-user command and its subcommands. - [alerts](https://developer.lofty.com/cli/reference/alerts.md): Reference for the lofty-cli alerts command and its subcommands. - [intelligent-features](https://developer.lofty.com/cli/reference/intelligent-features.md): Reference for the lofty-cli intelligent-features command and its subcommands. - [lead-activity](https://developer.lofty.com/cli/reference/lead-activity.md): Reference for the lofty-cli lead-activity command and its subcommands. - [lead-routing](https://developer.lofty.com/cli/reference/lead-routing.md): Reference for the lofty-cli lead-routing command and its subcommands. - [listing](https://developer.lofty.com/cli/reference/listing.md): Reference for the lofty-cli listing command and its subcommands. - [log-type](https://developer.lofty.com/cli/reference/log-type.md): Reference for the lofty-cli log-type command and its subcommands. - [members](https://developer.lofty.com/cli/reference/members.md): Reference for the lofty-cli members command and its subcommands. - [notifications](https://developer.lofty.com/cli/reference/notifications.md): Reference for the lofty-cli notifications command and its subcommands. - [opportunity](https://developer.lofty.com/cli/reference/opportunity.md): Reference for the lofty-cli opportunity command and its subcommands. - [system-logs](https://developer.lofty.com/cli/reference/system-logs.md): Reference for the lofty-cli system-logs command and its subcommands. - [team-features](https://developer.lofty.com/cli/reference/team-features.md): Reference for the lofty-cli team-features command and its subcommands. - [vendor](https://developer.lofty.com/cli/reference/vendor.md): Reference for the lofty-cli vendor command and its subcommands. - [webhooks](https://developer.lofty.com/cli/reference/webhooks.md): Reference for the lofty-cli webhooks command and its subcommands. - [Overview](https://developer.lofty.com/api-reference/leads/overview.md): Full reference for the Lofty Leads API: list, create, retrieve, update, delete, assign leads, and access activity timelines and system logs. - [List Leads](https://developer.lofty.com/api-reference/leads/list-leads.md): Returns a page of leads matching the supplied filters with pagination metadata. - [Create Lead](https://developer.lofty.com/api-reference/leads/create-lead.md): ## Lead Assignment & Routing - [Get Lead](https://developer.lofty.com/api-reference/leads/get-lead.md): Returns a single lead by ID. The response is wrapped under the 'lead' key. - [Update Lead](https://developer.lofty.com/api-reference/leads/update-lead.md): Updates an existing lead. Caller must have manage permission on the lead. - [Delete Lead](https://developer.lofty.com/api-reference/leads/delete-lead.md): Moves a lead to the trash. A reason is required and is stored for audit. The response body is empty. - [Lead Activities](https://developer.lofty.com/api-reference/leads/activities.md): Returns the lead's site-tracked activities (browse / search / favorite / showing request / submission) across tracking types 1, 2, 3, 23 and 39, merged and sorted by created time descending. - [List lead activities](https://developer.lofty.com/api-reference/leads/list-lead-activities.md): Returns a unified list of call, text and email activities for the given lead, including both auto-captured and agent-logged entries, sorted by activityTime ascending. - [Add activity](https://developer.lofty.com/api-reference/leads/add-activity.md): Add activity to a lead. - [List Notes](https://developer.lofty.com/api-reference/communication/list-notes.md): Returns all notes attached to the given lead. - [Get a note by ID](https://developer.lofty.com/api-reference/communication/get-a-note-by-id.md): Returns a single note by its ID. The note must belong to a lead visible to the caller. - [Create Note](https://developer.lofty.com/api-reference/communication/create-note.md): Creates a note on the target lead. - [Update Note](https://developer.lofty.com/api-reference/communication/update-note.md): Updates the content and pin state of an existing note. - [Delete Note](https://developer.lofty.com/api-reference/communication/delete-note.md): Deletes a note by ID. Caller must have manage permission on the lead that owns the note. The response body is empty. - [List manual logs of a lead](https://developer.lofty.com/api-reference/manual-logs/list-manual-logs-of-a-lead.md): Returns the lead's manual-log entries for a single channel (logCall, logEmail or logText), paginated via offset+limit or cursor (currentId). - [Add a manual log entry](https://developer.lofty.com/api-reference/manual-logs/add-a-manual-log-entry.md): Creates a manual log entry (logCall, logEmail or logText) for the target lead. - [Get a manual log entry by ID](https://developer.lofty.com/api-reference/manual-logs/get-a-manual-log-entry-by-id.md): Returns a single manual log entry by its ID. - [Delete a manual log entry](https://developer.lofty.com/api-reference/manual-logs/delete-a-manual-log-entry.md): Deletes a manual log entry by ID. Only entries whose logType is logCall, logEmail or logText can be deleted through this endpoint; deletion of other timeline types returns 404 RESOURCE_NOT_EXIST. - [Assign Lead](https://developer.lofty.com/api-reference/leads/assign-lead.md): Place assignee to a lead. - [Preview Routing](https://developer.lofty.com/api-reference/leads/resolve-assignees-by-lead-info.md): Returns the assignees that would be selected by routing rules for a hypothetical lead matching the supplied name, email and other attributes. Useful for previewing routing before creating the lead. - [Update Property Info](https://developer.lofty.com/api-reference/leads/place-a-property.md): Attach a property (or mailing address) to the specified lead. The behaviour depends on the `property.id` field in the request body: - [Add Inquiry](https://developer.lofty.com/api-reference/leads/place-an-inquiry.md): Place an inquiry for a lead. - [System Logs](https://developer.lofty.com/api-reference/leads/system-logs.md): Returns system-event timeline entries for the lead, sorted by timelineTime descending (newest first), with offset-based pagination. - [Overview](https://developer.lofty.com/api-reference/tasks/overview.md): Manage tasks, appointments, and calendar events in Lofty. - [List Tasks](https://developer.lofty.com/api-reference/tasks/v2/list-tasks.md): Returns all tasks and appointments attached to the given lead. Caller must have manage permission on the lead. - [Create Task](https://developer.lofty.com/api-reference/tasks/v2/create-task.md): Creates a new task or appointment on the target lead. Whether an appointment or a regular task is created depends on the payload's type field. - [Get Task](https://developer.lofty.com/api-reference/tasks/v2/get-task.md): Returns a single task or appointment by ID. Tasks and appointments share the same taskId namespace; the endpoint resolves the target automatically. - [Update Task](https://developer.lofty.com/api-reference/tasks/v2/update-task.md): Partially updates a task or appointment. Only non-null fields in the request body are applied. - [Delete Task](https://developer.lofty.com/api-reference/tasks/v2/delete-task.md): Deletes a task or appointment by ID. Caller must have manage permission on the entry's lead. - [Finish Task](https://developer.lofty.com/api-reference/tasks/v2/finish-task.md): Marks a task or appointment as completed. Caller must have manage permission on the entry's lead. Smart-plan tasks cannot be finished through this endpoint (TASK_IS_SMARTPLAN). - [Unfinish Task](https://developer.lofty.com/api-reference/tasks/v2/unfinish-task.md): Reverts a task or appointment back to the not-completed state. Caller must have manage permission on the entry's lead. - [My Tasks](https://developer.lofty.com/api-reference/tasks/v2/my-tasks.md): Returns tasks assigned to the caller, sorted by startTime descending. Supports cursor-based pagination via currentId (offset) + limit. - [List Calendar Events](https://developer.lofty.com/api-reference/calendar/v2/list-events.md): Returns a page of calendar entries (Tasks and Appointments) for the caller, optionally filtered by leadId, type and completion status. - [Create Calendar Event](https://developer.lofty.com/api-reference/calendar/v2/create-event.md): Creates either a Task or an Appointment for the target lead, selected by the 'type' field (case-insensitive TASK / APPOINTMENT). - [Update Calendar Event](https://developer.lofty.com/api-reference/calendar/v2/update-event.md): Partially updates a Task or Appointment. Only non-empty fields in the request body are applied; omitted fields keep their current values. - [Delete Calendar Event](https://developer.lofty.com/api-reference/calendar/v2/delete-event.md): Deletes a Task or Appointment by its composite ID. The response body is a simple message envelope. - [Finish Calendar Event](https://developer.lofty.com/api-reference/calendar/v2/finish-event.md): Marks a Task or Appointment as finished. Caller must have manage permission on the entry's lead. - [Unfinish Calendar Event](https://developer.lofty.com/api-reference/calendar/v2/unfinish-event.md): Reverts a Task or Appointment back to the not-completed state. Caller must have manage permission on the entry's lead. - [Available Meetings](https://developer.lofty.com/api-reference/calendar/v2/available-meetings.md): Returns available meeting time slots within the given time range, sorted by startTime ascending. - [List Tasks (V1)](https://developer.lofty.com/api-reference/tasks/v1/list-tasks.md): Returns tasks attached to the given lead. Caller must have manage permission on the lead. - [Create Task (V1)](https://developer.lofty.com/api-reference/tasks/v1/create-task.md): Creates a task on the target lead. - [Get Task (V1)](https://developer.lofty.com/api-reference/tasks/v1/get-task.md): Returns a single task by ID, along with the lead's pipeline context. Caller must have manage permission on the lead that owns the task. - [Update Task (V1)](https://developer.lofty.com/api-reference/tasks/v1/update-task.md): Partially updates an existing task. Fields not supplied are left unchanged. - [Delete Task (V1)](https://developer.lofty.com/api-reference/tasks/v1/delete-task.md): Deletes a task by ID. Caller must have manage permission on the task's lead. The response body is empty. - [List Appointments](https://developer.lofty.com/api-reference/tasks/v1/list-appointments.md): Returns appointments attached to the given lead. Caller must have manage permission on the lead. - [List Transactions](https://developer.lofty.com/api-reference/transactions/list-transactions.md): Search and list transactions with pagination and optional keyword filter. - [Create Transaction](https://developer.lofty.com/api-reference/transactions/create-transaction.md): Creates a new transaction under the given lead. - [Get Transaction](https://developer.lofty.com/api-reference/transactions/get-transaction.md): Fetches a single transaction that belongs to the given lead. - [Update Transaction](https://developer.lofty.com/api-reference/transactions/partially-update-a-transaction.md): Partially updates an existing transaction. Only supplied fields are applied; omitted fields remain unchanged. `transactionStatus` is writable: supply the stage's display name exactly as it appears in the team's transaction pipeline for the given `transactionType` (case-insensitive, e.g. "Under Contr… - [List by Lead](https://developer.lofty.com/api-reference/transactions/list-transactions-for-a-lead.md): Returns all transactions attached to the given lead. - [List Transaction Pipelines](https://developer.lofty.com/api-reference/transactions/list-transaction-pipelines.md): Returns the team's full transaction pipeline configuration: for each transaction type (Purchase, Listing, Lease, Other), the ordered list of stages with their IDs, names and semantic flags. Use this to discover the valid status values before creating or updating transactions — stage names are custom… - [Update Property Address](https://developer.lofty.com/api-reference/transactions/update-transaction-property-address.md): Updates the property address of a transaction. The `transactionId` is carried in the request body, not the URL. - [Get Property Address](https://developer.lofty.com/api-reference/transactions/get-transaction-property-address.md): Returns the property address associated with a transaction. - [Overview](https://developer.lofty.com/api-reference/listings/overview.md): Understand the different listing search endpoints and when to use each. - [Search by Agent / Office](https://developer.lofty.com/api-reference/listings/search-listings-by-agent-office-or-mls-id.md): Searches active and sold listings for a specific agent (the caller by default), their office, or a set of MLS listing IDs. - [Get Published Listings](https://developer.lofty.com/api-reference/listings/get-published.md): Returns the caller team's published listings as an XML feed. Intended for external syndication partners; the response content type is application/xml. - [Search by Agent](https://developer.lofty.com/api-reference/communication/search-communications-by-agent.md): Returns a page of communication timeline entries for the caller (or the caller's team when teamView=true, requiring ACCESS_ALL_TEAM_LEADS permission), filtered by type and optional time range. The response is a page wrapper with totalCount, offset, limit, and pageData. - [Search by Agent (cursor paged)](https://developer.lofty.com/api-reference/communication/search-communications-by-agent-v2.md): Returns communication timeline entries for the caller (or the caller's team when teamView=true, requiring ACCESS_ALL_TEAM_LEADS permission) within a time range. - [Calls Overview](https://developer.lofty.com/api-reference/communication/calls-overview.md): Understand the two sets of call APIs and when to use each. - [Call History](https://developer.lofty.com/api-reference/communication/call-history.md): Returns call history entries for the given lead. Lead must belong to the caller's team. - [List call history of a lead (v2)](https://developer.lofty.com/api-reference/communication/list-call-history-of-a-lead-v2.md): Returns call history entries for the given lead, including additional event types not covered by the v1 variant. Lead must belong to the caller's team. - [List calls of a lead](https://developer.lofty.com/api-reference/calls/list-calls-of-a-lead.md): Returns call records attached to the given lead, with pagination metadata. - [Get a call by ID](https://developer.lofty.com/api-reference/calls/get-a-call-by-id.md): Returns a single call record by ID. Caller must have manage permission on the lead the call belongs to; otherwise 400 PERMISSION_DENIED. - [Get Call](https://developer.lofty.com/api-reference/communication/get-call.md): Returns the call identified by the given communication ID. The communication must be a call record, and the caller must have manage permission on the owning lead; otherwise 400 PERMISSION_DENIED is returned (no existence leak). Manually logged calls (those with no backing dialer record) are populate… - [Get a call recording URL](https://developer.lofty.com/api-reference/calls/get-a-call-recording-url.md): Returns a temporary download URL for the audio recording of a call. - [Email History](https://developer.lofty.com/api-reference/communication/list-emails.md): Returns email history entries for the given lead. Lead must belong to the caller's team. - [Send Email](https://developer.lofty.com/api-reference/communication/send-email.md): Sends an email to the specified lead using the caller's outgoing email configuration. - [Get Email](https://developer.lofty.com/api-reference/communication/get-email.md): Returns the email identified by the given communication ID. The communication must be an email record, and the caller must have manage permission on the owning lead; otherwise 400 PERMISSION_DENIED is returned (no existence leak). - [SMS History](https://developer.lofty.com/api-reference/communication/list-sms.md): Returns text message history entries for the given lead. Lead must belong to the caller's team. - [Send SMS](https://developer.lofty.com/api-reference/communication/send-sms.md): Sends an SMS to the specified lead from the caller's virtual number. - [Get Text](https://developer.lofty.com/api-reference/communication/get-text.md): Returns the text message identified by the given communication ID. The communication must be a text record, and the caller must have manage permission on the owning lead; otherwise 400 PERMISSION_DENIED is returned (no existence leak). - [Send Opportunity Alert](https://developer.lofty.com/api-reference/opportunity/send-an-opportunity-notification-to-the-leads-assi.md): Sends an in-app notification to the agent(s) assigned to the given lead, representing a buyer/seller activity signal (e.g. viewed a listing, saved a search, requested CMA). Certain notificationType values also trigger SMS and Email delivery. - [Send Task Reminder Push](https://developer.lofty.com/api-reference/notifications/send-app-push-for-taskappointment-reminder.md): Sends an in-app push notification to the agent assigned to the given task or appointment. - [Send SMS to Agent](https://developer.lofty.com/api-reference/notifications/send-system-sms-to-agent.md): Sends a system SMS message to the current logged-in user's phone number. - [Send Email to Agent](https://developer.lofty.com/api-reference/notifications/send-system-email-to-agent.md): Sends a system email to the current logged-in user's email address. - [Team Members](https://developer.lofty.com/api-reference/team/members.md): Returns members of the caller's team, optionally filtered by office / group IDs, with pagination metadata. - [Get a team member by account (email)](https://developer.lofty.com/api-reference/team/get-a-team-member-by-account-email.md): Returns a team member of the caller's team identified by their login email. The member must have accepted the team invitation. - [Get a team member by user ID (deprecated)](https://developer.lofty.com/api-reference/team/get-a-team-member-by-user-id-deprecated.md): Returns a team member of the caller's team by user ID. Deprecated: prefer GET /v1.0/members/{account} when only the email is available, or GET /v1.0/members with pagination for directory listing. - [Get the current user's profile](https://developer.lofty.com/api-reference/team/get-the-current-users-profile.md): Returns the team-member profile of the caller, resolved from the authentication token. - [List Vendors](https://developer.lofty.com/api-reference/vendor/list-vendors-of-the-callers-team.md): Returns the vendor directory for the team .Notes: - Scope: the list is scoped to the caller's team (teamId is resolved from the token). - Ordering is not guaranteed; do not rely on a specific sort order. - Only the fields defined in VendorInfo are exposed; internal fields are not returned. - The res… - [List Tags](https://developer.lofty.com/api-reference/team-features/list-lead-tags-visible-to-the-caller.md): Returns lead tags visible to the caller within the team. Includes both team-wide tags and tags scoped to the caller. - [List Custom Fields](https://developer.lofty.com/api-reference/team-features/list-lead-custom-field-definitions.md): Returns the lead-level custom field definitions configured on the caller's team. Use the returned IDs when populating custom field values on leads. - [List Transaction Custom Fields](https://developer.lofty.com/api-reference/transactions/list-transaction-custom-field-definitions.md): Returns the team-level custom field definitions applicable to transactions. Use the returned ids when populating LeadTransaction.customFields on create / update. - [Add Custom Field](https://developer.lofty.com/api-reference/team-features/add-a-lead-custom-field.md): Creates a new lead-level custom field on the caller's team. - [List Lead Ponds](https://developer.lofty.com/api-reference/team-features/list-lead-ponds-visible-to-the-caller.md): Returns lead ponds on the caller's team that the caller is allowed to see. - [Get Lead Pond](https://developer.lofty.com/api-reference/team-features/get-a-lead-pond-by-id.md): Returns a single lead pond by ID. The pond must belong to the caller's team and be visible to the caller (office-level lead-pond manage permission). If it is not, the request fails with 400 Permission denied; the same error is returned whether the pond does not exist or simply is not visible, so exi… - [List Lead Pipelines](https://developer.lofty.com/api-reference/team-features/list-lead-pipelines.md): Returns a page of lead pipeline entries defined on the caller's team. Use the returned lead pipeline IDs when assigning or filtering leads. - [Create a new agent](https://developer.lofty.com/api-reference/agents/create-a-new-agent.md): Creates a new agent under the caller's team using the supplied profile. - [Add tags to an agent](https://developer.lofty.com/api-reference/agents/add-tags-to-an-agent.md): Attaches one or more tags to the specified agent in batch. - [Deactivate an agent](https://developer.lofty.com/api-reference/agents/deactivate-an-agent.md): Deactivates the specified agent of the caller's team. - [Reactivate an agent](https://developer.lofty.com/api-reference/agents/reactivate-an-agent.md): Reactivates a previously deactivated agent of the caller's team. - [Get Organization](https://developer.lofty.com/api-reference/org/get-the-callers-organization-info.md): Returns the organization structure the caller belongs to. - [Add Office](https://developer.lofty.com/api-reference/org/add-an-office-to-the-team.md): Creates a new office (organizational sub-unit) under the caller's team. Caller must have permission to manage team organization. - [Update Office](https://developer.lofty.com/api-reference/org/update-an-office.md): Updates an existing office under the caller's team. Caller must have permission to manage team organization. - [Update Company](https://developer.lofty.com/api-reference/org/update-the-teams-company-info.md): Updates the company record associated with the caller's team. Caller must have permission to manage team organization. - [List Permission Profiles](https://developer.lofty.com/api-reference/org/list-permission-profiles-available-to-the-team.md): Returns the permission profiles (role templates) defined on the caller's team. Use these IDs when assigning roles to team members. - [Lead Routing Rules](https://developer.lofty.com/api-reference/team/routing.md): Returns the routing rules configured on the caller's team for the given business type. Caller must have MANAGE_LEAD_DISTRIBUTION or MANAGE_LEAD_DISTRIBUTION_DEPARTMENT permission. - [Update a routing rule](https://developer.lofty.com/api-reference/routing/update-a-routing-rule.md): Updates a routing rule identified by its ID. Validates activeHours and routingStrategy: - [Get default (supplement) routing rule](https://developer.lofty.com/api-reference/routing/get-default-supplement-routing-rule.md): Returns the default / fallback routing rule configured on the caller's team for the given business type. Caller must have MANAGE_LEAD_DISTRIBUTION or MANAGE_LEAD_DISTRIBUTION_DEPARTMENT permission. - [Update default (supplement) routing rule](https://developer.lofty.com/api-reference/routing/update-default-supplement-routing-rule.md): Updates the default / fallback routing rule for the given business type. - [List assign roles](https://developer.lofty.com/api-reference/routing/list-assign-roles.md): Returns the assignable roles defined on the caller's team. Use the returned IDs when the routing business type is ASSISTANT_LEAD. Caller must have MANAGE_LEAD_DISTRIBUTION or MANAGE_LEAD_DISTRIBUTION_DEPARTMENT permission. - [List members available for assignment](https://developer.lofty.com/api-reference/routing/list-members-available-for-assignment.md): Returns members that can be assigned when routing leads of the given business type. Caller must have MANAGE_LEAD_DISTRIBUTION or MANAGE_LEAD_DISTRIBUTION_DEPARTMENT permission. - [Get current user's Sales Agent](https://developer.lofty.com/api-reference/sales-agents/get-current-users-sales-agent.md): Retrieves the Sales Agent (AI Assistant) configuration for the current logged-in user. Returns detailed information including assistant profile, virtual contact info, and quota settings. - [Get current user's Sales Agent quota](https://developer.lofty.com/api-reference/sales-agents/get-current-users-sales-agent-quota.md): Retrieves AI quota information for the current logged-in user, including total quota, used quota, remaining quota, and borrow status. - [Get Sales Agent by lead ID](https://developer.lofty.com/api-reference/sales-agents/get-sales-agent-by-lead-id.md): Retrieves the Sales Agent (AI Assistant) configuration associated with the specified lead. - [Query Sales Agent settings](https://developer.lofty.com/api-reference/sales-agents/query-sales-agent-settings.md): Returns the Sales Agent settings configured for the current caller. - [Update Sales Agent settings](https://developer.lofty.com/api-reference/sales-agents/update-sales-agent-settings.md): Update the Sales Agent settings for the current user. Sales Agent creation must be completed in CRM. This API only supports updating existing settings. - [Query working leads (paginated)](https://developer.lofty.com/api-reference/sales-agents/query-working-leads-paginated.md): Retrieves a paginated list of leads currently being followed up by AI Sales Agent. Supports filtering by AI stage (HIGH_PRIORITY, AI_PROSPECTING, AI_MONITORING). Returns lead basic info with AI stage, task counts, and timestamps. - [Check if lead is a working lead](https://developer.lofty.com/api-reference/sales-agents/check-if-lead-is-a-working-lead.md): Checks whether a lead is currently in the Sales Agent's AI working pool. Returns true if the lead is actively being followed up, false otherwise. - [Batch add leads to Sales Agent working pool](https://developer.lofty.com/api-reference/sales-agents/batch-add-leads-to-sales-agent-working-pool.md): Adds multiple leads to the AI Sales Agent working pool. Optionally creates plan tasks for each successfully added lead. Returns succeeded and failed lead IDs. Max 100 leads per request. - [Mute a working lead](https://developer.lofty.com/api-reference/sales-agents/mute-a-working-lead.md): Mutes the AI assistant for the specified lead to stop further automated follow-ups. Verifies success by checking mute status after operation. - [Get Sales Agent lead mute status](https://developer.lofty.com/api-reference/sales-agents/get-sales-agent-lead-mute-status.md): Returns the mute status of the AI assistant for the specified lead. - [Get plan tasks by lead ID](https://developer.lofty.com/api-reference/sales-agents/get-plan-tasks-by-lead-id.md): Retrieves AI tasks associated with a lead. Tasks are returned in V2 format with human-friendly status and type names. - [Batch create plan tasks for leads](https://developer.lofty.com/api-reference/sales-agents/batch-create-plan-tasks-for-leads.md): Creates AI plan tasks for multiple leads. Each lead must already be in the Sales Agent working pool. Returns succeeded and failed lead IDs. Max 100 leads per request. - [Send SMS to agent via AI number](https://developer.lofty.com/api-reference/sales-agents/send-sms-to-agent-via-ai-number.md): Sends an SMS message to the current logged-in agent using the Sales Agent's AI virtual number as the sender. - [Generate Call Script](https://developer.lofty.com/api-reference/ai/generate-call-script.md): Generates a call script based on lead information and an associated task. - [Get Call Summary](https://developer.lofty.com/api-reference/ai/get-call-summary.md): Queries and returns the generated call summary for a call recording. - [Generate Call Summary](https://developer.lofty.com/api-reference/ai/trigger-call-summary-generation.md): Triggers async generation of a call summary from a call recording. - [Prepare Insight](https://developer.lofty.com/api-reference/ai/generate-prepare-insight.md): Generates pre-meeting insight based on lead and appointment information. - [List Lead Analysis Tasks](https://developer.lofty.com/api-reference/ai/query-leadanalysis-task-list.md): Paginates current user's LeadAnalysis tasks (last 3 months, excluding canceled/finished). - [Create Lead Analysis Task](https://developer.lofty.com/api-reference/ai/create-leadanalysis-task.md): Triggers an AI analysis task for the specified lead list, executed asynchronously. - [List Webhooks](https://developer.lofty.com/api-reference/webhooks/list-webhooks.md): Returns all webhook subscriptions configured for the caller's team. See the Webhooks tag description for the full list of event types. For detailed payload shapes per event type, see [Webhook Event Payloads](/concepts/webhooks#event-payloads). - [Create Webhook](https://developer.lofty.com/api-reference/webhooks/create-webhook.md): Subscribes the caller's team to a webhook event type. See the Webhooks tag description for the full list of event types and delivery rules. For detailed payload shapes per event type, see [Webhook Event Payloads](/concepts/webhooks#event-payloads). - [Delete Webhook](https://developer.lofty.com/api-reference/webhooks/delete-webhook.md): Deletes a webhook subscription by ID. The subscription must belong to the caller's team. The response body is empty. - [Brokermint — Sync Lead](https://developer.lofty.com/api-reference/leads/brokermint-webhook-update-a-synced-lead.md): Callback endpoint for Brokermint to push contact updates into Lofty. Not intended for general external callers. - [Brokermint — Sync Transaction](https://developer.lofty.com/api-reference/transactions/brokermint-webhook-update-a-synced-transaction.md): Callback endpoint for Brokermint integration to sync transaction updates into Lofty. - [2026](https://developer.lofty.com/changelog/2026.md) - [2025](https://developer.lofty.com/changelog/2025.md) - [2024](https://developer.lofty.com/changelog/2024.md) - [2023](https://developer.lofty.com/changelog/2023.md) ## OpenAPI Specs - [openapi](https://developer.lofty.com/openapi/openapi.json)