# SBA Loan Leads Scraper - 7(a) & 504 Borrowers & Lenders (`scrapesage/sba-loan-leads-scraper`) Actor

Scrape U.S. SBA 7(a) & 504 loan data: borrower name & address, NAICS industry, loan amount & date, lender/CDC, jobs, business age & status. Filter by state, industry, amount & date. B2B leads + lender intelligence + monitoring. Official SBA open data, no browser.

- **URL**: https://apify.com/scrapesage/sba-loan-leads-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$4.00 / 1,000 loan / borrower records

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

## SBA Loan Leads Scraper — 7(a) & 504 Borrowers, Lenders & Industries

Turn the U.S. Small Business Administration's official loan data into **ready-to-use B2B leads and lender intelligence**. This actor extracts every approved **SBA 7(a)** and **504** loan — the **borrower business name & full address**, the **industry (NAICS)**, the **loan amount & approval date**, the **lender or CDC**, **jobs supported**, **franchise**, **business age**, and **loan status** — and scores each one as a lead.

A business that just received an SBA loan is a **high-intent buyer**: it's financed, growing, and actively spending on equipment, software, insurance, marketing, real estate, and services. This is the cleanest way to find them.

No login, no API key, no browser — fast streaming extraction straight from **official SBA open data** (`data.sba.gov`), so it never breaks on anti-bot walls.

### Why this SBA scraper?

Most "SBA" lists are stale snapshots or thin exports. This actor reads the live SBA FOIA datasets and ships the **richest, most filterable record in the category**:

| Data | Typical lists | This actor |
|---|---|---|
| Borrower name + full street address | partial | ✅ |
| NAICS code **and** industry sector label | code only | ✅ |
| Gross approval, SBA-guaranteed amount & % | ❌ | ✅ |
| Approval date + first disbursement date | ❌ | ✅ |
| Lender bank (with FDIC #) / 504 CDC + third-party lender | ❌ | ✅ |
| Interest rate, type & term | ❌ | ✅ |
| Jobs supported | ❌ | ✅ |
| Business age (startup / new / existing) | ❌ | ✅ |
| Franchise name + flag | ❌ | ✅ |
| Loan status (normalized across programs) | raw codes | ✅ |
| Loan-size tier + **lead score (0–100)** | ❌ | ✅ |
| Filter by state, city, ZIP, county, NAICS, amount, date, lender… | ❌ | ✅ |
| Monitoring mode — only **new** loans since last run | ❌ | ✅ |

### Use cases

- **Lead generation** — find recently-financed small businesses by **state, city, industry, and loan size**. They're proven, growing buyers for equipment, POS/software, insurance, payroll, merchant services, commercial real estate, and B2B services. Sort by `leadScore` and work the freshest, biggest, most active first.
- **Lender & competitive intelligence** — track which **banks and CDCs** are originating loans, in which industries and states, at what volumes (`lenderNameQuery`, `program`, `naicsCodes`). Perfect for fintech, correspondent lenders, and capital markets teams.
- **Franchise development** — filter to `franchisesOnly` to see which franchise brands are expanding and where.
- **Market research & economic analysis** — analyze SBA lending by industry (NAICS), geography, business age, and time. Quantify small-business formation and capital flows.
- **CRM enrichment & territory planning** — pull borrower lists by ZIP/county to build call lists and size territories.
- **Monitoring new borrowers** — run on a schedule with **monitoring mode** to capture only loans added since your last run.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **SBA Loan Leads Scraper**, choose a **program**, a **fiscal-year range**, and any **filters** (state, industry, amount…), then click **Start**.
3. Watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, or XML — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "program": "7a",
    "fiscalYearFrom": 2024,
    "states": ["CA", "TX"],
    "naicsCodes": ["722"],
    "loanAmountMin": 100000,
    "businessAge": "startup",
    "loanStatuses": ["current", "paidInFull", "committed"],
    "maxResults": 1000,
    "sortNewestFirst": true,
    "monitorMode": false
}
```

- **program** — `7a` (flagship general business loan, recommended), `504` (real-estate/equipment via CDCs), or `both`.
- **fiscalYearFrom / fiscalYearTo** — the SBA fiscal-year window (data goes back to FY1991). Lower `fiscalYearFrom` pulls more history and downloads more source files; the default (2022) keeps runs fast and focused on fresh borrowers.
- **states / cities / zipCodes / counties** — location filters on the borrower (USPS state codes, exact city names, full-or-prefix ZIPs, project counties).
- **naicsCodes / industryKeywords** — industry filters: NAICS code prefixes (e.g. `722` = restaurants, `23` = construction) or keywords against the industry description (e.g. `dental`, `trucking`).
- **businessNameQuery / lenderNameQuery** — substring filters on the borrower or the lending bank/CDC.
- **loanAmountMin / loanAmountMax** — gross approval range (USD).
- **approvalDateFrom / approvalDateTo** — exact date window (`YYYY-MM-DD`), finer than fiscal year.
- **businessAge** — `startup`, `new` (≤2 yrs), `existing` (>2 yrs), or `changeOfOwnership`.
- **businessTypes** — corporation/LLC, individual, partnership.
- **loanStatuses** — normalized statuses (current, paidInFull, committed, chargedOff, cancelled, …). For active businesses, pick current / paidInFull / committed.
- **franchisesOnly** — only franchise borrowers.
- **minJobsSupported** — minimum jobs reported (a size proxy).
- **maxResults** *(default 1000)* — cap on returned records.
- **sortNewestFirst** *(default true)* — return the most recently approved loans first.
- **monitorMode / monitorKey** — emit only loans new since the last run; use a distinct key per saved watch.

### Output

One record per SBA loan (`recordType: "loan"`):

```json
{
    "recordType": "loan",
    "program": "7(a)",
    "subprogram": "Guaranty",
    "loanId": "80415",
    "borrowerName": "Ricker Pharmacy",
    "borrowerStreet": "1801 BIG HORN AVE",
    "borrowerCity": "Worland",
    "borrowerState": "WY",
    "borrowerZip": "82401",
    "borrowerAddressFull": "1801 BIG HORN AVE, Worland, WY 82401",
    "grossApproval": 890000,
    "sbaGuaranteedApproval": 667500,
    "sbaGuaranteedPct": 75,
    "loanSizeTier": "large ($500K–2M)",
    "approvalDate": "2026-03-26",
    "approvalFiscalYear": 2026,
    "firstDisbursementDate": null,
    "processingMethod": "Preferred Lenders Program",
    "initialInterestRate": 8.75,
    "interestRateType": "Variable",
    "termInMonths": 120,
    "termInYears": 10,
    "naicsCode": "456110",
    "naicsDescription": "Pharmacies and Drug Retailers",
    "naicsSectorCode": "45",
    "naicsSector": "Retail Trade",
    "franchiseName": "Good Neighbor Pharmacy",
    "isFranchise": true,
    "projectCounty": "Washakie",
    "projectState": "WY",
    "businessType": "CORPORATION",
    "businessAge": "Change of Ownership",
    "businessAgeCategory": "changeOfOwnership",
    "loanStatus": "committed",
    "loanStatusLabel": "Committed",
    "jobsSupported": 6,
    "lenderName": "First Financial Bank",
    "lenderType": "Lender / Bank",
    "lenderFdicNumber": "28905",
    "lenderCity": "El Dorado",
    "lenderState": "AR",
    "leadScore": 77,
    "asOfDate": "2026-03-31",
    "scrapedAt": "2026-06-20T02:26:51.063Z"
}
```

504 records add `cdc` (Certified Development Company) details plus `thirdPartyLenderName` / `thirdPartyLenderState` / `thirdPartyDollars` in place of the bank fields.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it weekly/monthly with **monitoring mode** to capture only newly-added borrowers as fresh leads.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/sba-loan-leads-scraper').call({
    program: '7a',
    fiscalYearFrom: 2024,
    states: ['CA'],
    naicsCodes: ['722'],
    maxResults: 1000,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} SBA loan leads`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new borrower leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored watch finds new loans.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find SBA-financed restaurants in California approved this year and list their lenders" and let it run this scraper for you.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **U.S. B2B & government-data lead stack**:

- **[US Business Formation Scraper](https://apify.com/scrapesage/us-business-formation-scraper)** — newly-registered LLCs & companies (fresh formation leads).
- **[SAM.gov Scraper](https://apify.com/scrapesage/sam-gov-scraper)** — federal contract opportunities & contacts.
- **[USAspending Scraper](https://apify.com/scrapesage/usaspending-scraper)** — federal awards, contractors & recipient leads.
- **[FMCSA Trucking Scraper](https://apify.com/scrapesage/fmcsa-trucking-scraper)** — motor carriers, authority & owner leads.
- **[US Federal Grants Scraper](https://apify.com/scrapesage/us-federal-grants-scraper)** — Grants.gov, NIH & NSF funding.
- **[FEC Campaign Finance Scraper](https://apify.com/scrapesage/fec-campaign-finance-scraper)** — donors, PACs & lobbying.
- **[TaxBuzz Scraper](https://apify.com/scrapesage/taxbuzz-scraper)** — tax preparers, CPAs & accountant leads.
- **[Financial Advisor Scraper](https://apify.com/scrapesage/financial-advisor-scraper)** — FINRA + SEC advisors & firms.

### Tips

- **Bigger history = bigger downloads.** Each fiscal-year bucket is a separate source file. Keep `fiscalYearFrom` recent (e.g. last 2–3 years) for the freshest leads and the fastest runs; widen it only when you need history.
- **Target an industry fast.** Use `naicsCodes` prefixes (`722` restaurants, `23` construction, `621` health care, `54` professional services) or `industryKeywords` for free-text matches.
- **Find active businesses.** Set `loanStatuses` to `current`, `paidInFull`, and `committed` to skip cancelled/charged-off loans, and sort by `leadScore`.
- **Track a lender.** Put a bank or CDC name in `lenderNameQuery` to watch a competitor's originations.
- **Recurring monitoring.** Combine [Schedules](https://docs.apify.com/platform/schedules) with `monitorMode` and a distinct `monitorKey` per saved watch (e.g. per state/industry).

### FAQ

**Where does the data come from?** The official SBA 7(a) & 504 FOIA datasets published on [data.sba.gov](https://data.sba.gov). It's public-record government data; this actor downloads, parses, filters, normalizes, and scores it.

**How fresh is it?** SBA refreshes these datasets periodically (roughly quarterly). Every record includes `asOfDate` so you always know the data vintage. Run with `monitorMode` on a schedule to capture newly-added loans automatically.

**Is there contact phone/email?** SBA loan records contain the borrower **business name and full mailing address**, industry, and loan details — not phone or email. That's the strongest possible *intent* signal (a financed, growing business) and is easy to enrich with a phone/email tool or your CRM.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**How much does a run cost?** You pay per loan record returned (no start fee). A run that scans the full dataset and returns a few hundred filtered leads costs only a few cents of platform compute plus the per-record price.

**Is this legal?** This actor collects publicly available U.S. government open data. You are responsible for using the data in compliance with applicable laws and SBA's terms.

**A field is null — why?** Some loans genuinely don't report a value (e.g. first-disbursement date for a just-committed loan, or franchise for a non-franchise). Fields are `null` only when the source doesn't provide them.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `program` (type: `string`):

Which SBA loan program(s) to pull. <b>7(a)</b> = the flagship general small-business loan (working capital, expansion, acquisition) — the biggest, broadest source of borrower leads. <b>504</b> = real-estate & heavy-equipment loans via Certified Development Companies (CDCs). <b>Both</b> downloads and merges the two (larger run).

## `fiscalYearFrom` (type: `integer`):

Earliest SBA fiscal year to include (a loan's fiscal year is the federal FY of its approval date). Lower values pull older history and download more source files. SBA data goes back to FY1991. Default 2022 keeps runs fast and focused on fresh, recently-financed businesses.

## `fiscalYearTo` (type: `integer`):

Latest SBA fiscal year to include. Leave blank for the most recent available year.

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

Filter by borrower state — two-letter USPS codes, e.g. <code>CA</code>, <code>TX</code>, <code>NY</code>, <code>FL</code>. Leave empty for all states & territories.

## `cities` (type: `array`):

Filter by borrower city (case-insensitive, exact city name), e.g. <code>Los Angeles</code>, <code>Austin</code>.

## `zipCodes` (type: `array`):

Filter by borrower ZIP — full ZIP (<code>90012</code>) or a prefix (<code>900</code> matches all 900xx). The 5-digit ZIP is used for matching.

## `counties` (type: `array`):

Filter by the project county (case-insensitive), e.g. <code>Los Angeles</code>, <code>Cook</code>, <code>Harris</code>.

## `naicsCodes` (type: `array`):

Filter by industry NAICS code — full 6-digit code or a prefix. e.g. <code>722</code> = restaurants & food services, <code>23</code> = construction, <code>621</code> = ambulatory health care, <code>54</code> = professional services.

## `industryKeywords` (type: `array`):

Filter by keywords matched against the NAICS industry description (case-insensitive, any match), e.g. <code>restaurant</code>, <code>dental</code>, <code>trucking</code>, <code>landscaping</code>, <code>salon</code>.

## `businessNameQuery` (type: `string`):

Only return borrowers whose business name contains this text (case-insensitive).

## `lenderNameQuery` (type: `string`):

Only return loans whose lending bank (7a) or CDC (504) name contains this text — great for tracking a specific lender's originations.

## `loanAmountMin` (type: `integer`):

Minimum gross approval amount in USD.

## `loanAmountMax` (type: `integer`):

Maximum gross approval amount in USD.

## `approvalDateFrom` (type: `string`):

Only loans approved on or after this date, <code>YYYY-MM-DD</code>. Finer than fiscal year. Note: the actor still only downloads the fiscal-year files selected above.

## `approvalDateTo` (type: `string`):

Only loans approved on or before this date, <code>YYYY-MM-DD</code>.

## `businessAge` (type: `string`):

Filter by the borrower's business age at approval. <b>Startups</b> and <b>new businesses</b> are high-intent (just launched, actively buying); <b>existing</b> businesses are more established.

## `businessTypes` (type: `array`):

Filter by legal entity type of the borrower.

## `loanStatuses` (type: `array`):

Filter by current loan status (normalized across both programs). For active, operating businesses pick <b>Current</b>, <b>Paid in full</b> and <b>Committed</b>. Leave empty for all.

## `franchisesOnly` (type: `boolean`):

Only return loans to franchise businesses (a franchise name/code is present).

## `minJobsSupported` (type: `integer`):

Only loans reporting at least this many jobs supported — a useful proxy for business size.

## `maxResults` (type: `integer`):

Maximum number of loan records to return in this run.

## `sortNewestFirst` (type: `boolean`):

Return the most recently approved loans first (best for fresh leads). When off, records stream in source order and the run can finish faster on very large limits.

## `deduplicateResults` (type: `boolean`):

Skip duplicate loan records within this run (recommended).

## `monitorMode` (type: `boolean`):

Remember which loans were already returned (in a named key-value store) and emit ONLY loans that are new since the last run — each tagged <code>monitorEvent: "new"</code>. SBA refreshes this data periodically; run on a Schedule to capture newly-approved borrowers as fresh leads. Works alongside Apify Schedules (the schedule starts the run; monitoring decides what's new).

## `monitorKey` (type: `string`):

Names the memory used by monitoring mode. Use a distinct key per saved watch (e.g. per state/industry) so different monitors don't share state.

## `proxyConfiguration` (type: `object`):

Optional proxy. SBA open data is downloaded directly and needs no proxy — leave this off for the fastest downloads. Enable Apify Proxy only if your network requires it.

## Actor input object example

```json
{
  "program": "7a",
  "fiscalYearFrom": 2022,
  "states": [
    "CA"
  ],
  "businessAge": "any",
  "franchisesOnly": false,
  "maxResults": 1000,
  "sortNewestFirst": true,
  "deduplicateResults": true,
  "monitorMode": false,
  "monitorKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All scraped SBA loan / borrower records as JSON items 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 = {
    "states": [
        "CA"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/sba-loan-leads-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 = {
    "states": ["CA"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/sba-loan-leads-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 '{
  "states": [
    "CA"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scrapesage/sba-loan-leads-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3mLT9IN8WTDqxgZrk/builds/gyQWCGTYPcrbl0iEW/openapi.json
