Moneyhub · Schema
Affordability
PaymentsUnited KingdomOpen BankingOpen FinanceAccount-to-AccountPayment InitiationData AggregationAISPPISPFintech
Properties
| Name | Type | Description |
|---|---|---|
| createdAt | string | The timestamp at which the report was generated |
| id | string | The report id |
| income | object | |
| overdraftUseByAccount | array | |
| overview | object | |
| primaryIncomeAccountId | string | The account id of the detected primary income account |
| riskIndicators | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/moneyhub/main/json-schema/moneyhub-affordability-schema.json",
"title": "Affordability",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/moneyhub-affordability-api-openapi.yml#/components/schemas/Affordability",
"additionalProperties": false,
"type": "object",
"properties": {
"createdAt": {
"description": "The timestamp at which the report was generated",
"type": "string"
},
"id": {
"description": "The report id",
"type": "string"
},
"income": {
"type": "object",
"properties": {
"amountConsistency": {
"description": "Consistency of monthly income, as a number between 0 and 1",
"type": "number"
},
"longevity": {
"type": "object",
"properties": {
"consecutiveIncomeMonths": {
"description": "Longevity of income detected in number of months",
"type": "number"
},
"incomePeriodLengthMonths": {
"description": "The number of months of transaction history available for the income detection process",
"type": "number"
}
}
},
"predicted": {
"description": "The predicted monthly income amount",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"regularIncomeDetected": {
"description": "Whether or not regular income was detected",
"type": "boolean"
}
},
"required": [
"amountConsistency",
"longevity",
"predicted",
"regularIncomeDetected"
]
},
"overdraftUseByAccount": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "The account id",
"type": "string"
},
"daysInOverdraft": {
"description": "The total number of days the account was overdrawn according to the account balance",
"type": "number"
},
"daysInUnarrangedOverdraft": {
"description": "The total number of days the account was in unarranged overdraft according to the account balance. If we were not provided with an overdraft limit by the account provider, we assume any negative balance is unarranged overdraft",
"type": "number"
},
"earliestBalanceDate": {
"description": "The earliest available balance date for the account",
"type": "string"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"days": {
"description": "The number of days the account was overdrawn during the period",
"type": "number"
},
"start": {
"description": "The start date of the period",
"type": "string"
},
"end": {
"description": "The end date of the period",
"type": "string"
},
"minimumBalance": {
"description": "The minimum balance of the account during the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"unarrangedOverdraft": {
"type": "object",
"properties": {
"days": {
"description": "The total number of days the account was in unarranged overdraft according to the account balance during the period",
"type": "number"
},
"details": {
"type": "array",
"items": {
"type": "object",
"properties": {
"days": {
"description": "The number of days the account was in unarranged overdraft during the unarranged overdraft period",
"type": "number"
},
"start": {
"description": "The start date of the unarranged overdraft period",
"type": "string"
},
"end": {
"description": "The end date of the unarranged overdraft period",
"type": "string"
},
"minimumBalance": {
"description": "The minimum balance of the account during the unarranged overdraft period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
}
},
"required": [
"days",
"start",
"end",
"minimumBalance"
]
}
}
},
"required": [
"days",
"details"
]
}
},
"required": [
"days",
"end",
"minimumBalance",
"start"
]
}
}
},
"required": [
"id",
"daysInOverdraft",
"earliestBalanceDate"
]
}
},
"overview": {
"type": "object",
"properties": {
"discretionaryExpenses": {
"description": "The median monthly discretionary spend",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"fixedExpenses": {
"description": "The median monthly fixed spend",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"flexibleExpenses": {
"description": "The median monthly flexible spend",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"income": {
"description": "The median monthly income",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"incomeIncludingTransfers": {
"description": "The median monthly income including incoming transfers when incoming transfers exceed outgoing transfers",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"nonDiscretionaryExpenses": {
"description": "The median monthly non-discretionary spend",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
}
},
"required": [
"discretionaryExpenses",
"fixedExpenses",
"flexibleExpenses",
"income",
"nonDiscretionaryExpenses"
]
},
"primaryIncomeAccountId": {
"description": "The account id of the detected primary income account",
"type": "string"
},
"riskIndicators": {
"type": "object",
"properties": {
"cashWithdrawals": {
"description": "The median monthly cash withdrawal amount",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"gambling": {
"description": "The median monthly gambling spend",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"loansOpened": {
"type": "object",
"properties": {
"byPeriod": {
"type": "object",
"properties": {
"30days": {
"type": "object",
"properties": {
"byType": {
"type": "object",
"properties": {
"bnpl": {
"description": "Total number of Buy Now Pay Later loans opened within the period",
"type": "number"
},
"hcstc": {
"description": "Total number of high cost short term credit loans opened within the period",
"type": "number"
},
"dca/dmp": {
"description": "Total number of debt collection agency and debt management plan loans opened within the period",
"type": "number"
},
"secured": {
"description": "Total number of secured loans opened within the period",
"type": "number"
},
"unknown": {
"description": "Total number of loans with an unknown type opened within the period",
"type": "number"
},
"unsecured": {
"description": "Total number of unsecured loans opened within the period",
"type": "number"
}
}
},
"totalByType": {
"type": "object",
"properties": {
"bnpl": {
"type": "object",
"properties": {
"borrowed": {
"description": "Total amount borrowed using Buy Now Pay Later loans within the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"repaid": {
"description": "Total amount repaid on Buy Now Pay Later loans within the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
}
}
},
"hcstc": {
"type": "object",
"properties": {
"borrowed": {
"description": "Total amount borrowed using high cost short term credit loans within the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"repaid": {
"description": "Total amount repaid on high cost short term credit loans within the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
}
}
},
"dca/dmp": {
"type": "object",
"properties": {
"borrowed": {
"description": "Total amount borrowed using debt collection agency and debt management plans loans within the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"repaid": {
"description": "Total amount repaid on debt collection agency and debt management plans loans within the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
}
}
},
"secured": {
"type": "object",
"properties": {
"borrowed": {
"description": "Total amount borrowed using secured loans within the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money coming into an account.",
"type": "integer"
},
"majorUnits": {
"description": "The positive major units of the value, based on the values currency, eg. pounds for GBP.",
"type": "integer"
},
"minorUnits": {
"description": "The positive minor units of the value, based on the values currency, eg. pennies for GBP.",
"type": "integer"
},
"currency": {
"description": "The currency of the amount",
"type": "string"
}
},
"required": [
"value",
"currency"
]
},
"repaid": {
"description": "Total amount repaid on secured loans within the period",
"additionalProperties": false,
"type": "object",
"properties": {
"value": {
"description": "The amount in minor units of the currency, eg. pennies for GBP, negative means money going out of an account, positive means money co
# --- truncated at 32 KB (111 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/moneyhub/refs/heads/main/json-schema/moneyhub-affordability-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/moneyhub-affordability"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.