# California UCC Lien Search - Debtors & Secured Parties (`regdata/california-ucc-lien-scraper`) Actor

Search the California Secretary of State UCC filing index (bizfileOnline) by debtor or secured-party name. Get filing number, UCC type, status, filing & lapse dates, debtors and secured parties. No API key needed.

- **URL**: https://apify.com/regdata/california-ucc-lien-scraper.md
- **Developed by:** [getregdata](https://apify.com/regdata) (community)
- **Categories:** Lead generation, Automation, Agents
- **Stats:** 7 total users, 5 monthly users, 99.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $35.00 / 1,000 ucc search sessions

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## California UCC Lien Search - Debtors, Secured Parties & Collateral

Search the official **California Secretary of State UCC filing index** (**bizfileOnline**) by debtor or secured-party name, as structured JSON: file number, UCC type, status, filing date, lapse date, and all debtors and secured parties. There is no open public API for the California UCC index, and other tools make you register for and supply your own key - this actor is the API, and **you don't bring your own key**.

**No login, no API key, nothing to configure** - a name in, every matching UCC filing out.

A UCC-1 financing statement is how a lender publicly stakes a claim on a business's assets. A live UCC filing tells you a company already has **secured debt** against its equipment, inventory, or receivables - an essential signal for **credit risk, KYB, collateral, and M\&A due diligence**.

### What data do you get?

One record per UCC filing:

```json
{
  "filingNumber": "U220205120011",
  "uccType": "UCC",
  "status": "Active",
  "filingDate": "06/24/2022",
  "lapseDate": "06/24/2027",
  "debtors": ["CHASE DELANO, LP - GLENDALE, CA"],
  "securedParties": ["IN-N-OUT BURGERS - BALDWIN PARK, CA"],
  "jurisdiction": "California, USA",
  "source": "California SoS UCC filings (bizfileonline.sos.ca.gov)",
  "sourceUrl": "https://bizfileonline.sos.ca.gov/search/ucc",
  "searchQuery": "IN-N-OUT BURGERS",
  "scrapedAt": "2026-07-02T00:00:00.000Z"
}
```

`debtors` and `securedParties` are arrays because a single UCC filing can name several of each (the actor also provides joined `debtor` / `securedParty` values for easy table display).

### How much does it cost?

**Pay per result** - you are not charged for Apify platform usage, only per filing. See the **Pricing** tab on this page for the current figure. The free Apify plan returns a small preview; upgrade for full, uncapped results. No subscription, no minimum.

### Is it legal, and where does the data come from?

Data comes from the official **California Secretary of State bizfileOnline UCC index** at [bizfileonline.sos.ca.gov/search/ucc](https://bizfileonline.sos.ca.gov/search/ucc). California UCC filings are a **public record open to anyone**; this actor reads the open public search and does not log in or bypass any paywall. Scraping public US filings is well-established (public records; post-*Van Buren* / *hiQ v. LinkedIn*). Use the data lawfully for KYB / credit-risk / collateral due diligence - this is **not a consumer report**, so do not use it for FCRA-governed decisions.

### How do I use it?

Click **Try it** and search by a debtor (or secured-party) name:

```json
{ "searchQueries": ["IN-N-OUT BURGERS"] }
```

Screen several counterparties, keeping only active liens (`{ "searchQueries": ["Acme Trucking LLC", "Sunrise Farms Inc"], "activeOnly": true }`). The search is a contains-match across **both** debtor and secured-party names - use a full, specific name.

### Input options

| Field | Type | Description |
|------|------|-------------|
| `searchQueries` | array | Debtor or secured-party names. Contains-match across both. A term matching more than 1,000 filings is rejected by the registry. |
| `activeOnly` | boolean | Keep only `Active` filings (drop Lapsed / terminated). Default `false`. |
| `filedFrom` / `filedTo` | string | Keep only filings in this date window (`YYYY-MM-DD`). |
| `maxResultsPerQuery` | integer | Cap per query after filtering (default `50`; `0` = no limit, up to the registry's 1,000 cap). |

### Pairs with the company scraper (the full due-diligence flow)

This actor is the **secured-debt check** half of a KYB workflow. Chain it with the **identity** half:

1. **[California SoS Business Scraper](https://apify.com/regdata/california-sos-business-scraper)** - confirm the entity exists, its status, standing, and registered agent.
2. **This actor** - screen the same business name against California's UCC lien filings for existing secured debt.

The same source -> screen pattern powers the whole suite (source the party with a registry/UBO actor, then check it with a debtor/lien screen).

### What you can do with it

- **Credit risk & lending** - see whether a business already has secured debt before extending credit, and find the incumbent lenders.
- **KYB / due diligence** - screen a counterparty (or officers/UBOs surfaced by the other actors) against California's secured-debt filings.
- **Collateral & M\&A** - identify liens on a target's assets and who holds them.
- **Lender & MCA lead generation** - find businesses taking on secured financing, and the secured parties competing for them.

### Run it from code

```bash
## cURL - start a run and get the dataset back
curl -X POST "https://api.apify.com/v2/acts/regdata~california-ucc-lien-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "searchQueries": ["IN-N-OUT BURGERS"] }'
```

```javascript
// Node.js - apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('regdata/california-ucc-lien-scraper').call({ searchQueries: ['IN-N-OUT BURGERS'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

```python
## Python - apify-client
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("regdata/california-ucc-lien-scraper").call(run_input={"searchQueries": ["IN-N-OUT BURGERS"]})
items = client.dataset(run["defaultDatasetId"]).list_items().items
```

### Integrations

Runs anywhere Apify does: call it from the **REST API**, **schedule** recurring lien checks, pipe results into **n8n / Make / Zapier**, or use it from any **MCP client** (Claude, Cursor) via [mcp.apify.com](https://mcp.apify.com).

### FAQ

**Is it legal?** Yes. California UCC filings are a public record open to anyone. This actor reads the open public search only. It is not a consumer report - do not use it for FCRA-governed decisions.

**Do I need a state API key, an account, or a proxy?** No - none of them. Unlike other UCC tools, you never register for or supply a state key. Just an Apify account.

**Why was my search rejected?** The registry caps a search at 1,000 matches; a term that is too broad is reported back so you can refine it with a fuller debtor name. Note what this is **not**: "too many filings to return" is the opposite of "no filings", and the run never reports one as the other.

**What does "no matching filings" mean?** That the registry was searched and the debtor has no UCC filings against it - a clean collateral check. It means that **and nothing else**. If the registry cannot be reached, the run **fails** (non-zero exit) and says the result must not be read as "no liens"; the terms it could not search are written to an `UNVERIFIED` key-value record and are not charged. And if you narrowed the search with `activeOnly` or a filed-date range, a zero says so explicitly - the debtor may still have filings outside your filters. On a secured-lien check, a false all-clear costs real money, so the Actor will not give you one.

**Does one filing have multiple debtors/secured parties?** Yes - `debtors` and `securedParties` are arrays because a UCC filing can name several of each.

**What export formats are supported?** JSON, CSV, Excel, or XML, or read live via the API.

### Related actors

Part of a suite of official government registry actors - **no public API to build or maintain**, pay per result, nothing to configure.

| Country | Actors |
|---|---|
| Poland | [BDO](https://apify.com/regdata/bdo-waste-registry-scraper) · [CRBR](https://apify.com/regdata/crbr-beneficial-owners-scraper) · [KRS (financials)](https://apify.com/regdata/poland-krs-financial-scraper) · [EKW](https://apify.com/regdata/ekw-ksiegi-wieczyste-scraper) · [KNF](https://apify.com/regdata/knf-registry-scraper) · [KRS (board)](https://apify.com/regdata/krs-fullnames-scraper) · [KRZ](https://apify.com/regdata/krz-debtor-scraper) · [MSiG](https://apify.com/regdata/msig-scraper) · [KYB check](https://apify.com/regdata/poland-kyb-check) · [PEP (Sejm)](https://apify.com/regdata/poland-parliamentary-pep-scraper) · [REGON (sites)](https://apify.com/regdata/polish-premises-prospector) · [REGON](https://apify.com/regdata/polish-regon-scraper) · [UOKiK](https://apify.com/regdata/uokik-clauses-scraper) |
| Germany | [Insolvenzbekanntmachungen](https://apify.com/regdata/germany-insolvency-scraper) · [Handelsregister](https://apify.com/regdata/germany-handelsregister-scraper) |
| Spain | [BORME](https://apify.com/regdata/borme-corporate-acts-scraper) · [Registro Mercantil](https://apify.com/regdata/spain-company-directory-scraper) · [Registro Público Concursal](https://apify.com/regdata/spain-concursal-scraper) |
| Italy | [INI-PEC](https://apify.com/regdata/italy-pec-lookup) · [Registro Imprese](https://apify.com/regdata/italy-registro-imprese-scraper) |
| Austria | [Ediktsdatei](https://apify.com/regdata/austria-ediktsdatei-scraper) · [WKO](https://apify.com/regdata/wko-business-directory-scraper) |
| France | [Societe.com](https://apify.com/regdata/societe-com-scraper) |
| Belgium | [KBO / BCE](https://apify.com/regdata/belgium-kbo-company-scraper) |
| Czechia | [ISIR](https://apify.com/regdata/czech-isir-insolvency-scraper) |
| Slovakia | [RPVS](https://apify.com/regdata/slovakia-rpvs-ubo-scraper) |
| Cyprus | [DRCOR](https://apify.com/regdata/cyprus-drcor-company-scraper) |
| Ireland | [CRO](https://apify.com/regdata/ireland-cro-company-scraper) |
| Portugal | [Publicações MJ](https://apify.com/regdata/portugal-corporate-acts-scraper) |
| Nigeria | [CAC](https://apify.com/regdata/nigeria-cac-company-scraper) |
| Colombia | [RUES](https://apify.com/regdata/colombia-rues-company-scraper) |
| USA | [California SoS](https://apify.com/regdata/california-sos-business-scraper) · **California UCC (this actor)** |
| UAE | [ADGM](https://apify.com/regdata/uae-adgm-public-register-scraper) |
| Global | [Adverse media](https://apify.com/regdata/adverse-media-screener) |

**Common combinations:** company register -> [UBO](https://apify.com/regdata/crbr-beneficial-owners-scraper) -> [insolvency/debtors](https://apify.com/regdata/krz-debtor-scraper) -> [adverse media](https://apify.com/regdata/adverse-media-screener) is the standard KYB/onboarding chain.

For Poland that whole chain is one call: [Poland KYB Risk Check](https://apify.com/regdata/poland-kyb-check) takes a NIP or KRS and returns identity, beneficial owners and insolvency - screened against the company **and every beneficial owner** - as a single verdict. The component registry lookups it runs bill as usual, plus a small orchestration fee.

> Full suite: [apify.com/regdata](https://apify.com/regdata) · Callable from any MCP client via [mcp.apify.com](https://mcp.apify.com)

# Actor input Schema

## `searchQueries` (type: `array`):

Debtor or secured-party names to look up in the California SoS UCC filing index. The search is a contains-match across both debtor and secured-party names. Use a full, specific name - a term matching more than 1,000 filings is rejected by the registry.

## `activeOnly` (type: `boolean`):

Keep only filings whose status is Active (drop Lapsed / terminated filings).

## `filedFrom` (type: `string`):

Keep only filings on or after this date (YYYY-MM-DD).

## `filedTo` (type: `string`):

Keep only filings on or before this date (YYYY-MM-DD).

## `maxResultsPerQuery` (type: `integer`):

Maximum number of filings to keep per query after filtering (default 50 to avoid surprise charges on broad searches). Set 0 for no limit (all matches, up to the registry's 1,000 cap).

## Actor input object example

```json
{
  "searchQueries": [
    "Acme Trucking LLC",
    "Sunrise Farms Inc"
  ],
  "activeOnly": false,
  "maxResultsPerQuery": 50
}
```

# Actor output Schema

## `filings` (type: `string`):

CA SoS UCC filing records in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "IN-N-OUT BURGERS"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("regdata/california-ucc-lien-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchQueries": ["IN-N-OUT BURGERS"] }

# Run the Actor and wait for it to finish
run = client.actor("regdata/california-ucc-lien-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "IN-N-OUT BURGERS"
  ]
}' |
apify call regdata/california-ucc-lien-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=regdata/california-ucc-lien-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/6H30iAyeKzzTcjQcE/builds/q8ZFbI0vbFwr6J2AR/openapi.json
