SBA 7(a) and 504 Small Business Loan Data
Pricing
from $0.03 / 1,000 sba loan records
SBA 7(a) and 504 Small Business Loan Data
Every U.S. SBA 7(a) and 504 small-business loan since 1991 (SBA FOIA, free public data): 2.19M loans with the borrower, the lender (bank or CDC), the approved amount, loan status, NAICS industry, jobs supported and the outcome. Search by borrower, lender, state, industry, year or amount.
Pricing
from $0.03 / 1,000 sba loan records
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
SBA 7(a) and 504 Small Business Loans
The U.S. Small Business Administration publishes its full FOIA loan extracts - every 7(a) and 504 loan the agency has approved - as free public data on data.sba.gov. This actor turns that register into a charged-per-record lookup, screening and analysis tool over 2,190,504 loans back to 1991.
Built for: small-business and commercial lenders, credit and market research, franchise and industry analysis, government-contracting research, SBA-lender due diligence, and borrower screening.
What it covers
Two programs, one actor. Pick a corpus:
| Program | Loans | FY range | Lenders |
|---|---|---|---|
| 7(a) | 1,961,455 | 1991-2026 | banks: 5,655 distinct |
| 504 | 229,049 | 1991-2026 | CDCs: 249 distinct |
Each record carries the borrower (name, street, city, state, ZIP), the lender - the originating bank (7(a): name, FDIC/NCUA number, address) or the Certified Development Company (504: name and address) - the third-party lender on 504 loans, the gross approved amount and the SBA-guaranteed amount (7(a)), the approval date and fiscal year, the NAICS code and industry description, the franchise code and name, the project county and state, the business type and age, the term, the jobs supported, and the loan status and outcome - the date paid in full, the charge-off date and the charge-off amount.
Where the money went, and how it ended. 7(a) approvals by borrower state: CA 254,619 / TX 155,470 / NY 129,267 / FL 103,265. 504 by state: CA 45,049 / FL 16,584 / TX 10,666. Loan-status mixes are a genuine risk signal:
| Status | 7(a) | 504 |
|---|---|---|
| Paid in full (PIF) | 1,179,360 | 114,445 |
| Exempt | 297,494 | 61,266 |
| Cancelled | 242,790 | 32,314 |
| Charged off | 220,688 | 12,169 |
| Committed | 21,123 | - |
| Not funded | - | 8,516 |
| Closed | - | 339 |
Two things worth knowing. The extract carries no unique loan number, so
lookupresolves a borrower by exact name plus location. And the "paid in full" status ships spelled two ways in the source -PIFon the 504 side andP I Fon the 7(a) side - so the actor normalizes both toPIF(loanStatusNormalized) before filtering or grouping, and a facet can never silently split.
Typical questions
- "Show every SBA 7(a) loan to a restaurant (NAICS 722) in California that charged off."
- "How much 7(a) lending has Wells Fargo done since 2015?"
- "Which 504 CDCs are most active in Florida?"
- "Find SBA loans to this borrower."
- "How did 7(a) approvals trend by fiscal year, and how do they break down by state and industry?"
- "Which franchises took the most SBA money?"
Inputs
| Input | What it does |
|---|---|
corpus | 7a (default) or 504 |
borrName / lender | borrower or originating-lender name substring, case-insensitive |
borrState / projectState / projectCounty / borrZip | location of the borrower or the financed project |
naicsCode / franchiseCode | industry code prefix / SBA franchise code |
businessType / loanStatus | legal form / loan status (PIF, CHGOFF, CANCLD, EXEMPT, COMMIT) |
approvalFY or fyMin / fyMax | SBA approval fiscal year (exact or range) - narrows which shards are read |
amountMin / amountMax | gross approved amount range |
approvalFrom / approvalTo | approval date window (YYYY, YYYY-MM or YYYY-MM-DD) |
locationId | the extract's internal LocationID, exact |
aggregate / groupBy | one summary row per group with a count - borrower state / project state / NAICS / approval FY / lender / loan status / business type |
maxResults | cap records. The aggregate mode returns every group in full and is not cut by this cap. |
Default run = a tiny aggregate (loans by borrower state) - fast and safe for the daily auto-test, never a surprise full dump. For records, add a borrName / lender / loanStatus / projectState filter or a locationId.
Example inputs
A borrower's loans - a bare name in lookup mode returns that borrower's SBA loans.
{ "mode": "lookup", "corpus": "7a", "borrName": "Anytime Fitness" }
Charged-off restaurant loans in California -
{ "corpus": "7a", "projectState": "CA", "naicsCode": "722", "loanStatus": "CHGOFF", "maxResults": 20 }
Large 504 projects in California -
{ "corpus": "504", "projectState": "CA", "amountMin": 2000000, "maxResults": 20 }
7(a) lending by state, FY2020 and later -
{ "corpus": "7a", "fyMin": 2020, "aggregate": true, "groupBy": "borrState", "maxResults": 50 }
Low cost
From $0.00005 per record, down to $0.00003 at Gold. Billed only for the rows you use, and each record is metered individually.
The SBA register is ~1 GB of flat CSV across six files with no query server behind it - there is no way to ask the SBA for "just charged-off restaurant loans in California". Rather than make every lookup pay for a full-register download, the register is mirrored into fiscal-year shards, and each run streams only the shards its filter needs - memory stays flat, so a query scales with the rows returned. Every refresh is integrity-checked against the register's known shape (per-segment row floors, the expected columns, the loan-status vocabulary and key-column coverage), so a degraded or schema-changed source fails loudly at refresh instead of publishing bad rows.
Example output
mode=lookup, a 504 borrower (abridged):
{"platform": "sba-loans","source": "sba-foia-loans","state": "US","corpus": "504","borrName": "Turning Brook","borrCity": "Alpena","borrState": "MI","borrZip": "49707","lenderName": "Michigan Certified Development Corporation","cdcName": "Michigan Certified Development Corporation","thirdPartyLenderName": "Mercantile Bank","thirdPartyDollars": "1767115","grossApproval": "1248000","approvalDate": "2009-10-02","approvalFY": "2010","termInMonths": "240","naicsCode": "623312","naicsDescription": "Homes for the Elderly","projectCounty": "ALPENA","projectState": "MI","businessType": "CORPORATION","loanStatus": "PIF","loanStatusNormalized": "PIF","paidInFullDate": "2012-12-31","jobsSupported": "14","refreshed": "2026-10-13","mode": "record"}
aggregate=true, corpus=7a, groupBy=borrState - 7(a) loans by borrower state (top):
CA 254,619TX 155,470NY 129,267FL 103,265OH 87,900
Source
- SBA - 7(a) & 504 FOIA data (data.sba.gov) - the official free public dataset this actor reads.
- Loan data is the SBA's own published FOIA extract; it reflects the agency's record as of the extract's as-of date.