BankSync Integrations API
The Integrations API from BankSync — 2 operation(s) for integrations.
The Integrations API from BankSync — 2 operation(s) for integrations.
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/banksync-io:banksync-io-integrations-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.2.0
info:
title: BankSync Integrations API
version: 1.0.0
description: Connect bank accounts and sync financial data to Notion, Google Sheets, and Airtable. Authenticate with an API key (X-API-Key header) or a Firebase ID token (Bearer). Every /v1 request counts toward a per-workspace, per-minute rate limit set by the plan; on Free and Starter only GET /v1/whoami answers (metered at the Standard rate) and every other /v1 operation returns 403 (Standard 10, Professional 20, Business 30). Over the limit, any operation returns 429 with Retry-After, X-RateLimit-Limit and X-RateLimit-Policy headers; wait Retry-After seconds before retrying. See https://banksync.io/docs/api/rest-api#rate-limits.
contact:
name: BankSync Support
url: https://banksync.io
servers:
- url: https://api.banksync.io
description: Production
tags:
- name: Integrations
paths:
/v1/integrations:
get:
operationId: listIntegrations
summary: List connected integrations
description: List integrations connected to the current workspace. Pass `?scope=family` to include integrations from every client workspace you cover. Family scope requires admin+ role and is only valid on a top-level workspace. Provider auth tokens are stripped from all responses.
tags:
- Integrations
security:
- apiKey: []
- bearerAuth: []
parameters:
- schema:
type: string
enum:
- self
- family
description: 'Resource scope. `self` (default) returns this workspace only. `family` includes every client workspace you cover; each row gains `workspaceId` + `portal: { id, name, icon } | null`. Admin+ only, top-level workspaces only.'
required: false
description: 'Resource scope. `self` (default) returns this workspace only. `family` includes every client workspace you cover; each row gains `workspaceId` + `portal: { id, name, icon } | null`. Admin+ only, top-level workspaces only.'
name: scope
in: query
responses:
'200':
description: List of integrations (auth tokens excluded). With `scope=family`, each row additionally carries `workspaceId` and `portal`.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- true
data:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
type:
type: string
enum:
- notion
- google_sheets
- airtable
- excel
- database
- webhook
- ynab
iconUrl:
type: string
databaseIntegration:
type: object
additionalProperties:
nullable: true
webhookIntegration:
type: object
additionalProperties:
nullable: true
ynabIntegration:
type: object
additionalProperties:
nullable: true
icon:
type: string
order:
type: number
createdAt:
type: string
updatedAt:
type: string
required:
- id
- name
- type
- iconUrl
- order
- createdAt
- updatedAt
required:
- success
- data
'400':
description: Invalid `scope` value, or `scope=family` was requested against a client workspace you cover
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: string
code:
type: string
recovery:
oneOf:
- type: object
properties:
action:
type: string
enum:
- retry
afterSeconds:
type: integer
minimum: 1
maximum: 86400
required:
- action
- afterSeconds
- type: object
properties:
action:
type: string
enum:
- restart_pagination
required:
- action
- type: object
properties:
action:
type: string
enum:
- resync
required:
- action
- type: object
properties:
action:
type: string
enum:
- reconnect
required:
- action
- type: object
properties:
action:
type: string
enum:
- contact_support
required:
- action
referenceId:
type: string
details:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
required:
- message
required:
- success
- error
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: string
code:
type: string
recovery:
oneOf:
- type: object
properties:
action:
type: string
enum:
- retry
afterSeconds:
type: integer
minimum: 1
maximum: 86400
required:
- action
- afterSeconds
- type: object
properties:
action:
type: string
enum:
- restart_pagination
required:
- action
- type: object
properties:
action:
type: string
enum:
- resync
required:
- action
- type: object
properties:
action:
type: string
enum:
- reconnect
required:
- action
- type: object
properties:
action:
type: string
enum:
- contact_support
required:
- action
referenceId:
type: string
details:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
required:
- message
required:
- success
- error
'403':
description: Forbidden — `scope=family` requires admin+ role
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: string
code:
type: string
recovery:
oneOf:
- type: object
properties:
action:
type: string
enum:
- retry
afterSeconds:
type: integer
minimum: 1
maximum: 86400
required:
- action
- afterSeconds
- type: object
properties:
action:
type: string
enum:
- restart_pagination
required:
- action
- type: object
properties:
action:
type: string
enum:
- resync
required:
- action
- type: object
properties:
action:
type: string
enum:
- reconnect
required:
- action
- type: object
properties:
action:
type: string
enum:
- contact_support
required:
- action
referenceId:
type: string
details:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
required:
- message
required:
- success
- error
/v1/integrations/{iid}:
delete:
operationId: deleteIntegration
summary: Remove an integration
description: 'Moves the integration to trash: it is disabled and every feed sending to it pauses until it is restored (a feed you paused stays paused). It can be restored from Trash in the app for 30 days; then its provider access is revoked and it is deleted permanently.'
tags:
- Integrations
security:
- apiKey: []
- bearerAuth: []
parameters:
- schema:
type: string
description: Integration ID
required: true
description: Integration ID
name: iid
in: path
responses:
'200':
description: Integration moved to trash
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- true
data:
type: object
properties:
deleted:
type: boolean
enum:
- true
required:
- deleted
required:
- success
- data
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: string
code:
type: string
recovery:
oneOf:
- type: object
properties:
action:
type: string
enum:
- retry
afterSeconds:
type: integer
minimum: 1
maximum: 86400
required:
- action
- afterSeconds
- type: object
properties:
action:
type: string
enum:
- restart_pagination
required:
- action
- type: object
properties:
action:
type: string
enum:
- resync
required:
- action
- type: object
properties:
action:
type: string
enum:
- reconnect
required:
- action
- type: object
properties:
action:
type: string
enum:
- contact_support
required:
- action
referenceId:
type: string
details:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
required:
- message
required:
- success
- error
'403':
description: Forbidden
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: string
code:
type: string
recovery:
oneOf:
- type: object
properties:
action:
type: string
enum:
- retry
afterSeconds:
type: integer
minimum: 1
maximum: 86400
required:
- action
- afterSeconds
- type: object
properties:
action:
type: string
enum:
- restart_pagination
required:
- action
- type: object
properties:
action:
type: string
enum:
- resync
required:
- action
- type: object
properties:
action:
type: string
enum:
- reconnect
required:
- action
- type: object
properties:
action:
type: string
enum:
- contact_support
required:
- action
referenceId:
type: string
details:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
required:
- message
required:
- success
- error
'404':
description: Not found
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- false
error:
type: string
code:
type: string
recovery:
oneOf:
- type: object
properties:
action:
type: string
enum:
- retry
afterSeconds:
type: integer
minimum: 1
maximum: 86400
required:
- action
- afterSeconds
- type: object
properties:
action:
type: string
enum:
- restart_pagination
required:
- action
- type: object
properties:
action:
type: string
enum:
- resync
required:
- action
- type: object
properties:
action:
type: string
enum:
- reconnect
required:
- action
- type: object
properties:
action:
type: string
enum:
- contact_support
required:
- action
referenceId:
type: string
details:
type: array
items:
type: object
properties:
field:
type: string
message:
type: string
required:
- message
required:
- success
- error
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: X-API-Key
description: API key — pass in the X-API-Key header. Obtain from Developer Settings in the BankSync app.
bearerAuth:
type: http
scheme: bearer
description: Firebase ID token — pass as a Bearer token in the Authorization header.