Work with this as data
Every API 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 apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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 API
curl "https://apis.io/api/v1/apis/tsb-bank-sme-api"
All apis
curl "https://apis.io/api/v1/apis?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.
OpenAPI Specification
openapi: 3.2.0
info:
version: v1.3
title: Open Data SME API
description: Latest Swagger specification for OpenData
servers:
- url: https://developer.openbanking.org.uk/reference-implementation/open-banking/v1.3
tags:
- name: SME
description: Endpoint for getting Unsecured SME Loan data
paths:
/unsecured-sme-loans:
get:
tags:
- SME
description: Gets a list of all `Unsercured SME Lending` objects.
parameters:
- name: If-Modified-Since
description: Used for conditional request, to retrieve data only if modified since a given date
in: header
required: false
schema:
type: string
- name: If-None-Match
description: Used for conditional request, to retrieve data only if the given Etag value does not match
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response with a list of `Unsecured SME Lending` data
headers:
Strict-Transport-Security:
description: HTTPS strict transport security header
schema:
type: string
default: max-age=31536000
Etag:
description: A unique ID identifying whether this resource has changed
schema:
type: string
Cache-Control:
description: Describes how long this response can be cached
schema:
type: string
default: max-age=28800
X-Frame-Options:
description: Prevent this request from being loaded in any iframes
schema:
type: string
default: DENY
X-Content-Type-Options:
description: Ensures each page has a content type and prevents browsers from doing MIME type sniffing
schema:
type: string
default: nosniff
content:
application/prs.openbanking.opendata.v1.3+json:
schema:
type: object
properties:
meta:
title: Meta data
type: object
properties:
LastUpdated:
type: string
format: date-time
TotalResults:
type: integer
Agreement:
type: string
enum:
- Use of the APIs and any related data will be subject to the terms of the Open Licence and subject to terms and conditions
License:
description: Open Banking License
type: string
format: uri
enum:
- https://www.openbanking.org.uk/open-licence
TermsOfUse:
description: Open Banking Terms of Use
type: string
format: uri
enum:
- https://www.openbanking.org.uk/terms
required:
- LastUpdated
- TotalResults
- Agreement
- License
- TermsOfUse
additionalProperties: false
data:
type: array
items:
description: SME Loan
type: object
properties:
Organisation:
description: Organisation
type: object
properties:
ParentOrganisation:
description: Parent organisation
type: object
properties:
LEI:
description: The LEI ID of the organisation
type: string
pattern: ^[A-Z0-9]{18,18}[0-9]{2,2}$
BIC:
description: The BIC from the organisation
type: string
pattern: '[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?'
OrganisationName:
description: Organisation Name
type: object
properties:
LegalName:
description: Legal Name of the organisation
type: string
minLength: 1
maxLength: 35
required:
- LegalName
additionalProperties: false
required:
- OrganisationName
additionalProperties: false
Brand:
description: Brand
type: object
properties:
TrademarkIPOCode:
description: 'The Intellectual Property Office (IPO) is the official body responsible for intellectual property (IP) rights including patents, designs, trademarks and copyright. (Code: UK or EU only)'
type: string
enum:
- UK
- EU
TrademarkID:
description: 'The trademark number that has been registered with the Intellectual Property Office. Note: The 2 letter IPO prefix should be omitted'
type: string
minLength: 1
maxLength: 35
required:
- TrademarkIPOCode
- TrademarkID
additionalProperties: false
required:
- ParentOrganisation
- Brand
additionalProperties: false
ProductName:
description: The short product or marketing name assigned by the parent organisation
type: string
ProductIdentifier:
description: Identifier within the parent organisation for the product. Must be unique in the organisation
type: string
ArrearsTreatment:
description: Arrears treatment
type: string
ProductTypeName:
description: Descriptive code for the product category
type: string
enum:
- FlexibleBusinessLoan
- SmallBusinessLoan
- SmeUnsecuredLoan
ProductURL:
type: array
items:
type: string
format: uri
minItems: 1
ProductSegment:
type: array
items:
description: Marketing or industry segment that the product is applicable for. Gives the sector or segment that the Loan is designed for
type: string
enum:
- AgricultureSector
- AllSegmentsCorporate
- Corporate
- FixedGroup
- FlexibleBusinessLoan
- GovernmentScheme
- NewCustomersOnly
- SmallLoan
- SpecialisedSector
- SwitchersOnly
minItems: 1
ProductDescription:
description: Description of the product provided by the parent Organisation
type: string
TsandCs:
description: URL provided by the parent organisation which redirects to the T&Cs
type: array
items:
type: string
minItems: 1
CustomerAccessChannels:
description: Ways to interact with the bank
type: array
items:
description: ''
type: string
enum:
- Branch
- MobileBankingApp
- Online
- Phone
- Post
- PostOffice
- Text
minItems: 1
Currency:
description: Currency of the Account. Default to GBP at present
type: array
items:
description: Active or Historic Currency Code
type: string
pattern: '[A-Z]{3}'
minItems: 1
MinimumLoanTerm:
description: Minimum term (Days)
type: integer
MaximumLoanTerm:
description: Maximum loan term (Days)
type: integer
MinimumLoanAmount:
description: Minimum loan amount
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
MaximumLoanAmount:
description: Maximum loan amount
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
PaymentHoliday:
description: Indicates whether a repayment holiday is allowed
type: boolean
LoanItem:
type: array
items:
description: Loan Item
type: object
properties:
ProductState:
description: Describes if the offering is promotional or a description of a future state.
type: string
enum:
- FutureMultipleTerms
- Promotional
- Regular
StartPromotionOrFutureTerms:
description: Describes the start date
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
StopPromotionOrFutureTerms:
description: Describes the end date
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
LengthPromotionalInDays:
description: Describes the length if only a duration is given instead of a date in days
type: integer
DateOfChange:
description: Date of the change if it refers to future terms
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
LoanPricing:
type: array
items:
description: Loan Pricing
type: object
properties:
SizeIncrement:
description: Identifier for tier only where it has been supplied under Part 8 (article 32 or the CMA order), value reflects upper tier value
type: string
enum:
- £5000
- £10000
- £15000
- £20000
- £25000
- Other
- TierMaximum
- TierMinimum
LoanLengthIncrement:
description: Loan Length Increments
type: string
enum:
- 1 year
- 2 years
- 3 years
- 4 years
- 5 years
RepaymentFrequency:
type: array
items:
description: Repayment Frequency Code
type: string
enum:
- Daily
- Flexible
- Fortnightly
- HalfYearly
- Monthly
- Quarterly
- Weekly
- Yearly
minItems: 1
uniqueItems: true
LoanSizeBandLower:
description: Monetary amount without currency
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
LoanSizeBandUpper:
description: Monetary amount without currency
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
LoanLengthIncrementLower:
type: integer
LoanLengthIncrementUpper:
type: integer
IndicativeRate:
type: string
RateComparisonType:
description: Rate Comparison Type
type: string
enum:
- APR
- AER
- Gross
- Net
- RepApr
Negotiable:
type: boolean
required:
- SizeIncrement
- LoanLengthIncrement
- RepaymentFrequency
- LoanSizeBandLower
- LoanSizeBandUpper
- LoanLengthIncrementLower
- LoanLengthIncrementUpper
- IndicativeRate
- Negotiable
additionalProperties: false
CCARegulatedEntity:
type: boolean
IsALowInterestRepaymentStartPossible:
type: boolean
IsThisAnInterestOnlyLoan:
type: boolean
WillTheLoanBePaidInTrancheDrawdowns:
type: boolean
required:
- ProductState
- CCARegulatedEntity
- IsALowInterestRepaymentStartPossible
- IsThisAnInterestOnlyLoan
- WillTheLoanBePaidInTrancheDrawdowns
additionalProperties: false
Eligibility:
description: Eligibility
type: object
properties:
AgeRestricted:
description: Indicates a customer's age is part of eligibility criteria
type: boolean
MinimumAge:
description: Minimum age, in years, required to hold an account
type: integer
MaximumAge:
description: Maximum age, in years, allowed to hold the account
type: integer
MaximumAgeToOpen:
description: Maximum age, in years, to open an account
type: integer
OtherFinancialHoldingRequired:
description: Indicates that it is necessary to hold another product with the bank in order to be eligible for this product or feature
type: boolean
Description:
description: One paragraph detailing the eligibility
type: string
IncomeTurnoverRelated:
description: Indicates if eligibility linked to income
type: boolean
SingleJointIncome:
description: Minimum Income Source. For certain products a minimum income is required. This can be mandated as to the single income or to a joint income. This field describes this
type: string
enum:
- Joint
- SoleIncome
- SoleOrJoint
- Turnover
MinimumIncomeTurnoverAmount:
description: Minimum income / Turnover required to hold the product
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
MinimumIncomeTurnoverCurrency:
description: Minimum income / Turnover Currency
type: string
pattern: '[A-Z]{3}'
IncomeCondition:
description: Stipulates any particular definition of income that applies to the income eligibility and/or method by which income must paid into the account (eg Salary DD)
type: string
MinIncomeTurnoverPaidIntoAccount:
description: Minimum Income Amount required to paid into the account
type: integer
MinimumIncomeFrequency:
description: The frequency that the minimum mentioned before is deposited in the account. Yearly is very important for premium accounts
type: string
enum:
- AcademicTerm
- HalfYearly
- Monthly
- Quarterly
- Weekly
- Yearly
AnnualBusinessTurnover:
description: Annual Business Turnover
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
AnnualBusinessTurnoverCurrency:
description: Annual Business Turnover Currency
type: string
pattern: '[A-Z]{3}'
ResidencyRestricted:
description: Indicates a customer's residency forms part of the eligibility criteria
type: boolean
ResidencyRestrictedRegion:
description: Indicates a customer must be current resident of a geographic area/country
type: string
enum:
- UK
- EEA
- EU
- EFTA
- GB - ENG
- GB - NIR
- GB - SCT
- GB - WLS
- IRL
MaxNumberOfAccounts:
description: Maximum number of the same prodcut the customer may hold
type: string
ThirdSectorOrganisations:
description: Is the product available to operate as a Clubs or Societies account?
type: boolean
MinimumDeposit:
description: A minimum deposit required to hold this account
type: boolean
OpeningDepositMinimum:
description: Minimum Amount to be held on account
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
OpeningDepositMinimumCurrency:
description: The currency of the Minimum Amount to be depositing at opening
type: string
pattern: '[A-Z]{3}'
MinimumOperatingBalanceExists:
description: Is there a Minimum Operating Balance?
type: boolean
MinimumOperatingBalance:
description: Minimum Operating Balance
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
MinimumOperatingBalanceCurrency:
description: Minimum Operating Balance currency
type: string
pattern: '[A-Z]{3}'
MaximumOpeningAmount:
description: A maximum amount to be deposited at opening
type: boolean
OpeningDepositMaximumAmount:
description: Maximum Amount to be depositing at opening
type: string
pattern: ^-?\d{1,10}\.\d{1,2}$
OpeningDepositMaximumCurrency:
description: The currency of the Minimum Amount to be depositing at opening
type: string
pattern: '[A-Z]{3}'
EligibilityName:
description: Free text description, denotes non standard eligibilities not included in the code list
type: string
EligibilityType:
description: Eligibility type
type: string
enum:
- AnyBusinessCustomer
- BusinessOnly
- CreditCard
- CreditScoring
- EmailAddress
- ExistingCustomers
- IdAndV
- Mortgage
- NoArrearsOnLoan
- NoCustomerInArrears
- NoOverOverdraftThirtyDays
- NoSoleUkAccountOrBankrupt
- NTB
- NTBBusiness
- SoleStudentAccount
- SoleUkAccount
- StudentsOnly
- TwoMonthsOfCourseStart
- UCASFulltimeTwoYears
EligibilityNotes:
description: Optional additional notes to supplement the eligibility conditions. Only used for very specific conditions
type: string
PreviousBankruptcy:
description: Describes if a previous bankruptcy / insolvency disqualfies for this account Details in ELI-280
type: boolean
MarketingEligibility:
type: array
items:
description: Specific eligibility for marketing
type: string
enum:
- ExistingCustomers
- NewCustomersOnly
- SwitchersOnly
- StartUp
uniqueItems: true
required:
- AgeRestricted
- OtherFinancialHoldingRequired
- Description
- IncomeTurnoverRelated
- ResidencyRestricted
- ThirdSectorOrganisations
- PreviousBankruptcy
additionalProperties: false
FeesAndCharges:
type: array
items:
description: Fees And Charges
type: object
properties:
ProductState:
description: Describes if the offering is promotional or a description of a future state.
type: string
enum:
- FutureMultipleTerms
- Promotional
- Regular
Fees:
description: Fees
type: object
properties:
StartPromotionOrFutureTerms:
description: Describes the start date
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
StopPromotionOrFutureTerms:
description: Describes the end date
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
LengthPromotionalInDays:
description: Describes the length if only a duration is given instead of a date
type: integer
DateOfChange:
description: Date of the change if it refers to future terms
type: string
pattern: ^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$
FeeLowerTier:
description: Lower occurrence / range boundary e.g.. For returned cheques this could be 0, which means the first returned cheque fits into this range
type: integer
FeeHigherTier:
description: Higher occurrence / range boundary e.g. For returned cheques this could be 10, which means the first 10 returned cheque fits into this range
type: integer
FeeDetails:
type: array
items:
description: Fee Details
type: object
properties:
FeeSubType:
description: Fee Sub Type code
type: string
enum:
- FutureMultipleTerms
- Promotional
- Regular
FeeDetail:
description: Fee Detail
type: object
properties:
FeeType:
description: A description of the Fee type
type: string
enum:
- Other
- ATMDonation
- ATMDeposATMPaidIn
- ReportCertBalance
- ATMAbroadConVisaCredit
- ATMAbroadConVisaDebit
- ATMCardnetEnvIn
- ATMCashGroupATMCreditCard
- ATMCashNonGroupATMCredittcard
- ATMCashGroupATMDebitCard
- ATMCashNonGroupATMDebitcard
- ATMConGroupATM
- ATMAbroad
- ATMForeignCashDebCard
- ATMAbroadGoldVisaDebit
- ATMSpainCashCard
- ATMSpainDebitCard
- ATMSpainConversionDebitCard
- ATMSpainConversionCashCard
- ATMNonSterlingWithdrawal
- ATMAbroadVisaCredit
# --- truncated at 32 KB (80 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tsb-bank/refs/heads/main/openapi/tsb-bank-sme-api-openapi.yml