Read your own UK bank accounts over an API.
Connect Barclays, HSBC, Lloyds, NatWest, Monzo or Starling once, through an FCA-authorised provider. Get your transactions and balances back as JSON with a scoped key. Sign up as an individual.
- read-only · FCA-authorised AISP
- 60 days of history
- from US$7/mo
$curl https://api.banksync.io/v1/banks/bnk_monzo/accounts/acc_7710/transactions?from=2026-09-01 \ -H "X-API-Key: bsk_live_…" { "success": true, "data": [ { "date": "2026-10-08", "description": "Tesco Express", "amount": -18.45, "category": "Groceries" }, { "date": "2026-10-07", "description": "TfL Travel Charge", "amount": -7.80, "category": "Transport" }, …36 more ], "meta": { "count": 38, "hasMore": false }}200 OK · 38 rows · 124 ms
What you get in United Kingdom
- Data
- Transactions and balances. Read-only.
- History
- Up to 60 days on the first sync.
- Consent
- 180 days, then you approve again at your bank.
- Framework
- Open Banking (UK) · Financial Conduct Authority (FCA)
- Provider
- Connections run through Salt Edge, an FCA-authorised account information service provider (AISP).
The banks you already use
- Barclays
- HSBC UK
- Lloyds
- NatWest
- Nationwide
- Monzo
- Starling
- Revolut
How it works
- 1
Connect your own bank
Sign up, then connect Barclays, HSBC, Lloyds, NatWest, Monzo or Starling through your bank's own consent screen.
- 2
Create an API key
Workspace › Developers. Give it only the scopes it needs; revoke it any time.
banks:read - 3
Make your first call
Read transactions and balances as JSON with one GET request and your key in the X-API-Key header.
- 4
Or ask an AI agent
Point Claude, ChatGPT or Cursor at the MCP server and ask questions about the same data.
MCP
Call it your way
$curl -s "https://api.banksync.io/v1/banks/bnk_monzo/accounts/acc_7710/transactions?from=2026-09-01" \ -H "X-API-Key: bsk_live_…" \ | jq '.data[] | {date, description, amount}'
import osimport requests r = requests.get( "https://api.banksync.io/v1/banks/bnk_monzo/accounts/acc_7710/transactions", params={"from": "2026-09-01"}, headers={"X-API-Key": os.environ["BANKSYNC_API_KEY"]},)r.raise_for_status()for row in r.json()["data"]: print(row["date"], row["description"], row["amount"])
const res = await fetch('https://api.banksync.io/v1/banks/bnk_monzo/accounts/acc_7710/transactions?from=2026-09-01', { headers: { 'X-API-Key': process.env.BANKSYNC_API_KEY },})if (!res.ok) throw new Error(`BankSync API ${res.status}`)const { data } = await res.json()console.table(data)
you ›What did I spend on TfL and Uber in September?mcpget_transactions({ bankId: "bnk_monzo", accountId: "acc_7710", from: "2026-09-01" })agent ›£146.30 across 22 trips: TfL £98.80, Uber £47.50. — same key, same data, in Claude, ChatGPT or Cursor —
Every endpoint
| Method | Endpoint | Description | Scope |
|---|---|---|---|
| GET | /v1/banks | List connected bank institutions | banks:read |
| GET | /v1/banks/:bankId/accounts | List accounts for a bank | banks:read |
| GET | /v1/banks/:bankId/accounts/:accountId/transactions | Query transactions with filters | banks:read |
| GET | /v1/banks/:bankId/accounts/:accountId/balances | Get the latest available balance | banks:read |
| GET | /v1/banks/:bankId/accounts/:accountId/holdings | Get current investment holdings | banks:read |
| GET | /v1/banks/:bankId/accounts/:accountId/loan | Get loan or liability details | banks:read |
| GET | /v1/feeds | List sync feeds | feeds:read |
| POST | /v1/feeds | Create a new sync feed | feeds:write |
| POST | /v1/feeds/:feedId/sync | Trigger a sync run | feeds:write |
| GET | /v1/feeds/:feedId/jobs | List sync jobs & history for a feed | jobs:read |
| GET | /v1/enrichments | List enrichments in workspace | enrichments:read |
| GET | /v1/enrichments/:enrichmentId | Get enrichment details & config | enrichments:read |
| POST | /v1/enrichments | Create any of the 16 enrichment types | enrichments:write |
| PUT | /v1/enrichments/:enrichmentId | Update enrichment config | enrichments:write |
| DELETE | /v1/enrichments/:enrichmentId | Delete an enrichment | enrichments:write |
| POST | /v1/feeds/:feedId/enrich/preview | Dry-run the enrichment pipeline on sample records | enrichments:read |
API access from $7/mo
Standard includes 5 bank connections, 10 API requests a minute and the MCP server. Every plan starts with a 14-day free trial. Prices shown in USD.
Frequently asked questions
Can I use this for my own accounts?
Yes. Sign up as an individual, connect your own accounts by approving access at your bank, and create an API key. There is no AISP registration to apply for, no company to form and no sales call.
Do I need to be an AISP or registered with the FCA?
No. Reading account data on someone’s behalf requires FCA authorisation as an AISP, and the provider BankSync connects through, Salt Edge, holds it. You approve access at your bank and read your own data back through your key.
How long does my consent last, and how do I renew it?
UK open banking access lasts 180 days. When it ends, reconnect the bank from the app and approve again at your bank. You can withdraw access at any time from your bank or from BankSync.
What data can I read, and how far back?
Transactions and balances. The first sync reaches back up to 60 days; from then on BankSync keeps adding new transactions, so your history grows for as long as the connection stays active.
What is not available in the UK?
Investment holdings, investment trades and loan details: the UK connection returns transactions and balances only. Payments are never available; the API is read-only.
Is the API read-only?
Yes. The connection your bank grants is read-only: BankSync can read account data, and it cannot move money, make payments or change anything at your bank. Your API key reads the same data, scoped to the permissions you give it.
How is this different from screen-scraping?
You never share your banking password. UK Open Banking sends you to your own bank’s app or website to approve access, and the bank issues a revocable token. Screen-scrapers sign in as you with your stored credentials.
How much does API access cost?
API access starts on Standard at US$7/mo: up to 5 bank connections, 10 API requests a minute and the MCP server. Professional and Business raise the limits. Every plan starts with a 14-day free trial; prices are in USD.
Related reading
- How UK Open Banking works →AISPs, the CMA9, consent and what the framework covers.
- UK bank coverage →Every bank you can connect, with the data each one returns.
- MCP server →The same data in Claude, ChatGPT, Cursor and VS Code.
- API reference →Every endpoint, parameter and response, from the OpenAPI spec.
Make your first call tonight
Connect your UK bank, create a scoped key, and read your own data as JSON.