Barclays Product Details API

Access detailed information about Barclays banking products including rates, fees, and eligibility.

Operations 8

GET /commercial-credit-cards #
HEAD /commercial-credit-cards #
GET /business-current-accounts #
HEAD /business-current-accounts #
GET /personal-current-accounts #
HEAD /personal-current-accounts #
GET /unsecured-sme-loans #
HEAD /unsecured-sme-loans #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/product-details-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

barclays-product-details-openapi.yml Raw ↑
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