Integration Summary

When to use
  • Browse lenders and lending programs.
  • Use this page as the source of truth for reads, filters, pagination, and object shape.
Required scopes
  • Access is inherited from the connected user or JWT session.
  • Inspect GET /me or the validate-api-key response to confirm the scopes available to the current token.
Headers
  • Authorization: Bearer <token>
  • X-Origin-App: <client-name>
  • Content-Type: application/json when the endpoint accepts a body
Request schema
Use the path and query parameter tables below or /platform/openapi.json for the machine-readable schema surface.
Response schema
Responses use the standard request_id/timestamp/data envelope. This page documents these object schemas: Lender Object, Program Object.
Enums & values
  • Enum-like values and filter operators are documented inline on the page where available.
  • When a value set is account- or tier-dependent, validate against live responses before hard-coding assumptions.
Rate limits
See /rate-limits. Page intentionally through list endpoints and apply backoff on 429 responses.
Examples
curl, TypeScript, Python

Starter example: GET /api/external/v2/lenders/directory

bash
curl -X GET "https://api.levcapital.com/api/external/v2/lenders/directory" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-Origin-App: my-integration"

Lender Directory

Last updated: March 2026

The lender directory provides access to Lev's comprehensive database of commercial real estate lenders and their lending programs.
Connect your API key to explore

Stored in your browser session only. Never sent to our docs server.

GET/api/external/v2/lenders/directory
name
limit
https://api.levcapital.com/api/external/v2/lenders/directory?limit=10

Overview

The lender directory is a global resource — it's not scoped to your account. All authenticated users can browse the full directory.
EndpointDescription
GET /lenders/directoryList lenders with search and filtering
GET /lenders/{org_id}Get lender details including programs
GET /lenders/{org_id}/programsGet lending programs for a lender

List Lenders

GET/api/external/v2/lenders/directory
Browse the lender directory

Query parameters

ParameterTypeRequiredDescription
namestringOptionalSearch by lender name (case-insensitive)
filter[state]stringOptionalFilter by state
sortstringOptionalSort by: name
fieldsstringOptionalComma-separated fields
limitintegerOptionalResults per page (1–200, default 50)
cursorstringOptionalCursor for next page
bash
curl -X GET "https://api.levcapital.com/api/external/v2/lenders/directory?name=JPMorgan&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response (200):
json
{
  "request_id": "f2a3b4c5-d6e7-8901-5678-012345678901",
  "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",
      "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": ["bank"],
      "category": "national_bank",
      "created_at": "2024-01-10T08:00:00Z",
      "updated_at": "2026-01-22T12:00:00Z"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 10,
    "has_more": false,
    "next_cursor": null
  }
}

Error responses

401unauthorized

When: Missing or invalid Authorization header

{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "error": {
    "status": 401,
    "type": "unauthorized",
    "message": "Authentication required",
    "details": {}
  }
}

Get Lender

GET/api/external/v2/lenders/{org_id}
Get detailed lender information including programs

Path parameters

ParameterTypeRequiredDescription
org_idintegerRequiredOrganization ID
Response (200):
json
{
  "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",
    "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": ["bank"],
    "category": "national_bank",
    "linkedin_url": "https://linkedin.com/company/jpmorgan-chase",
    "aliases": ["JPM", "Chase", "JP Morgan"],
    "domains": ["jpmorgan.com", "chase.com"],
    "square_logo_url": "https://cdn.lev.com/logos/jpmorgan-chase-square.png",
    "programs": [
      {
        "id": 501,
        "title": "Stabilized Multifamily",
        "loan_types": ["acquisition", "refinance"],
        "recourse_types": ["non_recourse"],
        "min_loan_amount": 5000000.0,
        "max_loan_amount": 100000000.0,
        "capital_source_type": "balance_sheet",
        "positions": ["senior"],
        "sponsor_states": ["NY", "CA", "TX", "FL", "IL"],
        "status": "active"
      }
    ],
    "created_at": "2024-01-10T08:00:00Z",
    "updated_at": "2026-01-22T12:00:00Z"
  }
}

Error responses

401unauthorized

When: Missing or invalid Authorization header

{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "error": {
    "status": 401,
    "type": "unauthorized",
    "message": "Authentication required",
    "details": {}
  }
}
404not_found

When: The ID doesn't exist or isn't accessible to the authenticated user

{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "error": {
    "status": 404,
    "type": "not_found",
    "message": "Lender not found",
    "details": {}
  }
}

Get Programs

GET/api/external/v2/lenders/{org_id}/programs
List lending programs for a lender

Path parameters

ParameterTypeRequiredDescription
org_idintegerRequiredOrganization ID
Response (200):
json
{
  "request_id": "b4c5d6e7-f8a9-0123-7890-234567890123",
  "timestamp": "2026-03-20T15:30:45Z",
  "data": [
    {
      "id": 501,
      "title": "Stabilized Multifamily",
      "loan_types": ["acquisition", "refinance"],
      "recourse_types": ["non_recourse"],
      "min_loan_amount": 5000000.0,
      "max_loan_amount": 100000000.0,
      "capital_source_type": "balance_sheet",
      "positions": ["senior"],
      "sponsor_states": ["NY", "CA", "TX", "FL", "IL"],
      "status": "active"
    },
    {
      "id": 502,
      "title": "Bridge / Value-Add",
      "loan_types": ["bridge"],
      "recourse_types": ["partial_recourse"],
      "min_loan_amount": 10000000.0,
      "max_loan_amount": 250000000.0,
      "capital_source_type": "balance_sheet",
      "positions": ["senior"],
      "sponsor_states": ["NY", "CA", "TX", "FL"],
      "status": "active"
    }
  ],
  "pagination": {
    "total": 2,
    "limit": 50,
    "has_more": false,
    "next_cursor": null
  }
}

Error responses

401unauthorized

When: Missing or invalid Authorization header

{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "error": {
    "status": 401,
    "type": "unauthorized",
    "message": "Authentication required",
    "details": {}
  }
}
404not_found

When: The ID doesn't exist or isn't accessible to the authenticated user

{
  "request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "error": {
    "status": 404,
    "type": "not_found",
    "message": "Lender not found",
    "details": {}
  }
}

Lender Object

FieldTypeDescription
idintegerOrganization ID
namestring|nullLender name
websitestring|nullWebsite URL
logo_urlstring|nullLogo image URL
addressstring|nullStreet address
citystring|nullCity
statestring|nullState
zipstring|nullZIP code
aboutstring|nullDescription
lender_typestring[]|nullLender types (e.g., bank, life company, CMBS)
categorystring|nullCategory
linkedin_urlstring|nullLinkedIn URL (detail only — not included in list responses)
aliasesstring[]|nullKnown aliases (detail only)
domainsstring[]|nullEmail domains (detail only)
square_logo_urlstring|nullSquare logo image URL (detail only)
programsarray|nullLending programs (detail only — see Program Object below)
created_atstring|nullCreation timestamp
updated_atstring|nullLast update timestamp

Program Object

FieldTypeDescription
idintegerProgram ID
titlestring|nullProgram name
loan_typesstring[]|nullSupported loan types
recourse_typesstring[]|nullRecourse types
min_loan_amountnumber|nullMinimum loan amount
max_loan_amountnumber|nullMaximum loan amount
capital_source_typestring|nullCapital source type
positionsstring[]|nullLoan positions
sponsor_statesstring[]|nullGeographic coverage
statusstring|nullProgram status