SBA PPP Loans Scraper: Business Leads, Amounts & Lenders
Pricing
from $17.00 / 1,000 results
SBA PPP Loans Scraper: Business Leads, Amounts & Lenders
Search U.S. SBA Paycheck Protection Program (PPP) loan records. Get borrower name, full address, loan and forgiveness amount, jobs reported, lender, NAICS industry, business type and demographics. Filter by business name, state, NAICS and amount. Export to JSON, CSV or Excel.
Pricing
from $17.00 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
SBA PPP Loans Scraper: Business Leads, Amounts & Lenders
Here is one real result, with every field the actor returns:
{"loanNumber": "5668498305","borrowerName": "SOUTH RESTAURANT + COFFEEHOUSE LLC","borrowerAddress": "11124 Old Seward Hwy Ste A","borrowerCity": "Anchorage","borrowerState": "AK","borrowerZip": "99515-3122","dateApproved": "01/25/2021","currentApprovalAmount": 942263,"initialApprovalAmount": 942263,"undisbursedAmount": 0,"forgivenessAmount": 950988.61,"forgivenessDate": "01/06/2022","loanStatus": "Paid in Full","loanStatusDate": "02/10/2022","term": 60,"sbaGuarantyPercentage": 100,"jobsReported": 89,"naicsCode": "722511","industry": "Accommodation & Food Services","businessType": "Limited Liability Company(LLC)","businessAgeDescription": "Existing or more than 2 years old","franchiseName": null,"nonprofit": null,"race": "Asian","ethnicity": "Not Hispanic or Latino","gender": "Female Owned","veteran": "Non-Veteran","ruralUrbanIndicator": "U","hubzoneIndicator": "N","lmiIndicator": "N","originatingLender": "Northrim Bank","originatingLenderCity": "ANCHORAGE","originatingLenderState": "AK","servicingLenderName": "Northrim Bank","servicingLenderCity": "ANCHORAGE","servicingLenderState": "AK","projectCity": "Anchorage","projectCountyName": "ANCHORAGE","projectState": "AK","projectZip": "99515-3122","congressionalDistrict": "AK-","processingMethod": "PPS","payrollProceed": 942258,"utilitiesProceed": 1,"rentProceed": null,"mortgageInterestProceed": null,"healthCareProceed": null,"debtInterestProceed": null,"refinanceEidlProceed": null,"source": "SBA PPP FOIA","observedAt": "2026-08-10T14:32:02.619Z"}
The most complete SBA PPP loans scraper available. It returns every field the SBA PPP FOIA release exposes for each funded loan, plus a derived industry label mapped from the NAICS sector, and gives you five filters to target exactly the loan records you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor queries the U.S. Small Business Administration's Paycheck Protection Program (PPP) FOIA release, applies the filters you pass as input, paginates through the matching loans, and writes one normalized record per loan to the run's dataset. Each record is a funded business with its name, full street address, loan amount, jobs reported, lender, NAICS industry, demographics, and forgiveness detail. Missing source values are returned as null, numeric fields are parsed to numbers, and a derived industry label is mapped from the two-digit NAICS sector so you can group loans without extra parsing.
Data covers approved PPP loans in the public FOIA dataset. Results are sorted by current approval amount, largest first.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 10 PPP loans whose borrower name contains "coffee".
{"maxLoans": 10,"businessName": "coffee"}
Every input field is optional. Leave businessName empty to pull the largest loans with no name filter. Combine state, naicsCode, minAmount, and maxAmount to narrow the set.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
maxLoans | integer | no | 10 | Maximum number of loan records to collect. |
businessName | string | no | (empty) | Keep only loans whose borrower name contains this text (for example coffee, dental, logistics). Case-insensitive partial match. |
state | string | no | (empty) | Two-letter US state code of the borrower, for example CA, TX, NY, FL. |
naicsCode | string | no | (empty) | Exact 6-digit NAICS industry code to filter by, for example 722511 for full-service restaurants. |
minAmount | integer | no | (none) | Only return loans with a current approval amount at or above this value (USD). |
maxAmount | integer | no | (none) | Only return loans with a current approval amount at or below this value (USD). |
Filters combine with logical AND. With an empty input the actor returns the largest PPP loans, sorted by current approval amount descending.
Output reference
One dataset item per loan. Types: string, number, or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
loanNumber | string | SBA loan number (unique per loan). |
borrowerName | string | Legal name of the funded business. |
borrowerAddress | string | Borrower street address. |
borrowerCity | string | Borrower city. |
borrowerState | string | Two-letter state code of the borrower. |
borrowerZip | string | Borrower ZIP code. |
dateApproved | string | Date the loan was approved (MM/DD/YYYY). |
currentApprovalAmount | number | Current approved loan amount in USD. |
initialApprovalAmount | number | Initial approved loan amount in USD. |
undisbursedAmount | number | Undisbursed amount in USD. |
forgivenessAmount | number | Amount forgiven in USD, or null if none. |
forgivenessDate | string | Date forgiveness was recorded (MM/DD/YYYY), or null. |
loanStatus | string | Loan status, for example Paid in Full, Exemption 4. |
loanStatusDate | string | Date of the current loan status. |
term | number | Loan term in months. |
sbaGuarantyPercentage | number | SBA guaranty percentage. |
jobsReported | number | Jobs the borrower reported the loan would support. |
naicsCode | string | 6-digit NAICS industry code. |
industry | string | Human-readable industry label derived from the NAICS two-digit sector, or null. |
businessType | string | Business legal structure, for example Limited Liability Company(LLC). |
businessAgeDescription | string | Reported business age bucket. |
franchiseName | string | Franchise name, or null if not a franchise. |
nonprofit | string | Nonprofit indicator, or null. |
race | string | Reported owner race, or null. |
ethnicity | string | Reported owner ethnicity, or null. |
gender | string | Reported owner gender, or null. |
veteran | string | Reported veteran status, or null. |
ruralUrbanIndicator | string | R (rural) or U (urban). |
hubzoneIndicator | string | HUBZone indicator, Y or N. |
lmiIndicator | string | Low-to-moderate income area indicator, Y or N. |
originatingLender | string | Lender that originated the loan. |
originatingLenderCity | string | Originating lender city. |
originatingLenderState | string | Originating lender state. |
servicingLenderName | string | Lender servicing the loan. |
servicingLenderCity | string | Servicing lender city. |
servicingLenderState | string | Servicing lender state. |
projectCity | string | City where the funded project is located. |
projectCountyName | string | County of the funded project. |
projectState | string | State of the funded project. |
projectZip | string | ZIP code of the funded project. |
congressionalDistrict | string | Congressional district of the project. |
processingMethod | string | SBA processing method, for example PPS, PPP. |
payrollProceed | number | Proceeds used for payroll, or null. |
utilitiesProceed | number | Proceeds used for utilities, or null. |
rentProceed | number | Proceeds used for rent, or null. |
mortgageInterestProceed | number | Proceeds used for mortgage interest, or null. |
healthCareProceed | number | Proceeds used for health care, or null. |
debtInterestProceed | number | Proceeds used for debt interest, or null. |
refinanceEidlProceed | number | Proceeds used to refinance an EIDL loan, or null. |
source | string | Always SBA PPP FOIA. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
On a failed run, a single item with a populated error field is written instead, and it is not charged.
Example output record
Real record from a live run (input {"maxLoans": 10, "businessName": "coffee"}):
{"loanNumber": "5668498305","borrowerName": "SOUTH RESTAURANT + COFFEEHOUSE LLC","borrowerAddress": "11124 Old Seward Hwy Ste A","borrowerCity": "Anchorage","borrowerState": "AK","borrowerZip": "99515-3122","dateApproved": "01/25/2021","currentApprovalAmount": 942263,"initialApprovalAmount": 942263,"undisbursedAmount": 0,"forgivenessAmount": 950988.61,"forgivenessDate": "01/06/2022","loanStatus": "Paid in Full","loanStatusDate": "02/10/2022","term": 60,"sbaGuarantyPercentage": 100,"jobsReported": 89,"naicsCode": "722511","industry": "Accommodation & Food Services","businessType": "Limited Liability Company(LLC)","businessAgeDescription": "Existing or more than 2 years old","franchiseName": null,"nonprofit": null,"race": "Asian","ethnicity": "Not Hispanic or Latino","gender": "Female Owned","veteran": "Non-Veteran","ruralUrbanIndicator": "U","hubzoneIndicator": "N","lmiIndicator": "N","originatingLender": "Northrim Bank","originatingLenderCity": "ANCHORAGE","originatingLenderState": "AK","servicingLenderName": "Northrim Bank","servicingLenderCity": "ANCHORAGE","servicingLenderState": "AK","projectCity": "Anchorage","projectCountyName": "ANCHORAGE","projectState": "AK","projectZip": "99515-3122","congressionalDistrict": "AK-","processingMethod": "PPS","payrollProceed": 942258,"utilitiesProceed": 1,"rentProceed": null,"mortgageInterestProceed": null,"healthCareProceed": null,"debtInterestProceed": null,"refinanceEidlProceed": null,"source": "SBA PPP FOIA","observedAt": "2026-08-10T14:32:02.619Z"}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sba-ppp-loans-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"businessName":"coffee","state":"CA","maxLoans":25}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~sba-ppp-loans-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"naicsCode":"722511","minAmount":150000,"maxLoans":100}'
Apify CLI:
apify call scrapers_lat/sba-ppp-loans-scraper \--input '{"businessName":"coffee","maxLoans":10}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxLoans.
FAQ and troubleshooting
A run returned 0 records. Why?
The filter combination matched nothing in the source. Loosen filters (for example remove state or naicsCode, or widen the amount range). Zero-result runs are not charged.
How do I find loans in one industry?
Set naicsCode to the exact 6-digit code (for example 722511 for full-service restaurants). The industry field in each record is the derived sector label.
How do I target high-value loans?
Set minAmount (and optionally maxAmount). Results are already sorted by current approval amount, largest first.
Why are some demographic fields null?
The SBA release records these only when the borrower reported them. Missing source values are returned as null, never invented.
Is this an official SBA tool? No. This actor is independent and has no affiliation with the SBA. It reads only data that the SBA publishes in its PPP FOIA release. Use it in accordance with the SBA's terms.
Related scrapers
- USAspending Federal Award & Contract Scraper: US federal prime awards and contracts.
- SEC EDGAR Financials Revenue & Assets Scraper: company revenue, assets, and other XBRL financials.
- Google Maps Business Leads & Contacts Scraper: local business leads with contacts.
- FMCSA Motor Carrier Scraper: US trucking carriers by USDOT number.
- FDIC Bank Records Scraper: US bank institutions and financials.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the U.S. Small Business Administration. Accesses only publicly available SBA PPP FOIA data. Use in accordance with the SBA's terms.
