Scoring
Financial Health Score
POST
/api/marketplace/v1/financial-health-scoreFree planOverview
Composite 0–1000 financial-health score computed from income, EMI load, savings rate, and credit-history age. Purely computed — no bureau pull.
Use case
Onboard flows, robo-advisers, gamified savings apps that want to grade a user without triggering a hard credit enquiry.
Authentication
All requests require the X-API-Key header. Sandbox and live keys share the same base URL — the platform routes based on the key prefix.
Base URL
https://api.loan4bank.com/v3
Auth header
X-API-Key: <YOUR_KEY>
Request parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
| monthly_income | number | Required | Take-home per month, ₹. | 85000 |
| monthly_emi | number | Required | Sum of active EMIs, ₹. | 22000 |
| monthly_savings | number | Required | Amount saved / invested per month, ₹. | 15000 |
| credit_utilisation_pct | number | Required | 0-100. Card + revolving credit utilisation. | 34 |
| credit_history_age_months | integer | Optional | Total credit-file age. | 58 |
Response schema
| Field | Type | Description |
|---|---|---|
| data.score | integer | 0–1000 composite score. |
| data.band | string | Excellent / Good / Fair / Poor / Very Poor. |
| data.factors | array | Sub-scores per input (income, EMI load, savings, utilisation, history). |
| data.recommendations | array | Top 3 actions to raise the score. |
Sample request & response
Request · cURL
curl -X POST 'https://api.loan4bank.com/v3/marketplace/v1/financial-health-score' \
-H 'X-API-Key: <YOUR_KEY>' \
-H 'Content-Type: application/json' \
-d '{"monthly_income":85000,"monthly_emi":22000,"monthly_savings":15000,"credit_utilisation_pct":34,"credit_history_age_months":58}'Sample response
{
"status": "SUCCESS",
"message": "ok",
"data": {
"score": 742,
"band": "Good",
"factors": [
{
"factor": "income_health",
"value_percent": 78
}
],
"recommendations": [
"Reduce card utilisation below 30%",
"Boost monthly savings above 20% of income"
]
}
}Want to hit this endpoint without leaving the docs? and use the in-modal runner — it's pre-loaded with this endpoint's sample body.
Error codes
| HTTP | Code | Fix |
|---|---|---|
| 400 | L4B-001 | Check the params table for the endpoint and re-send. |
| 401 | L4B-101 | Include the header on every request. |
| 401 | L4B-102 | Rotate via /developer/dashboard or grab a fresh sandbox key. |
| 402 | L4B-201 | Upgrade to the min plan shown in the endpoint's docs page. |
| 403 | L4B-301 | Toggle it on via `POST /developers/apis/toggle` or the dashboard. |
| 404 | L4B-401 | Verify the URL path and version prefix (`/v1/`). |
| 422 | L4B-421 | Check the response body for `detail` — it names the offending field. |
| 429 | L4B-491 | Backoff `Retry-After` seconds, or upgrade the plan. |
Rate limits by plan
| Plan | Monthly quota | Burst | Price |
|---|---|---|---|
| free | 100 calls | 10 / minute | ₹0 |
| starter | 5,000 calls | 60 / minute | ₹999 / month |
| growth | 25,000 calls | 240 / minute | ₹2,999 / month |
| enterprise | Unlimited | 1,200 / minute | Custom |
Changelog
See the platform changelog for version-level history covering this endpoint.