OBIE Open Data API (shared standard)

The UK Open Banking (OBIE) Open Data API standard for public, unauthenticated reference data - ATM locations, branch locations, personal and business current accounts, unsecured SME loans, and commercial credit cards. This is the shared OBIE standard specification, NOT a Leeds Building Society API contract. Leeds Building Society is not a CMA9 ASPSP and does not currently publish an Open Data endpoint; no live base URL was confirmed for this bank.

OpenAPI Specification

obie-opendata-standard-swagger.json Raw ↑
{
  "swagger": "2.0",
  "info": {
    "version": "v1.3",
    "title": "Open Data API",
    "description": "Latest Swagger specification for OpenData"
  },
  "host": "developer.openbanking.org.uk",
  "basePath": "/reference-implementation/open-banking/v1.3",
  "schemes": ["https"],
  "produces": ["application/prs.openbanking.opendata.v1.3+json"],
  "tags": [{
    "name": "Branch",
    "description": "Endpoint for getting Branch data"
  }, {
    "name": "ATM",
    "description": "Endpoint for getting ATM data"
  }, {
    "name": "PCA",
    "description": "Endpoint for getting Personal Current Account data"
  }, {
    "name": "BCA",
    "description": "Endpoint for getting Business Current Account data"
  }, {
    "name": "SME",
    "description": "Endpoint for getting Unsecured SME Loan data"
  }, {
    "name": "CCC",
    "description": "Endpoint for getting Commercial Credit Card data"
  }],
  "paths": {
    "/branches": {
      "get": {
        "tags": ["Branch"],
        "description": "Gets a list of all `Branch` objects.",
        "parameters": [{
          "name": "If-Modified-Since",
          "type": "string",
          "description": "Used for conditional request, to retrieve data only if modified since a given date",
          "in": "header",
          "required": false
        }, {
          "name": "If-None-Match",
          "type": "string",
          "description": "Used for conditional request, to retrieve data only if the given Etag value does not match",
          "in": "header",
          "required": false
        }],
        "responses": {
          "200": {
            "description": "Successful response with a list of `Branch` data",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header",
                "default": "max-age=31536000"
              },
              "Etag": {
                "type": "string",
                "description": "A unique ID identifying whether this resource has changed"
              },
              "Cache-Control": {
                "type": "string",
                "description": "Describes how long this response can be cached",
                "default": "max-age=28800"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              }
            },
            "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": {
                    "title": "Branch",
                    "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
                      },
                      "BranchName": {
                        "description": "Name by which a party is known and which is usually used to identify that party",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 35
                      },
                      "BranchIdentification": {
                        "description": "Unique and unambiguous identification of a retail branch of a financial institution",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 35
                      },
                      "BranchType": {
                        "description": "Information on the type of branch",
                        "type": "string",
                        "enum": ["Physical", "Mobile"]
                      },
                      "Address": {
                        "description": "Postal Address",
                        "type": "object",
                        "properties": {
                          "StreetName": {
                            "description": "Name of a street or thoroughfare",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 70
                          },
                          "BuildingNumberOrName": {
                            "description": "Number or Name that identifies the position of a building on a street",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 350
                          },
                          "PostCode": {
                            "description": "Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 16
                          },
                          "OptionalAddressField": {
                            "description": "Directions for customers",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 350
                          },
                          "TownName": {
                            "description": "Name of a built-up area, with defined boundaries, and a local government",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 35
                          },
                          "CountrySubDivision": {
                            "description": "Identifies a subdivision of a country such as state, region, county",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 35
                          },
                          "Country": {
                            "description": "Nation with its own government",
                            "type": "string",
                            "pattern": "[A-Z]{2}"
                          }
                        },
                        "required": ["Country"],
                        "additionalProperties": false
                      },
                      "BranchDescription": {
                        "description": "Description of the branch",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 140
                      },
                      "BranchPhoto": {
                        "description": "Image related to the branch",
                        "type": "string",
                        "format": "uri"
                      },
                      "TelephoneNumber": {
                        "description": "Collection of information that identifies a phone number, as defined by telecom services.",
                        "type": "string",
                        "pattern": "^[+][0-9]{1,3}-[0-9()+-]{1,30}$"
                      },
                      "AlternatePhone": {
                        "type": "array",
                        "items": {
                          "description": "Alternative Phone Number",
                          "type": "object",
                          "properties": {
                            "AlternateTelephoneNumber": {
                              "description": "Collection of information that identifies a phone number, as defined by telecom services.",
                              "type": "string",
                              "pattern": "^[+][0-9]{1,3}-[0-9()+-]{1,30}$"
                            },
                            "AlternateTelephoneNumberDescription": {
                              "description": "Description of the telephone number",
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 35
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "FaxNumber": {
                        "description": "Collection of information that identifies a FAX number, as defined by telecom services.",
                        "type": "array",
                        "items": {
                          "description": "Collection of information that identifies a phone number, as defined by telecom services.",
                          "type": "string",
                          "pattern": "^[+][0-9]{1,3}-[0-9()+-]{1,30}$"
                        }
                      },
                      "GeographicLocation": {
                        "description": "Geographic Coordinates",
                        "type": "object",
                        "properties": {
                          "Latitude": {
                            "description": "The Latitude measured in decimal format according to ISO 213",
                            "type": "string",
                            "pattern": "^-?\\d{1,3}\\.\\d{1,8}$"
                          },
                          "Longitude": {
                            "description": "The longitude measured in decimal format according to ISO 213",
                            "type": "string",
                            "pattern": "^-?\\d{1,3}\\.\\d{1,8}$"
                          }
                        },
                        "required": ["Latitude", "Longitude"],
                        "additionalProperties": false
                      },
                      "DaysOfTheWeek": {
                        "description": "Description on when the mobile branch is available. e.g. The weekend of Glastonbury festival; or Mondays and during the shrimp season also Wednesdays",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 35
                      },
                      "StopName": {
                        "description": "Name of the stop of the mobile branch",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 15
                      },
                      "ArrivalTime": {
                        "description": "Time that the mobile branch is scheduled to arrive",
                        "type": "string",
                        "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                      },
                      "DepartureTime": {
                        "description": "Time that the mobile branch is scheduled to depart",
                        "type": "string",
                        "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                      },
                      "ParkingLocation": {
                        "description": "Place where the mobile branch is located, such as between the news agent and the church.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 50
                      },
                      "OpeningTimes": {
                        "description": "Branch Opening Times",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "OpeningDay": {
                              "description": "Day of the week",
                              "enum": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Public and Bank Holiday"],
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 35
                            },
                            "OpeningTime": {
                              "description": "ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm",
                              "type": "string",
                              "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                            },
                            "ClosingTime": {
                              "description": "ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm",
                              "type": "string",
                              "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                            },
                            "UnavailableStartTime": {
                              "description": "ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm",
                              "type": "string",
                              "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                            },
                            "UnavailableFinishTime": {
                              "description": "ISOTime, local time hh:mm:ss.sss or time in utc hh:mm:ss.sssZ or time with timezone hh:mm:ss.sss+hh:mm hh:mm:ss.sss-hh:mm",
                              "type": "string",
                              "pattern": "^(([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].\\d{3})|(^24:00:00\\.000)(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])?$"
                            }
                          },
                          "required": ["OpeningDay", "OpeningTime", "ClosingTime"]
                        },
                        "minItems": 1,
                        "additionalProperties": false
                      },
                      "PlannedBranchClosure": {
                        "type": "array",
                        "items": {
                          "description": "Planned branch closure",
                          "type": "object",
                          "properties": {
                            "StartDate": {
                              "description": "Date when a branch is due to close temporarily or permanently",
                              "type": "string",
                              "pattern": "^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$"
                            },
                            "EndDate": {
                              "description": "Date when a branch is due to re-open following temporary closure",
                              "type": "string",
                              "pattern": "^[0-9]{4}-(0[1-9]|(1[0|1|2]))-((0[1-9])|((1|2)[0-9])|(30|31))$"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "AccessibilityTypes": {
                        "description": "Information about the accessibility",
                        "type": "string",
                        "enum": ["AudioCashMachine", "AutomaticDoors", "ChairAccess", "DriveThru", "ExternalRamp", "InductionLoop", "InternalRamp", "LevelAccess", "LowerLevelCounter", "WheelchairAccess"]
                      },
                      "BranchSelfServeServiceName": {
                        "type": "array",
                        "items": {
                          "description": "Information about self service branch services",
                          "type": "string",
                          "enum": ["AccountVerificationService", "AssistedServiceCounter", "BusinessDepositTerminal", "CashChequeDepositMachineCoin", "CashChequeDepositMachineNoCoin", "ExternalAtmAudio", "ExternalAtmNoAudio", "ExternalQuickServicePoint", "InternalAtmAudio", "InternalAtmNoAudio", "InternalQuickServicePoint", "LodgementDevice", "OnlineBankingPoint", "QuickDeposit", "SaturdayCounterService", "SelfServiceAccountOpening", "StatementPrinter"]
                        },
                        "uniqueItems": true
                      },
                      "BranchOtherSelfServices": {
                        "description": "Self Services not described in BranchSelfServeServiceName",
                        "type": "array",
                        "items": {
                          "description": "maxLength 350 text",
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 350
                        }
                      },
                      "BranchMediatedServiceName": {
                        "description": "Information about mediated branch facilities",
                        "type": "array",
                        "items": {
                          "description": "Information about mediated branch facilities",
                          "type": "string",
                          "enum": ["BureauDeChange", "BusinessCounter", "CardIssuanceFacility", "CounterServices", "DriveThru", "MortgageAdvisor", "NightSafe", "OnDemandCurrency", "PremierCounter", "VideoBanking", "WheelChairAccess"]
                        },
                        "uniqueItems": true
                      },
                      "BranchOtherMediatedServices": {
                        "description": "Mediated Services not described in BranchMediatedServiceName",
                        "type": "array",
                        "items": {
                          "description": "maxLength 350 text",
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 350
                        }
                      },
                      "BranchFacilitiesName": {
                        "description": "Information about branch facilities",
                        "type": "array",
                        "items": {
                          "description": "Information about branch facilities",
                          "type": "string",
                          "enum": ["BusinessITSupport", "CollectionLockers", "MeetingRooms", "Parking", "Wifi"]
                        },
                        "uniqueItems": true
                      },
                      "CustomerSegment": {
                        "description": "Customer segment which the branch is able to service",
                        "type": "array",
                        "items": {
                          "description": "Customer segment which the branch is able to service",
                          "type": "string",
                          "enum": ["Business", "Corporate", "Personal", "Premier", "Private", "Select", "SME", "Wealth"]
                        },
                        "uniqueItems": true
                      },
                      "BranchOtherFacilities": {
                        "description": "Any other facilities not mentioned in BranchFacilitiesName",
                        "type": "array",
                        "items": {
                          "description": "maxLength 350 text",
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 350
                        }
                      },
                      "ATMAtBranch": {
                        "description": "Indicated whether an ATM is at the branch",
                        "type": "boolean"
                      }
                    },
                    "required": ["Organisation", "BranchIdentification", "BranchType", "CustomerSegment", "Address", "TelephoneNumber", "OpeningTimes", "ATMAtBranch"],
                    "additionalProperties": false
                  }
                }
              },
              "required": ["meta", "data"],
              "additionalProperties": false
            }
          },
          "400": {
            "description": "You have sent a request which could not be understood.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "400 Error object",
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": ["400"]
                },
                "title": {
                  "type": "string",
                  "enum": ["Bad request"]
                },
                "description": {
                  "type": "string",
                  "enum": ["You have sent a request which could not be understood."]
                }
              },
              "required": ["status", "title", "description"],
              "additionalProperties": false
            }
          },
          "408": {
            "description": "Your client has failed to submit a request, and a timeout has occurred.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "408 Error object",
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": ["408"]
                },
                "title": {
                  "type": "string",
                  "enum": ["Client timeout"]
                },
                "description": {
                  "type": "string",
                  "enum": ["Your client has failed to submit a request, and a timeout has occurred."]
                }
              },
              "required": ["status", "title", "description"],
              "additionalProperties": false
            }
          },
          "429": {
            "description": "You have requested this resource too often. Slow down.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "429 Error object",
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": ["429"]
                },
                "title": {
                  "type": "string",
                  "enum": ["Too many requests"]
                },
                "description": {
                  "type": "string",
                  "enum": ["You have requested this resource too often. Slow down."]
                }
              },
              "required": ["status", "title", "description"],
              "additionalProperties": false
            }
          },
          "500": {
            "description": "An error occurred on the server. No further information is available.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "500 Error object",
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": ["500"]
                },
                "title": {
                  "type": "string",
                  "enum": ["Internal server error"]
                },
                "description": {
                  "type": "string",
                  "enum": ["An error occurred on the server. No further information is available."]
                }
              },
              "required": ["status", "title", "description"],
              "additionalProperties": false
            }
          },
          "503": {
            "description": "The service is temporarily unavailable.",
            "headers": {
              "Strict-Transport-Security": {
                "type": "string",
                "description": "HTTPS strict transport security header"
              },
              "X-Frame-Options": {
                "type": "string",
                "description": "Prevent this request from being loaded in any iframes",
                "default": "DENY"
              },
              "X-Content-Type-Options": {
                "type": "string",
                "description": "Ensures each page has a content type and prevents browsers from doing MIME type sniffing",
                "default": "nosniff"
              },
              "Status Code": {
                "type": "integer",
                "description": "The HTTP status code defining the error",
                "default": 400
              }
            },
            "schema": {
              "title": "503 Error object",
              "type": "object",
              "properties": {
                "status": {
         

# --- truncated at 32 KB (410 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/leeds-building-society/refs/heads/main/openapi/obie-opendata-standard-swagger.json