Build

Lender Directory

Search the Lev lender directory and read lender profiles in the Lev API.

Updated September 2026
GET/api/external/v2/lenders/directory
GET/api/external/v2/lenders/{org_id}

Overview

The lender directory is a global resource, not scoped to your account. It works like the directory search in the Lev web app: you get the lenders that best match your search, not the whole directory.

EndpointDescription
GET /lenders/directorySearch lenders by name, state, or lender type
GET /lenders/{org_id}Get a lender's profile

How directory search works:

  • Top matches only. When fewer than 25 lenders match, you get every match. When 25 or more match, you get the top 20. The limit parameter (1 to 25, default 25) can only lower that count, and values outside that range are clamped.
  • No paging or sorting. A non-empty cursor or sort, or an offset greater than 0, returns 400. If the lender you want isn't in the results, narrow the search with name, filter[state], or filter[lender_type].
  • Ranking. With name, results come back best match first. Matching is case-insensitive and catches partial names and close spellings. Without name, results are alphabetical.
  • Filters. Only filter[state] and filter[lender_type] are supported, and only with eq. Any other filter field returns 400. See Lender Types for the values filter[lender_type] accepts.
  • Actively lending lenders only. Both endpoints leave out lenders that aren't currently lending, so Get Lender returns 404 for them.
  • Pagination block. List responses always use the offset shape. total is the full match count, offset is always 0, and has_more is true when more lenders match than were returned.

Both endpoints also have a daily request cap per account, 30 directory requests and 100 lender detail requests by default. Every request counts, including ones rejected with 400, 404, or 422. Past the cap they return 429. See Rate Limits.

Lender program data is not available from the lender directory endpoints. To match lenders to a deal and see their relevant programs, use Lev's AI lender match through the MCP tools or in the product (Add Lenders to a Deal).

List Lenders

GET/api/external/v2/lenders/directory

Search the lender directory for the best-matching lenders

Query parameters
namestring
Search by lender name. Case-insensitive, matches partial names and close spellings, best match first.
filter[state]string
Filter by headquarters state as an uppercase two-letter abbreviation, such as NY. Matching is exact, so ny matches nothing. Comma-separate values to match any of them.
filter[lender_type]string
Filter by lender type. Comma-separate values to match any of them. Grouped types also match their subtypes (see Lender Types).
fieldsstring
Comma-separated fields to return. The id is always included.
limitinteger
Maximum results, 1-25 (default 25). When 25 or more lenders match, at most 20 are returned.
curl -X GET "https://api.lev.com/api/external/v2/lenders/directory?name=JPMorgan&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response (200):

{
  "request_id": "f2a3b4c5-d6e7-8901-5678-012345678901",
  "timestamp": "2026-03-20T15:30:45Z",
  "data": [
    {
      "id": 3200,
      "name": "JPMorgan Chase",
      "logo_url": "https://cdn.lev.com/logos/jpmorgan-chase.png",
      "city": "New York",
      "state": "NY",
      "lender_type": ["national_bank"]
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 10,
    "offset": 0,
    "has_more": false
  }
}
400bad_request
The lender directory returns only the top matches (at most 20 when 25 or more lenders match) and does not support pagination or sorting (cursor, offset, sort). Narrow the results with name or filters instead.— A non-empty cursor or sort, or an offset greater than 0, was passed
401unauthorized
Authentication required— Missing or invalid Authorization header
422validation_error
Invalid value for filter 'lender_type'. Input should be one of: 'other', 'bank', ...— filter[lender_type] names a type that doesn't exist
429rate_limit_exceeded
Daily lender directory cap reached. Contact help@lev.com to request a higher limit.— The account used up its daily directory requests

Get Lender

GET/api/external/v2/lenders/{org_id}

Get a lender's directory profile

Path parameters
org_idintegerrequired
Organization ID
Query parameters
fieldsstring
Comma-separated fields to return. The id is always included.

Response (200): returns the full lender detail object (see Lender Object).

{
  "request_id": "a3b4c5d6-e7f8-9012-6789-123456789012",
  "timestamp": "2026-03-20T15:30:45Z",
  "data": {
    "id": 3200,
    "name": "JPMorgan Chase",
    "website": "https://jpmorgan.com",
    "logo_url": "https://cdn.lev.com/logos/jpmorgan-chase.png",
    "square_logo_url": "https://cdn.lev.com/logos/jpmorgan-chase-square.png",
    "address": "383 Madison Avenue",
    "city": "New York",
    "state": "NY",
    "zip": "10179",
    "about": "Leading global financial services firm providing commercial real estate lending across all asset classes.",
    "lender_type": ["national_bank"]
  }
}
401unauthorized
Authentication required— Missing or invalid Authorization header
404not_found
Lender not found— The ID doesn't exist, or the lender isn't in the directory or isn't actively lending
429rate_limit_exceeded
Daily lender detail cap reached. Contact help@lev.com to request a higher limit.— The account used up its daily lender detail requests

Directory Result Object

Each row that List Lenders returns.

FieldTypeDescription
idintegerOrganization ID. Pass it to Get Lender for the full profile.
namestring|nullLender name
logo_urlstring|nullLogo image URL
citystring|nullHeadquarters city
statestring|nullHeadquarters state
lender_typestring[]|nullLender types, such as national_bank or debt_fund. See Lender Types.

Lender Object

The profile that Get Lender returns.

FieldTypeDescription
idintegerOrganization ID
namestring|nullLender name
websitestring|nullWebsite URL
logo_urlstring|nullLogo image URL
square_logo_urlstring|nullSquare logo image URL
addressstring|nullHeadquarters street address
citystring|nullHeadquarters city
statestring|nullHeadquarters state
zipstring|nullHeadquarters ZIP code
aboutstring|nullDescription
lender_typestring[]|nullLender types, such as national_bank or debt_fund. See Lender Types.

Lender Types

lender_type values, as they appear in responses and as filter[lender_type] accepts them:

CategoryValues
Banksbank, community_bank, regional_bank, national_bank, non_us_bank
Credit unionscredit_union, credit_union_service_organization
Debt fundsdebt_fund, small_balance_debt_fund, middle_market_debt_fund, large_loan_debt_fund
Other lenderslife_insurance_company, equity_investor, hard_money, other

Two values are grouped when you filter. debt_fund also matches its small balance, middle market, and large loan subtypes, and credit_union also matches credit union service organizations. Every other value matches only itself, so filtering by bank doesn't return lenders typed only as national_bank.

More in this section