SBA Loan Portfolio Explorer API — 7(a) & 504 Rollups avatar

SBA Loan Portfolio Explorer API — 7(a) & 504 Rollups

Pricing

from $4.40 / 1,000 results

Go to Apify Store
SBA Loan Portfolio Explorer API — 7(a) & 504 Rollups

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

Kyle Maloney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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 sendsinceDate returneduntilDate returned
01/15/2023 (US slash)3 of 3 — the whole portfolio, labelled as filtered0 of 3 — a confident "no loans approved before this date"
Jan 2023 (month name)0 of 3 — a confident empty3 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.