SBA Loan Portfolio Explorer API — 7(a) & 504 Rollups
Pricing
from $4.40 / 1,000 results
SBA Loan Portfolio Explorer API — 7(a) & 504 Rollups
SBA loan data API over the 7(a) and 504 FOIA loan-level files. Look up loans by state, NAICS industry, lender, fiscal year and amount; roll up by lender / industry / geography; and flag risk outliers (amount-per-job, charge-offs, lender concentration). Keyless.
Pricing
from $4.40 / 1,000 results
Rating
0.0
(0)
Developer
Kyle Maloney
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
SBA Loan Portfolio Explorer — 7(a) & 504 Loan Data API with Rollups
An SBA loan data API over the official 7(a) and 504 FOIA loan-level files. Do a 7(a) / 504 loan lookup by state, NAICS industry, lender, fiscal year, or amount — then roll up by lender, industry, or geography and get risk / outlier flags (loan-amount-per-job outliers, charge-off/default proxy, single-lender concentration). SBA ships this data only as multi-hundred-MB bulk CSVs; this actor makes it queryable and adds the analytics layer.
Who it's for
- Fintech / small-business lenders & underwriters benchmarking lender books.
- KYB / due-diligence & fraud teams screening SBA borrowers and lenders.
- Economic-development & policy analysts studying loans by industry/state.
- Data & RevOps teams enriching a CRM with SBA loan history.
- AI agents needing an "SBA loan lookup / portfolio rollup" tool.
What it does
Queries the data.sba.gov CKAN DataStore for the selected program(s) and fiscal
year, normalizes 7(a) and 504 loans into one snake_case schema (dates →
YYYY-MM-DD, amounts numeric), applies your state / NAICS / lender / amount /
date filters, and then either:
- returns loan-level rows with per-loan
risk_flags+risk_score, or - returns a rollup — one aggregate row per lender, NAICS industry, or state (loan count, total & average approved $, charge-off/default proxy rate, jobs supported).
Example input
{"program": "7a","fiscalYear": 2023,"state": "CA","naicsPrefix": "72","mode": "rollup-by-lender","maxResults": 5000}
Date filters — sinceDate / untilDate must be YYYY-MM-DD
Both bounds are compared against the loan's ISO approval_date. Only
YYYY-MM-DD is accepted (2023-01-15; an unpadded 2023-1-1 is padded for
you). Anything else fails the run before any data is fetched, so a bad date
costs nothing and bills nothing.
That strictness is deliberate. A wrong format is invisible in the output — the
run reports SUCCESS and bills for whatever it returns. Measured on this actor
against three loans approved 2020-06-15, 2023-03-01 and 2025-02-10, where the
true answer for 2023-01-01 is 2 of 3 for sinceDate and 1 of 3 for untilDate:
| You send | sinceDate returned | untilDate returned |
|---|---|---|
01/15/2023 (US slash) | 3 of 3 — the whole portfolio, labelled as filtered | 0 of 3 — a confident "no loans approved before this date" |
Jan 2023 (month name) | 0 of 3 — a confident empty | 3 of 3 — the whole portfolio |
Slash forms are rejected rather than guessed: 05/06/2025 is genuinely
ambiguous between US (May 6) and EU (June 5) order, and guessing would trade a
loud, fixable error for a silent one-month window shift. A shape-only check is
not enough either — 2023-13-45 matches YYYY-MM-DD and returned a
plausible-looking wrong subset, so calendar validity is checked too.
untilDate must be on or after sinceDate. An inverted pair can match nothing,
so it fails loudly instead of returning an empty result that reads as a fact
about SBA lending. Equal bounds are a legal single-day window. Leaving either
field empty simply means no bound on that side.
Output (per loan)
program, subprogram, borrower_name, borrower_city, borrower_state,
project_state, lender_name, lender_state, gross_approval,
sba_guaranteed_approval, approval_date, approval_fiscal_year,
initial_interest_rate, term_in_months, naics_code, naics_description,
business_type, jobs_supported, loan_status, charged_off, paid_in_full,
charge_off_date, gross_charge_off_amount, amount_per_job, risk_flags[],
risk_score, source_system.
Output (rollup row)
rollup_dimension, group key (lender_name / naics_code / state),
loan_count, total_approved, avg_approved, total_guaranteed,
charged_off_count, charge_off_rate, total_charged_off_amount,
jobs_supported, avg_amount_per_job.
Use as an MCP tool
Available to AI agents via mcp.apify.com as an "SBA loan portfolio explorer"
tool — filter in, normalized SBA loan records or lender/industry/geo rollups out.
FAQ
Where's the data from? The SBA's official 7(a) & 504 FOIA loan-level files on
data.sba.gov, queried through the keyless CKAN DataStore API.
Is it keyless? Yes — no API key or login.
Does it include PPP? Not in v1. PPP is published only as a multi-GB bulk
file; 7(a) and 504 are the reliable, queryable targets. PPP may be added later.
How do I find risky lenders? Use mode: rollup-by-lender and sort by
charge_off_rate, or run mode: loans and filter on risk_flags.
Why a max-results cap? The FOIA files are large; maxResults bounds cost and
runtime. Narrow with state / naicsPrefix / fiscalYear / query for
targeted pulls.
Source
SBA data.sba.gov 7(a)/504 FOIA files via the CKAN DataStore
(data.sba.gov/api/3/action/datastore_search). Official, keyless.
Pricing (Pay Per Result)
Billed per result row returned — one loan record OR one rollup row. Empty searches cost nothing.