API Documentation
Integrate Loan Intel data into your workflows. Programmatic access to loan book management, payment monitoring, company search, and market intelligence.
Getting Started
Authentication
All API requests require a JWT bearer token. Obtain your token via POST /auth/login and include it in every request header:
Authorization: Bearer <token>
Base URL
All API endpoints are relative to the following base URL:
https://www.loan-intel.com/api
All requests and responses use JSON. Set Content-Type: application/json on POST requests.
Rate Limits
API requests are rate-limited per authenticated account:
A 429 Too Many Requests response is returned when limits are exceeded. Retry after the duration specified in the Retry-After header.
Endpoints Reference
/auth/loginAuthenticate and receive a JWT bearer token. Tokens expire after 24 hours.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| string | required | Registered user email address | |
| password | string | required | Account password |
Example Response
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"expires_in": 86400
}/loanbookRetrieve all loan book entries for the authenticated lender account.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| page | integer | optional | Page number (default: 1) |
| limit | integer | optional | Results per page (default: 50, max: 200) |
| status | string | optional | Filter by status: active, redeemed, default |
Example Response
{
"total": 142,
"page": 1,
"results": [
{
"id": "lb_8f3a2c1d",
"spv_name": "ACACIA CAPITAL SPV 12 LTD",
"company_number": "14823901",
"facility_ref": "BL-2024-0341",
"facility_amount": 2500000,
"outstanding_balance": 2500000,
"status": "active",
"origination_date": "2024-03-15"
}
]
}/loanbookAdd a new loan book entry. The SPV company number is validated against Companies House.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| company_number | string | required | Companies House registration number |
| facility_ref | string | required | Your internal facility reference |
| facility_amount | number | required | Facility amount in GBP |
| origination_date | string | required | Loan origination date (YYYY-MM-DD) |
| property_address | string | optional | Security property address |
Example Response
{
"id": "lb_9e4b3d2e",
"spv_name": "MERIDIAN PROPERTY HOLDINGS LTD",
"company_number": "15012876",
"facility_ref": "BL-2024-0342",
"status": "active",
"created_at": "2024-11-20T14:32:01Z"
}/loanbook/{id}Remove a loan book entry. This action is irreversible.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Loan book entry ID (path parameter) |
Example Response
{
"success": true,
"message": "Loan book entry lb_8f3a2c1d deleted"
}/paymentsRetrieve payment records for the authenticated lender. Includes status history.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| loan_id | string | optional | Filter by loan book entry ID |
| from | string | optional | Start date filter (YYYY-MM-DD) |
| to | string | optional | End date filter (YYYY-MM-DD) |
Example Response
{
"total": 18,
"results": [
{
"id": "pmt_7c1e9a4f",
"loan_id": "lb_8f3a2c1d",
"due_date": "2024-11-01",
"status": "paid_on_time",
"days_late": 0,
"recorded_at": "2024-11-03T09:14:22Z"
}
]
}/paymentsRecord a payment event for a loan. Triggers network notifications where applicable.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| loan_id | string | required | Loan book entry ID |
| due_date | string | required | Payment due date (YYYY-MM-DD) |
| status | string | required | Status: paid_on_time, late, missed, default |
| days_late | integer | optional | Days late (required if status is late) |
Example Response
{
"id": "pmt_2a8d5b6c",
"loan_id": "lb_8f3a2c1d",
"status": "late",
"days_late": 12,
"network_notification_sent": true,
"recorded_at": "2024-11-15T11:02:44Z"
}/search?q=Search for companies, SPVs, and sponsor groups by name or Companies House number.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | required | Search query: company name or registration number |
| type | string | optional | Filter: spv, parent, lender (default: all) |
| limit | integer | optional | Results to return (default: 20, max: 100) |
Example Response
{
"query": "Acacia Capital",
"total": 4,
"results": [
{
"company_name": "ACACIA CAPITAL GROUP LTD",
"company_number": "11483029",
"type": "parent",
"spv_count": 12,
"health_score": 74
}
]
}/spv-detail/{cn}Retrieve detailed intelligence for a specific company by Companies House number.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| cn | string | required | Companies House registration number (path parameter) |
Example Response
{
"company_number": "14823901",
"company_name": "ACACIA CAPITAL SPV 12 LTD",
"status": "active",
"health_score": 68,
"parent_company": "ACACIA CAPITAL GROUP LTD",
"active_charges": 2,
"payment_signals": { "late_count": 1, "lender_count": 2 },
"experian_score": 72
}/financials/platformsRetrieve aggregated market-level platform statistics across all participating lenders.
Example Response
{
"active_lenders": 47,
"total_active_loans": 3821,
"total_book_value_gbp": 2840000000,
"late_payment_rate_pct": 3.4,
"default_rate_pct": 0.8,
"as_of": "2024-11-01"
}/financials/snapshotRetrieve a portfolio snapshot for the authenticated lender, including performance metrics.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| as_of | string | optional | Snapshot date (YYYY-MM-DD, default: today) |
Example Response
{
"lender": "Bridgepoint Capital Ltd",
"as_of": "2024-11-20",
"active_loans": 142,
"book_value_gbp": 87500000,
"late_count": 5,
"late_pct": 3.52,
"defaulted_count": 1,
"avg_health_score": 71
}Code Examples
// JavaScript — Fetch API example
// Retrieve your active loan book entries
const token = 'your_jwt_token_here';
const response = await fetch('https://www.loan-intel.com/api/loanbook?status=active', {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
});
const data = await response.json();
console.log(`${data.total} active loans`);
data.results.forEach(loan => {
console.log(`${loan.spv_name}: £${loan.facility_amount.toLocaleString()}`);
});# Python — requests library example
# Record a payment event
import requests
TOKEN = "your_jwt_token_here"
BASE_URL = "https://www.loan-intel.com/api"
headers = {
"Authorization": f"Bearer {TOKEN}",
"Content-Type": "application/json",
}
payload = {
"loan_id": "lb_8f3a2c1d",
"due_date": "2024-11-01",
"status": "late",
"days_late": 12,
}
response = requests.post(f"{BASE_URL}/payments", json=payload, headers=headers)
result = response.json()
print(f"Payment recorded: {result['id']}")
print(f"Network notification sent: {result['network_notification_sent']}")Webhooks
Webhook Notifications
Coming SoonWe are developing a webhook system that will allow you to receive real-time push notifications for platform events — including network payment alerts, new charge registrations, and health score changes for companies in your loan book.
Planned webhook events include: payment.late, payment.missed, charge.registered, health_score.changed. Contact us to register interest and receive early access.
SDK
Official SDK Libraries
Coming SoonOfficial SDK packages for JavaScript/TypeScript and Python are under development. The SDKs will provide typed client libraries, automatic token refresh, and simplified error handling, reducing the amount of boilerplate needed to integrate with the Loan Intel API.
Planned package names: @tp-finance/api-client (npm) and tp-finance (PyPI).
API Access & Support
API access is available to registered platform users. To request API credentials, discuss integration requirements, or get technical support, contact our team.
support@loan-intel.com