BankSync Workspace API
The Workspace API from BankSync — 1 operation(s) for workspace.
The Workspace API from BankSync — 1 operation(s) for workspace.
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-workspace-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 Workspace 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: Workspace
paths:
/v1/whoami:
get:
operationId: whoami
summary: Describe the current credential
description: Returns the workspace, auth method, scopes, and plan for the authenticated credential. On the Firebase web-session path the workspace comes from the `X-Workspace-ID` header and membership is verified; API keys and OAuth tokens are bound to a single workspace. Answers on every plan (metered at the Standard rate), so a connection can be tested on Free and Starter.
tags:
- Workspace
security:
- apiKey: []
- bearerAuth: []
responses:
'200':
description: The calling credential and its bound workspace.
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- true
data:
type: object
properties:
workspaceId:
type: string
nullable: true
description: The workspace this credential is bound to. Null on a session with no workspace selected.
workspaceName:
type: string
nullable: true
description: Display name of the workspace.
authMethod:
type: string
enum:
- apiKey
- oauth
- firebase
description: 'How the request authenticated: `apiKey` (X-API-Key), `oauth` (Bearer JWT), or `firebase` (web session).'
scopes:
type: array
items:
type: string
description: Scopes granted to this credential (`resource:action`). Firebase sessions receive all scopes.
planTier:
type: string
nullable: true
description: Subscription plan of the workspace (e.g. `free`, `starter`, `professional`, `business`, `enterprise`).
appId:
type: string
nullable: true
description: The OAuth app this token was issued to. Null for API keys, Firebase sessions, and OAuth clients that are not a listed app (e.g. a dynamically registered AI tool).
installId:
type: string
nullable: true
description: The app install this token acts under. Null when the credential is not an app token.
required:
- workspaceId
- workspaceName
- authMethod
- scopes
- planTier
- appId
- installId
description: Identity of the calling credential and its bound workspace. Powers `banksync whoami`, `banksync status`, and the CLI deep-link connect flow.
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 — the caller is not a member of the requested workspace
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.