# UCC Filing Leads – Just-Financed Businesses w/ Phone (Daily) (`deadwood_data_solutions/ucc-filing-leads`) Actor

Fresh + aged UCC filings from CT, CO and OR registries as classified B2B leads with stacking intelligence (prior filings & lenders), business age, registered agent and collateral — plus FMCSA-matched phone, email and fleet size for trucking debtors.

- **URL**: https://apify.com/deadwood\_data\_solutions/ucc-filing-leads.md
- **Developed by:** [K O](https://apify.com/deadwood_data_solutions) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## UCC Filing Leads – Just-Financed Businesses w/ Phone (Daily)

This actor tracks newly-financed businesses by monitoring UCC-1 financing statement filings from the Connecticut, Colorado and Oregon Secretary of State registries. It works as a UCC lien search and lead-generation feed, surfacing businesses that just took on equipment financing, an MCA/alt-lender advance, a bank or SBA loan, or a tax lien. Each output record is one filing enriched with FMCSA and state business-registry data: filing date, debtor legal name and street address, secured party (lender), lien/collateral type, prior-filing count and stacking status, business formation date and registered agent, and (for trucking debtors) phone, email and fleet size. Use it for UCC filing alerts, lender or broker prospecting, or a daily just-financed-business lead feed across CT, CO and OR.

### The enrichment pipeline

Every lead is assembled from up to five official registries:

1. **State UCC registry** (CT / CO / OR) — debtor name + full street address (100% fill), secured party, filing type, collateral (CO, ~80% fill). Originals only: every record is a *new* financing event.
2. **Lender classification** — `leadType` decoded from the secured party's name: `equipmentFinancing`, `mcaOrAltLender`, `confidentialRep` (filed via CSC / CT Corp / First Corporate Solutions "as representative" — the classic disguised-MCA pattern), `bankOrSba`, `taxLien` (incl. CO business IRS federal tax liens), `other`.
3. **Stacking intelligence** (CT + CO) — the debtor's **prior filing count, prior lender list, and last prior filing date**, straight from the registry archive. `isStacked = true` (2+ priors) is the single hottest MCA-consolidation / debt-relief signal. Live-verified: **46–48% of fresh debtors are stacked**.
4. **State business registry** (CO + OR) — formation date → **business age in years**, entity status/type, and the **registered agent's name** (a real person to ask for). ~69% match rate in CO.
5. **FMCSA motor-carrier census** — trucking-looking debtors (haulers, excavators, pavers…) matched to **USDOT number, business phone, email, fleet size, drivers**. 100% phone on matches in live tests. Optional `fmcsaMatchAll` tries every debtor. Optional NPI Registry match for medical debtors.

Real output record from a live run:

```json
{
  "filingDate": "2026-07-10",
  "leadType": "equipmentFinancing",
  "debtorName": "Dubs Trucking LLC",
  "debtorCity": "Denver",
  "securedParty": "Triangle Equipment Finance LLC",
  "businessFormedDate": "2026-02-18",
  "businessAgeYears": 0.4,
  "entityStatus": "Good Standing",
  "registeredAgent": "JOURDEN DEMOURA WADDLES",
  "priorFilingsCount": 0,
  "isStacked": false,
  "truckingMatch": true,
  "dotNumber": "8452444",
  "fleetSize": 2,
  "phone": "(303) 358-1094",
  "email": "dubstruckingllc@gmail.com"
}
```

A four-month-old trucking company that just financed equipment, with the owner-agent's name and a direct phone + email. Or the stacking view:

```json
{
  "debtorName": "KAISER LOCK & KEY SERVICE, INC.",
  "securedParty": "C T Corporation System, as representative",
  "priorFilingsCount": 5,
  "priorLenders": "Corporation Service Company, As Representative | Clark Security Products, Inc. | FC Marketplace, LLC",
  "isStacked": true
}
```

A serial MCA user taking on another position — a debt-consolidation buyer's first call of the day.

### Live-verified fill rates (2026-07-14, 820 records)

| Field | Fill |
|---|---|
| Debtor name, street, city, ZIP | 100% (all 3 states) |
| Secured party (lender) | 97–100% |
| Stacking fields (CT, CO) | 100% enriched; 46–48% `isStacked` |
| Business registry (CO) | 69% matched · agent 50% · avg age 9.7y |
| Business registry (OR) | matched by exact name |
| Collateral description (CO) | ~80% |
| Phone/email on FMCSA-matched trucking debtors | phone 100% · email ~90% |

Only registry-native contact data ships. Vendors selling "phone-appended" UCC lists append skip-trace data you can't legally redistribute; every field here is itself a public record.

### Volume

| Mode | What you get |
|---|---|
| Daily feed (`daysBack: 1–7`, scheduled) | ~400–600 fresh originals/day across CT+CO (+OR monthly batch) |
| Aged sweep (`daysBack: 90–365`) | Tens of thousands of classified, stacking-scored archive leads |

### Input

| Field | Type | Default | Notes |
|---|---|---|---|
| `states` | array | `["CT","CO","OR"]` | Which registries to scan |
| `daysBack` | integer | `7` | 1–365. Small = fresh feed; large = aged-lead archive sweep |
| `leadTypes` | array | `[]` (all) | e.g. `["mcaOrAltLender","confidentialRep"]` |
| `debtorKeyword` | string | — | Debtor name must contain this (e.g. `TRUCKING`) |
| `enrichStacking` | boolean | `true` | Prior filings + prior lenders + `isStacked` (CT, CO) |
| `enrichRegistry` | boolean | `true` | Business age, status, registered agent (CO, OR) |
| `enrichTrucking` | boolean | `true` | FMCSA phone/email/fleet for trucking-looking debtors |
| `fmcsaMatchAll` | boolean | `false` | Attempt FMCSA match on **every** debtor (slower) |
| `enrichMedical` | boolean | `false` | NPI Registry phone/specialty for medical debtors |
| `maxItems` | integer | — | Hard cap on records pushed |
| `onlyNewSinceLastRun` | boolean | `true` | Scheduled runs only return (and charge for) new filings |

Tip: set a free Socrata app token as the `SOCRATA_APP_TOKEN` environment variable for higher rate limits on big archive sweeps.

### Output record

`filingId`, `filingState`, `filingNumber`, `filingDate`, `lapseDate`, `filingType`, `leadType`, `debtorName`, `debtorStreet`, `debtorCity`, `debtorState`, `debtorZip`, `securedParty`, `securedPartyLocation`, `collateral`, `priorFilingsCount`, `priorLenders`, `lastPriorFilingDate`, `isStacked`, `businessFormedDate`, `businessAgeYears`, `entityStatus`, `entityType`, `registeredAgent`, `truckingMatch`, `dotNumber`, `fleetSize`, `drivers`, `phone`, `email`, `phoneSource`, `medicalMatch`, `npiNumber`, `specialty`, `saferUrl`, `filingImageUrl`, `source`.

### Pricing (Pay-Per-Event)

| Event | Price |
|---|---|
| `query` (per run) | $0.01 |
| `ucc-lead` (per record) | $0.02 |

500 classified, stacking-scored, registry-enriched filings ≈ **$10.01**. The same records cost $100–$375 from a list broker — without the stacking intelligence.

### Recipes

- **MCA consolidation feed:** `leadTypes: ["mcaOrAltLender","confidentialRep"]`, daily schedule, filter output `isStacked = true`.
- **Fresh-borrower trucking leads with phone:** filter `truckingMatch = true` — new equipment + direct phone + fleet size.
- **Young-business lender watch:** filter `businessAgeYears < 2` — newly formed companies taking first financing.
- **Equipment-refi prospecting:** `leadTypes: ["equipmentFinancing"]`, sort by `priorFilingsCount` — proven borrowers with equipment to refinance.
- **Tax-resolution prospecting:** `leadTypes: ["taxLien"]` — CT municipal/state liens + CO business IRS liens.
- **Aged-list building:** `daysBack: 365`, `maxItems: 50000` — archive-scale lists at 4–10% of broker prices.

### FAQ

**Is this legal to use and resell?** The filings are public records published by the states on their official open-data portals, specifically for public consumption. Phone/email come only from the FMCSA census and NPI Registry — federal public registries. No scraped or license-restricted contact data.

**Why only CT, CO and OR?** They're the only states publishing their complete UCC stream as machine-readable open data today. (California and Florida gate theirs behind anti-bot walls or paid subscriptions.) More will be added as states publish.

**Why is `phone` empty on most non-trucking records?** No state UCC registry publishes debtor phones. This Actor only ships contact data that is itself a public record — that's what makes it safe to build a business on.

**What does `confidentialRep` mean?** Funders (typically MCAs) file under a filing agent's name — "C T Corporation System, as representative" — to hide their portfolio from competitors. The disguise is itself a strong MCA signal, and the stacking fields show you the debtor's full financing history anyway.

**Compliance note:** you are responsible for complying with telemarketing rules (e.g. DNC) in your jurisdiction. This is public-record business data, not consumer credit data, and is not FCRA-regulated consumer information.

# Actor input Schema

## `states` (type: `array`):

Which state registries to scan: CT (daily), CO (daily), OR (rolling last month). Leave as-is for all three.

## `daysBack` (type: `integer`):

Only return filings accepted within the last N days (1–365). Use 1–7 for a fresh daily feed, 90–365 to build large aged-lead lists from the full archive.

## `leadTypes` (type: `array`):

Filter by classified filing type. Values: equipmentFinancing (lessors/equipment lenders), mcaOrAltLender (merchant cash advance / alternative lenders), confidentialRep (filed via a representative — typically confidential MCA), bankOrSba (banks, credit unions, SBA), taxLien (state/municipal tax liens), other.

## `debtorKeyword` (type: `string`):

Optional keyword the debtor business name must contain (e.g. TRUCKING, DENTAL, RESTAURANT). Applied server-side where possible.

## `enrichTrucking` (type: `boolean`):

Match trucking-looking debtors against the federal FMCSA motor-carrier census to add business phone, email, USDOT number and fleet size. Native public registry data — safe to store and resell.

## `enrichMedical` (type: `boolean`):

Match medical-looking debtors against the federal NPI Registry to add practice phone and specialty. Slower; off by default.

## `enrichStacking` (type: `boolean`):

For each lead, count the debtor's PRIOR filings and list their prior lenders (CT and CO). Debtors with 2+ prior filings are flagged isStacked — the highest-value signal for MCA consolidation and debt-relief outreach.

## `enrichRegistry` (type: `boolean`):

Match the debtor against the state business registry (CO, OR) to add formation date, business age in years, entity status/type and the registered agent's name.

## `fmcsaMatchAll` (type: `boolean`):

By default only trucking-looking debtors are matched against the FMCSA census. Turn this on to attempt the match on every debtor (slower; adds phones for carriers whose names don't look like trucking companies).

## `maxItems` (type: `integer`):

Stop after this many normalized leads have been pushed.

## `onlyNewSinceLastRun` (type: `boolean`):

Recommended for scheduled runs. Uses persisted state to skip filings already returned earlier, so a recurring schedule only charges for genuinely new filings.

## Actor input object example

```json
{
  "states": [
    "CT",
    "CO",
    "OR"
  ],
  "daysBack": 7,
  "leadTypes": [],
  "enrichTrucking": true,
  "enrichMedical": false,
  "enrichStacking": true,
  "enrichRegistry": true,
  "fmcsaMatchAll": false,
  "maxItems": 300,
  "onlyNewSinceLastRun": true
}
```

# Actor output Schema

## `results` (type: `string`):

All normalized records from this run as JSON.

## `resultsCsv` (type: `string`):

All normalized records from this run as CSV.

# 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 = {
    "states": [
        "CT",
        "CO",
        "OR"
    ],
    "leadTypes": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("deadwood_data_solutions/ucc-filing-leads").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 = {
    "states": [
        "CT",
        "CO",
        "OR",
    ],
    "leadTypes": [],
}

# Run the Actor and wait for it to finish
run = client.actor("deadwood_data_solutions/ucc-filing-leads").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 '{
  "states": [
    "CT",
    "CO",
    "OR"
  ],
  "leadTypes": []
}' |
apify call deadwood_data_solutions/ucc-filing-leads --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kqwwd5ZjxjMCCYY0q/builds/r9Q8iffGCvKU4Xmyk/openapi.json
