Lien Search: Basics

How Baselayer's Lien Search product works: coverage, response structure, and how to get started.

This guide covers how Baselayer's Lien Search product works: what it searches, how results are returned, and what the response contains.

For background on lien types, UCC filings, and key terminology, see Liens, Judgments, and Public Records before reading this guide.

For step-by-step API implementation, see Lien Search: API Quickstart.


1. What Baselayer Searches

A Baselayer lien search retrieves public lien filings from Secretary of State (SoS) registries across the United States.

Baselayer returns:

  • UCC filings (UCC-1, UCC-3, UCC-5)
  • Federal tax liens (IRS)
  • State tax liens
  • County and municipal tax liens
  • Judgment liens (where available)
  • Associated lien documents (PDFs), where available by state

Coverage and refresh rates vary by state. Contact your Baselayer representative for the current coverage map and data freshness details for states relevant to your use case.


2. Execution Mode

Lien searches support both synchronous and asynchronous execution, controlled via the Prefer header or your API key's default mode. For full details, see Synchronous & Asynchronous Request Execution.

Lien-specific webhook events emitted during async execution:

EventWhen it fires
LiensSearch.submittedSearch has been accepted and is in progress
LiensSearch.completedResults are ready for retrieval
LiensSearch.failedSearch has failed to execute

3. State Coverage Model

Lien filings follow the debtor's state of formation under UCC rules. This means the domestic state - the state where the business is incorporated or formed - is where UCC liens are perfected and effective.

By default, Baselayer searches only the domestic state. Omitting search_states from the request is the recommended approach for most customers.

Every state searched incurs a direct data cost. Searching all foreign-registered states without reason adds unnecessary spend without meaningfully improving lien coverage.

When to add additional states:

  • The business is incorporated in one state but operates primarily in another — in this case, search both the incorporation state and the state of the business's submitted address.
  • Collateral is physically located in a specific non-domestic state (common in equipment financing or inventory-backed lending).
  • The product or customer base requires a more thorough analysis including lien searches in all registered states.
  • The product involves non-standard asset classes tied to a specific geography.

Note: Tax liens may occasionally appear in foreign-registered states when the business has tax obligations there - for example, sales tax, payroll tax, or franchise tax. These are typically smaller and lower risk than domestic tax liens, unless the business's primary operations are outside its domestic state.

Why searching all 50 states is never the right choice

A business name is not a unique identifier at the national level. The same name can belong to entirely unrelated, independently incorporated companies across different states.

Searching all 50 states expands the pool of unrelated businesses whose filings will appear in your results, creating false positives that require manual review to dismiss. The domestic state (and, when warranted, additional foreign states with a specific rationale) is always the right scope. Broader is not better here.


4. Three Ways to Initiate a Lien Search

Baselayer supports three request types for POST /lien_searches, depending on what identifiers you have available:

Option 1: Using a business_id

Use a business_id from a previous Baselayer Business Search. The search targets the business's domestic state unless search_states is provided.

Option 2: Using a business_search_id with optional additional_search_entities

Use the id returned directly from a Business Search response. This variant also supports additional_search_entities, which allows you to search for linked individuals (officers, guarantors, beneficial owners) or alternate business names in the same API call.

This is the most powerful request type and the recommended approach when you need lien coverage beyond the primary business entity.

Option 3: Using a person_id

Use a person_id from a previous Baselayer person record. When using this option, search_states is required. This is covered in detail in Lien Search for Individuals.


5. Response Structure

The primary content of the API response is the filings array: one object per lien filing found.

Top-level response fields:

FieldTypeDescription
idUUIDUnique identifier of the lien search request
statestringCurrent state of the request (PENDING, COMPLETED, FAILED)
search_entitiesarrayThe entities searched - see Section 5.1
filingsarrayList of lien filing objects - see Section 5.2
searched_statesarrayStates included in the search
business_idUUID | nullBusiness associated with the search, if applicable
person_idUUID | nullPerson associated with the search, if applicable
business_search_idUUID | nullBusiness search ID used to initiate the request, if applicable
last_updated_atdateDate the result was last refreshed
errorstring | nullError message if the search failed

5.1 Search Entities

The search_entities array lists every entity included in the search, the primary business and any additional entities submitted via additional_search_entities. Each entry includes:

FieldDescription
nameName of the entity as submitted
normalized_nameName as normalized by Baselayer for matching against registry records
type"Business" or "Person"
search_statesStates searched for this entity

The normalized_name is the name Baselayer actually used when querying each state's registry. Reviewing it helps understand which name variants were matched, particularly for businesses with abbreviations, punctuation, or common alternate forms.


5.2 Filing Object Fields

Each object in the filings array represents a single lien filing.

FieldDescription
idUnique identifier of the filing; used for document retrieval
stateUS state where the lien was filed
filing_numberUnique identifier in the state's SoS registry
filing_typeNormalized filing classification - see Section 5.3
filing_dateDate the security interest was officially recorded
lapse_dateDate the filing expires if not continued (typically 5 years from filing_date)
statusCurrent status as returned by the state registry (e.g. active, terminated, lapsed)
number_of_pagesNumber of pages in the associated document, if available
document_filenameNon-null if a lien document PDF is available for download
partiesList of parties associated with the filing - see Section 5.4
amendmentsChronological list of amendment filings against this record - see Section 5.5
collateral_statementsTextual descriptions of the assets covered by the lien - see Section 5.6
match_levelHow closely this filing matched the searched entity name - see Section 5.7
search_entity_nameName of the entity this filing was matched against
search_entity_typeType of the matched entity: "Business" or "Person"
last_updated_atDate this filing record was last refreshed

5.3 Filing Type (filing_type)

The filing_type field is Baselayer's normalized classification of each lien filing. It is consistent across all states and is the field to use for programmatic classification logic.

Consensual liens (created by agreement between lender and borrower):

ValueDescription
consensual.uccStandard UCC financing statement
consensual.ucc_public_financeUCC filing related to public sector financing
consensual.ucc_manufactured_homeUCC filing for manufactured home collateral
consensual.ucc_transmitting_utilityUCC filing for transmitting utility collateral
consensual.otherOther consensual lien type

Statutory liens (created by operation of law):

ValueDescription
statutory.hospital_medicalMedical or hospital lien
statutory.agriculturalAgricultural lien
statutory.otherOther statutory lien

Judicial liens (arising from court proceedings):

ValueDescription
judicial.judgmentCourt judgment lien
judicial.attachmentPre-judgment attachment lien
judicial.executionLien arising from execution of a judgment
judicial.otherOther judicial lien

Tax liens (filed by government authorities):

ValueDescription
tax.federal_irsIRS federal tax lien
tax.federal_estateFederal estate tax lien
tax.federal_otherOther federal tax lien
tax.state_unemploymentState unemployment tax lien
tax.state_income_sales_franchiseState income, sales, or franchise tax lien
tax.state_otherOther state tax lien
tax.local_property_taxLocal property tax lien
tax.local_otherOther local/municipal tax lien
tax.otherOther tax lien

Detecting tax liens: Any filing where filing_type starts with tax. is a government-originated tax lien. No keyword matching on raw registry strings is required.

Detecting judicial liens: Any filing where filing_type starts with judicial. results from a court proceeding.


5.4 Parties

The parties array lists all parties associated with a filing. Each party includes:

FieldDescription
idUnique identifier of the party record
role"Debtor", "Secured Party", or "Record Owner"
nameName of the party
addressFull address of the party, including geocoordinates where available

5.5 Amendments

The amendments array contains a chronological record of all follow-on filings made against the original lien. Each amendment includes:

FieldDescription
filing_numberThe amendment's unique identifier in the state registry
filing_typeType of amendment — see enum table below
filing_dateDate the amendment was filed
number_of_pagesNumber of pages in the amendment document

Amendment filing_type values:

ValueDescription
terminationLien formally ended - debt satisfied or security interest released by the secured party
continuationLien perfection extended beyond its original lapse date - secured party is actively maintaining the filing
assignmentSecurity interest transferred to a new secured party - common when loans are sold or refinanced
debtor_amendment.addA debtor was added to the filing
debtor_amendment.removeA debtor was removed from the filing
debtor_amendment.updateDebtor information was updated (name, address, or entity type)
secured_party_amendment.addA secured party was added to the filing
secured_party_amendment.removeA secured party was removed from the filing
secured_party_amendment.updateSecured party information was updated
collateral_amendment.addAdditional collateral was added to the filing
collateral_amendment.removeCollateral was removed from the filing - reduces the scope of the lien
collateral_amendment.updateCollateral description was modified
informationalInformational statement only - no change to lien status or terms
unspecifiedAmendment type not specified by the state registry

Reading the amendments array gives you the full lifecycle of a lien. A continuation confirms the secured party is actively maintaining the filing. A termination resolves the lien regardless of the top-level status field. collateral_amendment.remove or collateral_amendment.update entries may indicate restructuring or partial release of pledged assets and are worth reviewing in larger-ticket underwriting.


5.6 Collateral Statements

The collateral_statements array contains textual descriptions of the assets covered by the lien, exactly as recorded in the state registry. Each entry includes:

FieldDescription
textCollateral description as filed (e.g. "All assets", "2022 Blue Honda Civic", "Accounts receivable")
sort_orderDisplay order when multiple collateral statements are present

Collateral statements are particularly useful for determining the scope of a lien. A broad "all assets" description indicates a blanket lien; specific descriptions (equipment, vehicles, inventory) indicate a narrower security interest limited to particular asset categories.


5.7 Match Level

The match_level field indicates how closely the filing's debtor name matched the searched entity name. Possible values are EXACT, SIMILAR, and NO_MATCH. Baselayer applies a strict matching process, so all returned filings will carry an EXACT or SIMILAR match level.


5.8 Document Availability

PDF documents are available for many filings at no additional cost, subject to state availability and filing date.

To check availability: inspect document_filename on any filing object. A non-null value indicates a document is available.

To retrieve the document:

GET /lien_searches/{liens_search_request_id}/filings/{filing_id}

This returns a consolidated PDF of all documents associated with that filing. Not all states provide documents digitally; availability of historical filings (particularly pre-2010) varies.


6. Where to Go Next