canonical: https://jentic.com/apis/loanpro.io/loanpro

# LoanPro LMS API

Jentic publishes the only available OpenAPI specification for LoanPro LMS API, keeping it validated and agent-ready. LoanPro is a loan management system used by lenders to service loan portfolios, and its public API exposes the core data model over OData. This published surface focuses on read access to customers and loans, returning OData-formatted results that can be filtered and projected. Lenders integrate it with downstream finance, CRM, and reporting systems.

## For AI agents

Read customer and loan records from a LoanPro tenant via the OData-formatted LMS API to feed downstream finance and reporting workflows.

## Scope

Does not handle payment processing, credit scoring, or origination underwriting - use for read access to LoanPro customer and loan records only.

## Capabilities

- List customers in a LoanPro tenant using OData query options for filtering and pagination
- Retrieve a specific customer record by ID for servicing or support workflows
- Pull the full loans collection from the OData service for portfolio analysis
- Apply OData $filter, $select, and $expand to shape responses without server-side coding
- Authenticate per-tenant against the customer's LoanPro deployment via API token
- Surface LMS data into BI tools, agent workflows, and CRM systems

## Use cases

### Daily Loan Portfolio Sync

Lenders running on LoanPro often need to mirror their loan portfolio into a data warehouse or BI tool every day. The `/odata.svc/Loans` endpoint returns the loans collection in standard OData format, so a scheduled job can page through it and load each row into the warehouse. OData $select keeps the payload minimal.

Example prompt: Page through GET `/odata.svc/Loans` with $select for the columns the warehouse needs and load each batch into the staging table.

### Customer Service Lookup

When a borrower calls in, support agents need a fast lookup of the customer record. A thin internal tool can call GET `/odata.svc/Customers`({id}) with the LoanPro customer ID and render the response. Because authentication is by tenant API token, each support tool is bound to a single LoanPro deployment.

Example prompt: Call GET `/odata.svc/Customers`({id}) with the borrower's LoanPro ID and return the formatted profile to the support agent.

### AI Agent Loan Servicing Assistant

An AI agent helping a servicing team can read customer and loan data through Jentic without holding the LoanPro API token directly. The agent searches Jentic for the right OData operation, loads the schema, applies an OData filter, and returns the result to the user. Credentials remain isolated in your Jentic One instance per tenant.

Example prompt: Use Jentic to call GET `/odata.svc/Customers` with $filter=startswith(LastName,'Smith') and return matching borrowers to the user.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/odata.svc/Customers` | List customers with OData query options |
| GET | `/odata.svc/Customers({id})` | Retrieve a specific customer by ID |
| GET | `/odata.svc/Loans` | List loans in the tenant |

## Key resources

- **Customers** — List and retrieve customer records via OData
- **Loans** — Retrieve the loans collection via OData

## Why Jentic

- **Setup:** Wiring the LoanPro LMS API by hand means setting up its Authorization api-token header, targeting your tenant subdomain host, and shaping OData query parameters yourself for each read. Through Jentic you install once, import the LoanPro LMS API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** LoanPro puts the customer id in the URL path (`/odata.svc/Customers`({id})), so a rule can pin your agent to reads for one customer. Every operation here is a GET, so the agent retrieves customer and loan records and performs no writes.
- **Credential handling:** Your LoanPro API token, scoped per tenant subdomain, is stored once, encrypted, by your own Jentic One instance and injected as the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list loan customers' or 'read a loan record', and Jentic returns the matching LoanPro OData operation with its input schema and parameter shape so the agent applies $filter or $select without browsing the reference docs.

## Related APIs

- **Recurly API** — Pair LoanPro's loan servicing with Recurly's recurring billing for subscription-style repayments
- **Stripe API** — Process borrower payments through Stripe while LoanPro tracks the loan position
- **Plaid API** — Verify borrower bank accounts via Plaid before linking them to LoanPro for repayments

## FAQ

### Why is there no official OpenAPI spec for LoanPro LMS API?

LoanPro does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call LoanPro LMS API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the LoanPro LMS API use?

The API requires an API token in the Authorization header, scoped per LoanPro tenant. Through Jentic, the token is stored encrypted in the vault and injected at call time so the raw token never enters agent context.

### Why does the base URL contain a {tenant} placeholder?

Each LoanPro customer runs on their own tenant subdomain (e.g. acme.loanpro.io). When you call the API, replace {tenant} with your account's subdomain. Jentic handles this substitution as part of the credential record.

### Can I filter customers using OData query options?

Yes. Both `/odata.svc/Customers` and `/odata.svc/Loans` accept OData $filter, $select, $top, $skip, and $expand parameters in the query string. Use $filter for server-side narrowing instead of paging through the full collection.

### What are the rate limits for the LoanPro LMS API?

Rate limits are not declared in the spec. LoanPro applies per-tenant limits at the contract level; consult your account team for the limits attached to your tier.

### How do I retrieve a customer record through Jentic?

Search Jentic for 'look up a loan customer'. Jentic returns the GET `/odata.svc/Customers`({id}) operation. Load the schema, supply the customer ID, and execute. The response is the OData-formatted customer record.

### Can I limit what my agent is allowed to do with the LoanPro LMS API?

Yes. Because you run Jentic One yourself, your own rules decide which LoanPro operations and credentials the agent may use. Every operation on this API is a read-only GET against `/odata.svc/Customers`, `/odata.svc/Customers`({id}), and `/odata.svc/Loans`, so you can allow those reads while the agent performs no writes. Since the customer id sits in the URL path, a rule can pin the agent to reads for a single customer, and your per-tenant API token stays under your control at execution time.
