How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Lasso CRM API

The public API for Lasso CRM, ECI's new-home-sales CRM (acquired with Lasso Data Systems and sold under ecisolutions.com/products/lasso-crm). Manages registrants, their contact information, notes, questions, appointments, relationships, assigned sales reps and history, plus projects and inventory with plan types and pricing revisions. Bearer JWT API keys are issued per project or location; a 1,000 request-per-minute limit applies per key, and a registrant webhook event system pushes inserted/updated/deleted events to registered integrations.

Lasso CRM API is one of 15 APIs that ECI Solutions publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include CRM, Home Building, Sales, and Webhooks. The published artifact set on APIs.io includes an OpenAPI specification, an API reference, and a changelog.

This API exposes 68 operations across 44 paths, organized into 20 resource areas, and defines 88 schemas. It is described by OpenAPI 3.0.2, at version 1.0.39.

Requests are made against a single base URL, https://api.lassocrm.com/v1.

68 operations 44 paths 88 schemas 9 DELETE21 GET16 POST22 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.2
API Version
1.0.39
Base URL
https://api.lassocrm.com/v1
Authentication
HTTP Bearer
Resource Areas
20

Authentication & Security 1

Lasso CRM API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (JWT) (JwtAuthorizer).

Paths & Operations 68

Across 44 paths, the API surfaces 68 operations — 9 DELETE, 21 GET, 16 POST, 22 PUT. They span 20 resource areas, including Registrant, Registrant Contact Information, Registrant Integrations, Registrant Sales Details, Registrant Assigned Sales Reps, Registrant Question Answers, Registrant Notes, Registrant History, and 12 more. Each is listed below with its method, path, parameters, and response codes.

Registrant 5
GET
/registrants
List of registrants for a project.
get_registrants 6 params → 200400401403500
POST
/registrants
Create a registrant
post_registrants body → 202400401403500
GET
/registrants/search
Search registrants by name, email, phone, nickname, externalId, rating or creation date.
get_registrants_search 12 params → 200400401403500
PUT
/registrants/{registrantId}
Update a registrants personal data
put_registrants_by_id 1 param body → 200400401403404500
GET
/registrants/{registrantId}
Extended data for a registrant
get_registrants_by_id 1 param → 200401403404500
Registrant Contact Information 11
PUT
/registrants/{registrantId}/person/contact-information
Convenience method to update all of a registrant's contact information in a single call
get_registrants_contact_information 1 param body → 200400401403404500
GET
/registrants/{registrantId}/person/contact-information
Retrieve all of a registrant's contact information
put_registrants_contact_information 1 param → 200401403404500
POST
/registrants/{registrantId}/emails
post_registrants_emails 1 param body → 201400401403404500
PUT
/registrants/{registrantId}/emails/{emailId}
put_registrants_emails_by_id 2 params body → 200400401403404500
DELETE
/registrants/{registrantId}/emails/{emailId}
delete_registrants_emails_by_id 2 params → 204401403500
POST
/registrants/{registrantId}/phones
post_registrants_phones 1 param body → 201400401403404500
PUT
/registrants/{registrantId}/phones/{phoneId}
put_registrants_phones_by_id 2 params body → 200400401403404500
DELETE
/registrants/{registrantId}/phones/{phoneId}
delete_registrants_phones_by_id 2 params → 204401403500
POST
/registrants/{registrantId}/addresses
post_registrants_addresses 1 param body → 201400401403404500
PUT
/registrants/{registrantId}/addresses/{addressId}
put_registrants_addresses_by_id 2 params body → 200400401403404500
DELETE
/registrants/{registrantId}/addresses/{addressId}
delete_registrants_addresses_by_id 2 params → 204401403500
Registrant Integrations 3
POST
/registrants/{registrantId}/integrations
Associate an external customer with a Lasso registrant. What this allows, is for integration-specific triggers to automatically fire when an event is registered for a registrant - for example, when a…
post_registrants_integrations 1 param body → 200400401403404500
DELETE
/registrants/{registrantId}/integrations
Disassociates a registrant from all externalId's of an integration. This means that webhooks that trigger on externalId will no longer send events for this registrant. The integration associated with…
delete_registrants_integrations 1 param → 204401403404500
DELETE
/registrants/{registrantId}/external/{externalId}
Disassociates a registrant from a specific externalId. This means that webhooks that trigger on the specified externalId will no longer send events for this registrant. The integration associated wit…
delete_registrants_external 2 params → 204401403500
Registrant Sales Details 4
PUT
/registrants/{registrantId}/rating
Set the rating for the registrant. If the rating does not exist, it will be created.
put_registrants_rating 1 param body → 200400401403404500
PUT
/registrants/{registrantId}/follow-up-process
Set the follow-up process. If the follow-up process does not exist, it will be created.
put_registrants_follow_up_process 1 param body → 200400401403404500
PUT
/registrants/{registrantId}/source-type
Set the source type. If the source type does not exist, it will be created.
put_registrants_source_type 1 param body → 200400401403404500
PUT
/registrants/{registrantId}/secondary-source-type
Set the secondary source type. If the secondary source type does not exist, it will be created.
put_registrants_secondarysource_type 1 param body → 200400401403404500
Registrant Assigned Sales Reps 2
GET
/registrants/{registrantId}/assigned-sales-reps
Gets a list of sales reps that this registrant is assigned to.
get_registrants_assigned_sales_reps 1 param → 200401403404500
PUT
/registrants/{registrantId}/assigned-sales-reps
Update a registrant's assigned sales reps. This list will overwrite the assigned sales reps for the registrant. Only one sales rep can be set to primary. If more than one has isPrimary set to true, a…
put_registrants_assigned_sales_reps 1 param body → 200400401403404500
Registrant Question Answers 2
POST
/registrants/{registrantId}/questions
post_registrants_questions 1 param body → 201400401403404500
PUT
/registrants/{registrantId}/questions/{questionId}
put_registrants_questions_by_id 2 params body → 200400401403404500
Registrant Notes 2
POST
/registrants/{registrantId}/notes
post_registrants_notes 1 param body → 201400401403404500
DELETE
/registrants/{registrantId}/notes/{noteId}
delete_registrants_notes_by_id 2 params → 204401403500
Registrant History 3
POST
/registrants/{registrantId}/histories
post_registrants_histories 1 param body → 201400401403404500
GET
/registrants/{registrantId}/histories/{historyId}
get_registrants_histories_by_id 2 params → 200401403404500
PUT
/registrants/{registrantId}/histories/{historyId}
Update a history item. createdBy is ignored and cannot be updated.
put_registrants_histories_by_id 2 params body → 200400401403404500
Registrant Relationships 3
POST
/registrants/{registrantId}/relationships
postt_registrants_relationships 1 param body → 201400401403404500
PUT
/registrants/{registrantId}/relationships/{relationshipId}
Edits a relationship type only. This method cannot be used to edit a relationship's registrant. To do so, please delete the relationship, then re-add.
put_registrants_relationships_by_id 2 params body → 200400401403404500
DELETE
/registrants/{registrantId}/relationships/{relationshipId}
delete_registrants_relationships_by_id 2 params → 204401403500
Registrant Website Tracking 1
POST
/registrants/{registrantId}/website-tracking/
post_registrants_website_tracking 1 param body → 200400401403404500
Registrant Appointments 6
GET
/registrants/{registrantId}/appointments
Retrieve a registrant's appointments
get_registrants_appointments 1 param → 200401403404500
POST
/registrants/{registrantId}/appointments
Create an appointment
post_registrants_appointments 1 param body → 201400401403404500
GET
/registrants/{registrantId}/appointments/{appointmentId}
Retrieve a single appointment
get_registrants_appointments_by_id 2 params → 200401403404500
PUT
/registrants/{registrantId}/appointments/{appointmentId}
Update an appointment
put_registrants_appointments_by_id 2 params body → 200400401403404500
DELETE
/registrants/{registrantId}/appointments/{appointmentId}
Delete an appointment
delete_registrants_appointments_by_id 2 params → 204401403500
POST
/registrants/{registrantId}/appointments/{appointmentId}/email-confirmations
Send email confirmations for an already existing appointment
post_registrants_appointments_email_confirmation 2 params body → 200400401403404500
Registrant Opted-Status 2
GET
/emails/{email}/opted-status/
Retrieve an opted status
get_registrants_opted_status_by_email 1 param → 200401403404500
PUT
/emails/{email}/opted-status/
Update an opted-status
put_registrants_opted_status_by_email 1 param body → 200400401403404500
Project 1
GET
/projects/settings
Retrieve a project's settings
get_project_settings → 200401403500
Project Appointments 1
GET
/projects/appointments
Retrieves a project's appointments
get_project_appointments 1 param → 200401403500
Inventory 8
GET
/inventory/search
Search inventories by strataLot and inventoryNumber.
get_inventory_search 2 params → 200400401403500
GET
/inventory
Returns a list of all inventories
get_inventory → 200401403500
POST
/inventory
Create an inventory
post_inventory_search body → 201400401403409500
GET
/inventory/{inventoryId}
Get a single inventory
get_inventory_by_id 1 param → 200401403404500
PUT
/inventory/{inventoryId}
Update an inventory
put_inventory 1 param body → 200400401403404409500
DELETE
/inventory/{inventoryId}
Delete an inventory
delete_inventory 1 param → 204401403409500
PUT
/inventory/{inventoryId}/sync
Sync an inventory
put_inventory_sync 1 param body → 200400401403404409500
POST
/inventory/{inventoryId}/reset
Reset an inventory items. Deletes all associated data with the inventory item, e.g. pricing information, options and upgrades, deposits, etc.
post_inventory_reset 1 param → 200400401403404500
Inventory Dates 2
GET
/inventory/{inventoryId}/dates
get_inventory_dates 1 param → 200401403404500
PUT
/inventory/{inventoryId}/dates
put_inventory_dates 1 param body → 200400401403404500
Inventory Pricing 2
GET
/inventory/{inventoryId}/pricing
get_inventory_pricing 1 param → 200401403404500
PUT
/inventory/{inventoryId}/pricing
put_inventory_pricing 1 param body → 200400401403404500
Inventory Purchasers 2
PUT
/inventory/{inventoryId}/purchasers
put_inventory_purchasers 1 param body → 200400401403404500
GET
/inventory/{inventoryId}/purchasers
get_inventory_purchasers 1 param → 200401403404500
Inventory Pricing Revisions 2
GET
/inventory/{inventoryId}/pricing-revisions
get_inventory_pricing_revisions 1 param → 200401403404500
POST
/inventory/{inventoryId}/pricing-revisions
post_inventory_pricing_revisions 1 param body → 201400401403404500
Inventory Plan Types 6
GET
/inventory/plans
Get the plan types associated with this project
get_inventory_plans → 200401403500
POST
/inventory/plans
Create a new plan type for this project
post_inventory_plans body → 201400401403500
GET
/inventory/plans/{planTypeId}
Get a plan type associated with this project
get_inventory_plans_by_plan_id 1 param → 200401403404500
PUT
/inventory/plans/{planTypeId}
Update a plan type associated with this project
put_inventory_plans_by_plan_id 1 param body → 200400401403404500
GET
/inventory/{inventoryId}/plans
Get the plan type associated with this inventory
get_inventory_plans_by_id 1 param → 200401403404500
PUT
/inventory/{inventoryId}/plans
Associate an inventory with a plan type by ID or by plan type. If both are provided, then lookup will be by ID
put_inventory_plans_by_id 1 param body → 200400401403404500

Schemas 88

The contract defines 88 schemas that model the data the API accepts and returns. The most detailed are InventoryFull (32 properties), InventorySync (27 properties), RegistrantWrite (23 properties), RegistrantRead (22 properties). Each schema is shown below with its type and property counts.

Registrant
object
12 properties
RegistrantRead
object
22 properties
RegistrantAccepted
object
3 properties
RegistrantCreateMessage
object
1 property
RegistrantLinks
object
2 properties
RegistrantPersonalInfo
object
10 properties 2 required
Project
object
2 properties
Rating
object
If rating does not exist, it will be created
1 property
SourceType
object
If the source type doesn't exist, it will be created
1 property
SecondarySourceType
object
If the secondary source type does not exist, it will be created
1 property
FollowUpProcess
object
If followUpProcessId is provided, the system will attempt to lookup the process by id, and fail if not found. If followUpProcessId is not provided, but followU…
2 properties
ExternalId
object
Integration externalId associated with a registrant in Lasso
1 property 1 required
EmailRead
object
5 properties
PhoneRead
object
4 properties
AddressRead
object
8 properties
SalesRep
object
4 properties
SalesRepWrite
object
When inputting a salesRep, you can provide a userId and the system will try to look up the salesRep by the ID. If no userId is provided but a first and last na…
4 properties
SalesRepRead
object
Describes a sales rep, typically assigned to a set of registrants.
4 properties
Question
object
Questions in Lasso are sorted into folders. You can use path to specify which folder the question should be saved to. Specifying the questionId will override n…
5 properties
Answers
object
Represents a collection of answers for a question
1 property
Answer
object
Represents an answer for a question for the registrant
2 properties
HistoryWithoutContent
object
History tracks communication with the registrant. Various types of history items are supported, e.g. emails, phone call or appointments. The content for histor…
6 properties
HistoryRead
object
7 properties
RegistrantNoteRead
object
Contains a free-form text field
4 properties
RegistrantNoteLinks
object
1 property
RegistrantRelationshipRead
object
Contains a registrant's relationships
6 properties
Creator
object
Determines the user that created this entity based on an ordered set of Heuristics: - if creator is null or empty, then default to user: Lasso Autobot - if use…
3 properties
EmailTemplateMetadata
object
Size conservative metadata representation of Email Template i.e. no content body
4 properties
AppointmentRegistrant
object
This model is a subset of RegistrantRead, which describes a minimal set of details of an appointment registrant. Use the GET /registrants/{registrantId} route…
8 properties
Appointment
object
Describes the basic details of a scheduled appointment. Limitations: Note that only the appointment's registrant as well as their assigned sales reps are descr…
8 properties
AppointmentEmailConfirmationRecipient
object
3 properties 1 required
AppointmentSmsReminderRecipient
object
2 properties
AppointmentRead
object
12 properties
AppointmentLinks
object
3 properties
StandardError
object
A standard error response format.
3 properties
RegistrantWebhookEvent
object
This format describes a webhook event that is fired off to an external system when an action is performed on a registrant. It is an envelope that wraps the Reg…
7 properties
RegistrantWrite
object
23 properties
ContactInformation
object
12 properties 2 required
EmailWrite
object
3 properties
Email
object
3 properties
PhoneWrite
object
3 properties
Phone
object
3 properties
AddressWrite
object
7 properties
Address
object
7 properties
HistoryWrite
object
7 properties
HistoryReadFull
object
8 properties
RegistrantNoteWrite
object
Contains a free-form text field. Limitations: 4-byte UTF-8 characters are not supported and will be stripped during write. This means that some emoticons and f…
3 properties
RegistrantRelationshipCreate
object
Data for creating a relationship
2 properties 1 required
RegistrantRelationshipUpdate
object
Data for updating a relationship
1 property
RegistrantWebsiteTrackingRequired
object
2 properties 2 required
AppointmentCreate
object
11 properties 3 required
AppointmentUpdate
object
10 properties 3 required
OptedStatusRepresentation
object
1 property
ProjectSettings
object
10 properties
ProjectWebsiteTracking
object
2 properties
ProjectRotation
object
2 properties
ProjectSourceType
object
2 properties
ProjectSecondarySourceType
object
2 properties
ProjectRating
object
2 properties
ProjectSalesRep
object
5 properties
ProjectAppointment
object
11 properties
ProjectAppointments
object
2 properties
Inventory
object
15 properties
InventoryCreate
object
18 properties 2 required
InventoryUpdate
object
17 properties
InventoryRead
object
20 properties
Component
object
2 properties
InventorySync
object
27 properties
InventorySalesRep
object
Describes a sales rep.
2 properties
InventoryFull
object
32 properties
PricingRevision
object
2 properties 2 required
Purchaser
object
6 properties 1 required
PurchaserCreate
object
3 properties 1 required
Note
object
3 properties 1 required
Dates
object
All dates are in the ISO 8601 UTC format, limited to year, month and day (YYYY-MM-DD). Will set all dates to blank if not provided.
9 properties
Pricing
object
Sets the pricing information for the inventory in Lasso. Setting all fields to 0 except the initialPrice allows you to specify an exact sales price.
6 properties 1 required
Storage
object
For all storage types, if no specific storage option is given (by setting uniqueId), the next unassigned storage option is associated to the inventory.
6 properties 1 required
ParkingStall
object
6 properties
StorageLocker
object
6 properties
BicycleLocker
object
6 properties
Deposit
object
5 properties 2 required
Realtor
object
15 properties 3 required
RealtorCompensation
object
2 properties
Option
object
6 properties 2 required
Subject
object
6 properties 3 required
PlanTypeRead
object
3 properties
PlanTypeWrite
object
2 properties 2 required
InventoryPlanTypeWrite
object
Associate an inventory with a plan type by ID or by plan type. If both are provided, then lookup will be by ID
2 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

eci-solutions-lasso-crm-openapi.yml Raw ↑

Other APIs ECI Solutions publishes across the network.

ECI Manufacturing ERP API
JobBOSS² Public API
M1 Public API
ECI MFG Integration Management API
ECI Authentication API
ECI MFG Payment API
ECI Financial Integration API
ECI EvolutionX Ecommerce API
ECI Einvoice API
ECI Shipping API
ECI Currency Data API
ECI AP/AR Commerce Automation API
Where this information came from

This is an independent, third-party profile of Lasso CRM API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.