PPP Loan Data Scraper - Small Business Leads & Firmographics avatar

PPP Loan Data Scraper - Small Business Leads & Firmographics

Pricing

from $2.75 / 1,000 ppp loan / business records

Go to Apify Store
PPP Loan Data Scraper - Small Business Leads & Firmographics

PPP Loan Data Scraper - Small Business Leads & Firmographics

Scrape U.S. SBA PPP loan data: business name and address, NAICS industry, loan and forgiveness amounts, jobs, lender, and woman, veteran and minority ownership. Filter by state, industry and size for B2B leads. Independent tool, not affiliated with any government agency.

Pricing

from $2.75 / 1,000 ppp loan / business records

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

PPP Loan Data Scraper: Small Business Leads, Firmographics & Lenders

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the U.S. Small Business Administration (SBA) or any government body. All trademarks mentioned are the property of their respective owners. "PPP loan data" is referenced only to describe the public data source this Actor collects from.

Turn the U.S. government's Paycheck Protection Program (PPP) loan data into a filterable U.S. small-business database: 11.5 million PPP loans with the business name and full street address, the NAICS industry code and its official industry title, loan and forgiveness amounts, jobs reported (an employee-count proxy), an estimated annual payroll, the lender, and owner demographics (woman-, veteran-, minority- and Hispanic-owned, non-profit).

Slice it by state, city, ZIP, county, industry, company size, loan amount and owner demographics. That is segmentation a map-listing scraper cannot give you.

No login, no API key, no browser: the actor reads the official SBA PPP FOIA files on data.sba.gov directly. Those files are sorted by state, so when you pick states the actor downloads only the part of the files that holds them, and a one-state search usually finishes in seconds.

What you get

DataFields
The business (your lead)borrowerName, borrowerStreet, borrowerCity, borrowerState, borrowerZip, borrowerZip5, borrowerAddressFull
IndustrynaicsCode, naicsTitle (official Census title, for example "Full-Service Restaurants"), naicsSectorCode, naicsSector
Company sizejobsReported, estimatedAnnualPayroll, loanSizeTier
LoanloanAmount, initialApprovalAmount, currentApprovalAmount, undisbursedAmount, approvalDate, drawType (First or Second Draw), termInMonths, loanStatus, loanStatusLabel, loanStatusDate, loanNumber
ForgivenessisForgiven, forgivenessAmount, forgivenessDate, forgivenessPct
Business profilebusinessType, businessAge, businessAgeCategory, isFranchise, franchiseName, nonProfit
Owner demographicsownerGender, ownerRace, ownerEthnicity, veteranStatus, isWomanOwned, isVeteranOwned, isMinorityOwned, isHispanicOwned
Location flagsruralUrban, isHubzone, isLowToModerateIncomeArea, congressionalDistrict, projectCity, projectCounty, projectState, projectZip
Use of the loanproceeds (payroll, rent, utilities, mortgage interest, health care, debt interest, EIDL refinance), proceedsUsedFor
LendersoriginatingLender with city, state and location ID; servicingLenderName with street address, city, state, ZIP and location ID
ScoringleadScore (0 to 100: size, survival and contactability signals)

Good to know about the fields

  • franchiseName is filled only when SBA recorded a franchise brand, which is a small share of loans. Turn on franchisesOnly to get only franchise businesses; the Franchise businesses view then shows the brand beside each one.
  • Owner demographics were optional on the loan application, so most loans read "Unanswered". The isWomanOwned, isVeteranOwned, isMinorityOwned and isHispanicOwned flags are true only when the owner reported it.
  • Forgiveness fields are empty for loans that were not forgiven.
  • estimatedAnnualPayroll comes from the PPP sizing rule: a loan was 2.5 times the borrower's average monthly payroll (3.5 times for Second Draw loans to restaurants and hotels, NAICS 72), plus any EIDL loan being refinanced. So the estimate is the loan, minus the refinanced EIDL, divided by that multiple, times 12. It is a floor for loans at the program caps ($10 million First Draw, $2 million Second Draw), and for self-employed borrowers it reflects owner income rather than staff payroll.
  • naicsTitle is the official title of the exact NAICS code (2017 edition, with the older codes still present in SBA's file mapped too). It is empty when SBA recorded no NAICS code, and for a few hundred loans that carry an obsolete pre-2012 code.
  • loanStatus in SBA's current release is paidInFull, chargedOff or exemption4. That last one means SBA withheld the status under FOIA exemption 4.
  • PPP records do not include a phone number or email address.

Use cases

  • B2B lead generation at scale. Build targeted lists of real businesses by state, city, industry (NAICS), company size (jobs or estimated payroll) and loan amount. Sort by leadScore and work the biggest, most established businesses first.
  • Demographic and diversity targeting. Filter to woman-owned, veteran-owned, minority-owned, Hispanic-owned or non-profit businesses for supplier-diversity programs, grants, certifications and inclusion-focused outreach.
  • Lender and fintech intelligence. See which banks and fintech lenders (Cross River, Kabbage, Celtic, JPMorgan and others) originated and serviced loans, in which industries and states, with lenderNameQuery.
  • Industry and market research. Quantify capital deployment, payroll and employment by NAICS industry, geography and business size; compare rural and urban, HUBZone and low-to-moderate-income areas.
  • CRM enrichment and territory planning. Pull business lists by ZIP or county to build call lists, size territories, and append industry, employee band and entity type to your existing accounts.
  • Franchise and multi-unit prospecting. Use franchisesOnly to find franchise operators, or jobsMin to target larger operators.

How to use

  1. Sign up for Apify. The free plan is enough to try this actor.
  2. Open the PPP Loan Data Scraper, set your filters (states, industry, company size, demographics), then click Start.
  3. Results appear in the dataset table as they are delivered. The Business leads view shows the address, industry, jobs and estimated payroll side by side.
  4. Export as JSON, CSV, Excel or XML, or pull the results through the Apify API.

Input

{
"states": ["CA", "TX"],
"naicsCodes": ["722"],
"jobsMin": 20,
"loanAmountMin": 150000,
"veteranOwnedOnly": true,
"drawType": "second",
"maxResults": 1000,
"sortNewestFirst": true
}
  • states: borrower state or territory. Pick from the list, or type codes or names ("TX", "Texas"). Adding states makes a run much faster.
  • cities / zipCodes / counties: exact city names, full or prefix ZIP codes ("787" matches every 787xx ZIP), and county names.
  • naicsCodes: industry by NAICS prefix, 2 to 6 digits (722 restaurants, 23 construction, 621 health care practices, 6212 dentists, 54 professional services).
  • businessNameQuery / lenderNameQuery: text the business name, or the originating or servicing lender name, must contain.
  • businessTypes: entity types as SBA recorded them (Corporation, LLC, Sole Proprietorship, Non-Profit Organization and the rest), from a pick-list.
  • jobsMin / jobsMax: company-size band by jobs reported.
  • loanAmountMin / loanAmountMax: current approved amount in USD.
  • approvalDateFrom / approvalDateTo: approval date window (YYYY-MM-DD).
  • drawType: first (2020) or second (2021, a sign the business was still operating).
  • forgivenessStatus, loanStatuses, franchisesOnly, nonProfitFilter.
  • womanOwnedOnly / veteranOwnedOnly / minorityOwnedOnly / hispanicOwnedOnly: owner demographics.
  • ruralUrban / hubzoneOnly / lowToModerateIncomeOnly: location flags.
  • includeUnder150k (default off): also search the ~10.5 million loans under $150K. With states set, only those states are read.
  • maxResults (default 1000): the most loan records a run returns and bills.
  • sortNewestFirst (default on): most recently approved loans first. Turn it off to stop as soon as maxResults loans are found.
  • monitorMode / monitorKey: return only loans that earlier runs with the same key did not deliver, so you can harvest a big segment in batches without paying twice for a loan.

A run with no filters at all returns a small sample of California loans, so a test call never turns into a national export. A filter value that cannot match anything (an unknown state code, a date that is not a date) stops the run before anything is searched or billed, and so does an input that uses only field names this actor does not have. The run's status message says what to change.

Output

One record per PPP loan (recordType: "loan"). A real record:

{
"recordType": "loan",
"loanNumber": "1018909108",
"drawType": "Second Draw",
"processingMethod": "PPS",
"borrowerName": "FEAST CALIFORNIA CAFE LLC",
"borrowerStreet": "41760 Ivy St",
"borrowerCity": "Murrieta",
"borrowerState": "CA",
"borrowerZip": "92562-9415",
"borrowerZip5": "92562",
"borrowerAddressFull": "41760 Ivy St, Murrieta, CA 92562-9415",
"initialApprovalAmount": 1089046,
"currentApprovalAmount": 1089046,
"loanAmount": 1089046,
"undisbursedAmount": 0,
"loanSizeTier": "large ($1M–2M)",
"sbaGuarantyPercentage": 100,
"approvalDate": "2021-06-15",
"termInMonths": 60,
"termInYears": 5,
"loanStatus": "paidInFull",
"loanStatusLabel": "Paid in full",
"loanStatusRaw": "Paid in Full",
"loanStatusDate": "2022-02-10",
"isForgiven": true,
"forgivenessAmount": 1095187.01,
"forgivenessDate": "2022-01-07",
"forgivenessPct": 100.6,
"jobsReported": 77,
"estimatedAnnualPayroll": 3733872,
"naicsCode": "722511",
"naicsTitle": "Full-Service Restaurants",
"naicsSectorCode": "72",
"naicsSector": "Accommodation & Food Services",
"businessType": "Limited Liability Company(LLC)",
"businessAge": "Existing or more than 2 years old",
"businessAgeCategory": "existing",
"franchiseName": "Corner Bakery Cafe",
"isFranchise": true,
"nonProfit": false,
"ownerGender": "Male Owned",
"ownerRace": "Asian",
"ownerEthnicity": "Not Hispanic or Latino",
"veteranStatus": "Non-Veteran",
"isWomanOwned": false,
"isVeteranOwned": false,
"isMinorityOwned": true,
"isHispanicOwned": false,
"projectCity": "Murrieta",
"projectCounty": "Riverside",
"projectState": "CA",
"projectZip": "92562-9415",
"congressionalDistrict": "CA-48",
"ruralUrban": "Urban",
"isHubzone": false,
"isLowToModerateIncomeArea": false,
"proceeds": {
"payroll": 1089045,
"utilities": null,
"mortgageInterest": null,
"rent": null,
"refinanceEidl": null,
"healthCare": null,
"debtInterest": null
},
"proceedsUsedFor": ["payroll"],
"originatingLender": "Endeavor Bank",
"originatingLenderCity": "San Diego",
"originatingLenderState": "CA",
"originatingLenderLocationId": "518683",
"servicingLenderName": "Endeavor Bank",
"servicingLenderAddress": "750 B St, Ste 3110",
"servicingLenderCity": "San Diego",
"servicingLenderState": "CA",
"servicingLenderZip": "92101-8105",
"servicingLenderLocationId": "518683",
"sbaOfficeCode": "0920",
"leadScore": 80,
"sourceFile": "public_150k_plus_240930.csv",
"scrapedAt": "2026-10-17T19:43:10.415Z"
}

How much does it cost to scrape PPP loan data?

This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

  • PPP loan / business record - One SBA Paycheck Protection Program loan record: business (borrower) name & full address, NAICS industry & sector, loan & forgiveness amounts, jobs reported, draw type, business type & age, franchise, owner demographics (woman/veteran/minority/non-profit), rural/HUBZone/LMI flags, loan-proceeds breakdown, originating & servicing lender, plus a derived lead score and loan-size tier.

The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

Automate & schedule

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

  • Apify API: start runs, fetch datasets, and manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python: official SDKs.
  • Schedules: combine with monitor mode to work through a large segment in batches, each run delivering only loans you have not received yet.
  • Webhooks: trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/ppp-loan-data-scraper').call({
states: ['CA'],
naicsCodes: ['722'],
jobsMin: 20,
maxResults: 1000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} PPP business leads`);

Integrate with any app

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

  • Make: multi-step automation scenarios.
  • Zapier: push new business leads straight into your CRM.
  • Slack: get notified when a monitored search finds new records.
  • Google Drive / Sheets: export every run to a spreadsheet automatically.
  • Airbyte: pipe results into your data warehouse.
  • 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: ask your assistant to "find veteran-owned restaurants in Texas with 20+ employees that received a PPP loan and list their lenders" and let it run this scraper for you. Field names that agents often guess (state, naics, limit, city) are understood and noted on the run.

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 pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402: an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server, with no account and no API key.
  • 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 and government-data lead stack:

Tips

  • Add states. A state search reads only that state's slice of SBA's files, so it is the fastest and cheapest way to run, and it keeps a city or county search fast too.
  • Start with the bigger loans. By default the actor searches the ~969,000 loans of $150K and more: the businesses with the biggest payrolls. Turn on includeUnder150k when you need the long tail of small businesses and sole proprietors.
  • Searching the whole country including small loans? That reads all 11.5 million rows and takes a few minutes. Give the run 4 GB of memory (Run options) and it finishes several times faster; you pay the same per loan either way.
  • Target a company-size band. Combine jobsMin and jobsMax (for example 10 to 50), or sort by estimatedAnnualPayroll in your export.
  • Find survivors. Set drawType to second for businesses that were still operating in 2021.
  • Segment by owner demographics. Use womanOwnedOnly, veteranOwnedOnly, minorityOwnedOnly or hispanicOwnedOnly for diversity-focused outreach and supplier programs.
  • Track a lender. Put a bank or fintech name in lenderNameQuery to study its PPP book.
  • Harvest in batches. Turn on monitorMode with a distinct monitorKey per saved search; each run then returns only loans you have not received before.

FAQ

Where does the data come from? The official SBA Paycheck Protection Program (PPP) FOIA dataset published on data.sba.gov. It is public-record government data; this actor downloads, filters, normalizes, scores and structures it.

How many loans are covered? SBA's release lists about 11.5 million PPP loans: about 969,000 loans of $150K and more, searched by default, and about 10.5 million smaller loans, added with includeUnder150k. Many businesses received both a First Draw and a Second Draw loan, so the number of distinct businesses is lower than the number of loans.

Is the data fresh? PPP loans were approved from April 2020 to mid 2021. SBA's current release is dated 30 September 2024 and carries forgiveness and final loan status. The actor reads the newest release listed on data.sba.gov on every run, so an SBA update is picked up automatically.

Is there a phone number or email? No. PPP records contain the business name and full mailing address, industry, size, demographics and loan details. Pair the output with a contact-enrichment tool or your CRM to complete the contact record.

How much does a run cost? You pay per loan record delivered. There is no start fee and no charge for the time the actor spends reading SBA's files. If you set a maximum cost per run, the actor stops cleanly at that limit and never bills past it.

What happens if a run hits its time limit? It stops collecting in time to deliver what it has, ends successfully, and says so in the status message. You are billed only for the loans in the dataset.

Can I export to Google Sheets, CSV or Excel? Yes: one click in the dataset view, or automatically on every run with the Google Drive integration.

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

Why is a field null? Owners often chose not to report demographics, loans that were not forgiven have no forgiveness amount or date, and only a small share of loans name a franchise. Fields are null only when SBA's file has no value for them.

Data & lawful use

The source is an official public register, published so that anyone can consult it. Records can name individuals (sole proprietors and named borrowers), so the output may contain personal data even though it is public. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis, honour access and deletion requests, and respect the register's own reuse conditions, which can restrict marketing or commercial use.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the U.S. Small Business Administration (SBA) or any government body. All trademarks mentioned are the property of their respective owners.

"PPP loan data" is referenced only in a descriptive, nominative sense - to identify the public data source this Actor collects from. This Actor is not an official product or service of the U.S. Small Business Administration (SBA) and is not authorised or certified by it. It collects only publicly available records; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the source's own terms of use or reuse conditions.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome; this actor is actively maintained.