Barclays Product Details API
Access detailed information about Barclays banking products including rates, fees, and eligibility.
Access detailed information about Barclays banking products including rates, fees, and eligibility.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/product-details-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.1.0
info:
title: Product Details
description: The Barclays Product Details API allows users to discover various financial products Barclays offers. From
personal accounts to SME lending products, business current accounts to commercial credit cards, users can view current
product details.
version: '2.4'
x-method: searched
x-source: https://developer.barclays.com/api/apis/versions/436bee89-6e7e-4f54-9cd9-e9dc6cb90d8f.bdn/design?specification=oas31
x-harvested: '2026-09-04'
x-harvested-note: Verbatim OpenAPI 3.1 design export from the Barclays API Exchange registry (developer.barclays.com), fetched
anonymously. The untouched export is in openapi/_original/barclays-product-details-openapi.json. The UK Open Banking documents
carry OBIE (openbanking.org.uk) in info.contact/termsOfService because they are the OBIE standard contract as Barclays implements
and publishes it — the API, the registry record and the host are Barclays'.
paths:
/commercial-credit-cards:
get:
description: Lists all Barclays Commercial Credit Cards products
operationId: get_commercial-credit-cards
parameters:
- name: If-Modified-Since
in: header
description: Used for conditional request, to retrieve data only if modified since a given date.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if modified since a given date.
pattern: ^(?!\s)(Mon|Tue|Wed|Thu|Fri|Sat|Sun){1}, (\d){2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec){1} (\d){4}
(\d){2}:(\d){2}:(\d){2} GMT$
- name: If-None-Match
in: header
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
pattern: ^(?!\\s)([a-zA-Z0-9,\/"* ]{1,500})$
responses:
'200':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/commercial_credit_cards_response'
example: null
'400':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans400Response'
example: null
'500':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans500Response'
example: null
'503':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans503Response'
example: null
'429':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans429Response'
example: null
'408':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans408Response'
example: null
head:
description: Gets header information on Commercial Credit Card objects.
operationId: head_commercial-credit-cards
parameters:
- name: If-Modified-Since
in: header
description: Used for conditional request, to retrieve data only if modified since a given date.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if modified since a given date.
pattern: ^(?!\s)(Mon|Tue|Wed|Thu|Fri|Sat|Sun){1}, (\d){2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec){1} (\d){4}
(\d){2}:(\d){2}:(\d){2} GMT$
- name: If-None-Match
in: header
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
pattern: ^(?!\\s)([a-zA-Z0-9,\/"* ]{1,500})$
responses:
'200':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
example: null
'400':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans400Response'
example: null
'500':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans500Response'
example: null
'503':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans503Response'
example: null
'429':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans429Response'
example: null
'408':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans408Response'
example: null
/business-current-accounts:
get:
description: Lists all Barclays Business Current Accounts products
operationId: get_business-current-accounts
parameters:
- name: If-Modified-Since
in: header
description: Used for conditional request, to retrieve data only if modified since a given date.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if modified since a given date.
pattern: ^(?!\s)(Mon|Tue|Wed|Thu|Fri|Sat|Sun){1}, (\d){2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec){1} (\d){4}
(\d){2}:(\d){2}:(\d){2} GMT$
- name: If-None-Match
in: header
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
pattern: ^(?!\\s)([a-zA-Z0-9,\/"* ]{1,500})$
responses:
'200':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/business_account_response'
example: null
'400':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans400Response'
example: null
'500':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans500Response'
example: null
'503':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans503Response'
example: null
'429':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans429Response'
example: null
'408':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans408Response'
example: null
head:
description: Gets header information on Business Current Account objects.
operationId: head_business-current-accounts
parameters:
- name: If-Modified-Since
in: header
description: Used for conditional request, to retrieve data only if modified since a given date.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if modified since a given date.
pattern: ^(?!\s)(Mon|Tue|Wed|Thu|Fri|Sat|Sun){1}, (\d){2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec){1} (\d){4}
(\d){2}:(\d){2}:(\d){2} GMT$
- name: If-None-Match
in: header
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
pattern: ^(?!\\s)([a-zA-Z0-9,\/"* ]{1,500})$
responses:
'200':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
example: null
'400':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans400Response'
example: null
'500':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans500Response'
example: null
'503':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans503Response'
example: null
'429':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans429Response'
example: null
'408':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans408Response'
example: null
/personal-current-accounts:
get:
description: Lists all Barclays Personal Account products
operationId: get_personal-current-accounts
parameters:
- name: If-Modified-Since
in: header
description: Used for conditional request, to retrieve data only if modified since a given date.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if modified since a given date.
pattern: ^(?!\s)(Mon|Tue|Wed|Thu|Fri|Sat|Sun){1}, (\d){2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec){1} (\d){4}
(\d){2}:(\d){2}:(\d){2} GMT$
- name: If-None-Match
in: header
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
pattern: ^(?!\\s)([a-zA-Z0-9,\/"* ]{1,500})$
responses:
'200':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/personal_account_response'
example: null
'400':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans400Response'
example: null
'500':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans500Response'
example: null
'503':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans503Response'
example: null
'429':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans429Response'
example: null
'408':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans408Response'
example: null
head:
description: Gets header information on Personal Current Accounts objects.
operationId: head_personal-current-accounts
parameters:
- name: If-Modified-Since
in: header
description: Used for conditional request, to retrieve data only if modified since a given date.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if modified since a given date.
pattern: ^(?!\s)(Mon|Tue|Wed|Thu|Fri|Sat|Sun){1}, (\d){2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec){1} (\d){4}
(\d){2}:(\d){2}:(\d){2} GMT$
- name: If-None-Match
in: header
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
pattern: ^(?!\\s)([a-zA-Z0-9,\/"* ]{1,500})$
responses:
'200':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
example: null
'400':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans400Response'
example: null
'500':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans500Response'
example: null
'503':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans503Response'
example: null
'429':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans429Response'
example: null
'408':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans408Response'
example: null
/unsecured-sme-loans:
get:
description: Lists all Barclays Unsecured SME Lending products
operationId: get_unsecured-sme-loans
parameters:
- name: If-Modified-Since
in: header
description: Used for conditional request, to retrieve data only if modified since a given date.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if modified since a given date.
pattern: ^(?!\s)(Mon|Tue|Wed|Thu|Fri|Sat|Sun){1}, (\d){2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec){1} (\d){4}
(\d){2}:(\d){2}:(\d){2} GMT$
- name: If-None-Match
in: header
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
pattern: ^(?!\\s)([a-zA-Z0-9,\/"* ]{1,500})$
responses:
'200':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/sme_lending_response'
example: null
'400':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans400Response'
example: null
'500':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans500Response'
example: null
'503':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans503Response'
example: null
'429':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans429Response'
example: null
'408':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans408Response'
example: null
head:
description: Gets header information on Unsecured SME loan objects.
operationId: head_unsecured-sme-loans
parameters:
- name: If-Modified-Since
in: header
description: Used for conditional request, to retrieve data only if modified since a given date.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if modified since a given date.
pattern: ^(?!\s)(Mon|Tue|Wed|Thu|Fri|Sat|Sun){1}, (\d){2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec){1} (\d){4}
(\d){2}:(\d){2}:(\d){2} GMT$
- name: If-None-Match
in: header
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
required: false
schema:
type: string
description: Used for conditional request, to retrieve data only if the given Etag value does not match.
pattern: ^(?!\\s)([a-zA-Z0-9,\/"* ]{1,500})$
responses:
'200':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
example: null
'400':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans400Response'
example: null
'500':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans500Response'
example: null
'503':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans503Response'
example: null
'429':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans429Response'
example: null
'408':
description: ''
content:
application/prs.openbanking.opendata.v2.2+json:
schema:
$ref: '#/components/schemas/HeadUnsecuredSmeLoans408Response'
example: null
components:
schemas:
HeadUnsecuredSmeLoans408Response:
type: object
properties:
description:
type: string
title:
type: string
status:
type: string
required:
- description
- status
- title
GetBusinessCurrentAccounts429Response:
type: object
properties:
description:
type: string
title:
type: string
status:
type: string
required:
- description
- status
- title
HeadPersonalCurrentAccounts500Response:
type: object
properties:
description:
type: string
title:
type: string
status:
type: string
required:
- description
- status
- title
personal_account_response:
type: object
properties:
data:
type: array
items:
type: object
properties:
Brand:
type: array
items:
type: object
properties:
BrandName:
type: string
PCA:
type: array
items:
type: object
properties:
Identification:
type: string
PCAMarketingState:
type: array
items:
type: object
properties:
StateTenurePeriod:
type: string
FeaturesAndBenefits:
type: object
properties:
MobileWallet:
type: array
items:
type: object
properties:
Type:
type: string
OtherType:
type: object
properties:
Description:
type: string
Code:
type: string
Name:
type: string
required:
- Description
- Name
Notes:
type: array
items:
type: string
required:
- Type
FeatureBenefitItem:
type: array
items:
type: object
properties:
Type:
type: string
Textual:
type: string
Amount:
type: string
Identification:
type: string
OtherType:
type: object
properties:
Description:
type: string
Code:
type: string
Name:
type: string
required:
- Description
- Name
FeatureBenefitEligibility:
type: array
items:
type: object
properties:
Type:
type: string
Description:
type: string
Textual:
type: string
Amount:
type: string
Period:
type: string
OtherType:
type: object
properties:
Description:
type: string
Code:
type: string
Name:
type: string
required:
- Description
- Name
Indicator:
type: boolean
Notes:
type: array
items:
type: string
Name:
type: string
required:
- Name
- Type
Indicator:
type: boolean
Notes:
type: array
items:
type: string
Name:
type: string
required:
- Identification
- Type
FeatureBenefitGroup:
type: array
items:
type: object
properties:
Type:
type: string
ApplicationFrequency:
type: string
OtherCalculationFrequency:
type: object
properties:
Description:
type: string
Code:
type: string
Name:
type: string
required:
- Description
- Name
FeatureBenefitItem:
type: array
items:
type: object
properties:
Type:
type: string
Textual:
type: string
Amount:
type: string
Identification:
type: string
OtherType:
type: object
properties:
Description:
type: string
Code:
type: string
Name:
type: string
required:
- Description
- Name
FeatureBenefitEligibility:
type: array
items:
type: object
properties:
Type:
type: string
Description:
type: string
Textual:
type: string
Amount:
type: string
Period:
type: string
OtherType:
type: object
properties:
Description:
type: string
Code:
type: string
Name:
type: string
# --- truncated at 32 KB (296 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/barclays/refs/heads/main/openapi/barclays-product-details-openapi.yml