BankSync Account security API
The Account security API from BankSync — 2 operation(s) for account security.
The Account security API from BankSync — 2 operation(s) for account security.
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-account-security-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 Account security 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: Account security
paths:
/v1/account/security:
get:
operationId: getAccountSecurity
tags:
- Account security
security:
- apiKey: []
- bearerAuth: []
summary: Read your two-step verification status
description: Whether two-step verification is on for the BankSync login this credential acts for, whether a recovery key was saved or used, and when BankSync last verified it. Always your own account; never another member’s.
x-flagbase-capability: auth
x-flagbase-operation: auth.security.status.get
x-flagbase-effects:
- read
x-flagbase-authorization: workspace membership, role, and credential scope enforcement
x-flagbase-access-policy: banksync.automation.account.security.read
x-flagbase-trust-domain: automation
x-flagbase-access-policy-registry-digest: e7ab27792e65105a611aa7ae3908f0d52310d081fa179db6e83aa41a9a645fe0
x-flagbase-permission-catalog-digest: 46efd2554a5de6bc944e9ebe073ab7932062a4d03fd4990d4b55d7a9b89fd6de
x-flagbase-credential-classes:
- api-key
- oauth-app
x-flagbase-tenant-boundary: workspace
x-flagbase-scopes:
- account:read
x-flagbase-service-level: first-class
responses:
'200':
description: Your two-step status
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- true
data:
type: object
properties:
twoFactor:
type: object
properties:
enabled:
type: boolean
description: Two-step verification is on for this BankSync login.
enrolledAt:
type: string
nullable: true
format: date-time
description: When the current authenticator was added.
required:
- enabled
- enrolledAt
recoveryKey:
type: object
properties:
saved:
type: boolean
description: The person confirmed saving a recovery key for this authenticator.
savedAt:
type: string
nullable: true
format: date-time
usedAt:
type: string
nullable: true
format: date-time
description: The latest sign-in with this authenticator's recovery key.
required:
- saved
- savedAt
- usedAt
needsReplacement:
type: boolean
description: The recovery key was used since the authenticator was added; replacing it retires the key.
verifiedAt:
type: string
nullable: true
format: date-time
description: When BankSync last verified the authenticator.
required:
- twoFactor
- recoveryKey
- needsReplacement
- verifiedAt
required:
- success
- data
'400':
description: Invalid input
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 — a missing `account:read` scope, or an installed app
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
'503':
description: The security record could not be read right now; retry
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/account/security/activity:
get:
operationId: listAccountSecurityActivity
tags:
- Account security
security:
- apiKey: []
- bearerAuth: []
summary: List your recent security activity
description: 'Your recent sign-in security events, newest first: two-step verification turned on or off, a recovery key saved or used, a reset by BankSync support. Kinds and times only. Page with `cursor`.'
x-flagbase-capability: auth
x-flagbase-operation: auth.security.activity.list
x-flagbase-effects:
- read
x-flagbase-authorization: workspace membership, role, and credential scope enforcement
x-flagbase-access-policy: banksync.automation.account.security.read
x-flagbase-trust-domain: automation
x-flagbase-access-policy-registry-digest: e7ab27792e65105a611aa7ae3908f0d52310d081fa179db6e83aa41a9a645fe0
x-flagbase-permission-catalog-digest: 46efd2554a5de6bc944e9ebe073ab7932062a4d03fd4990d4b55d7a9b89fd6de
x-flagbase-credential-classes:
- api-key
- oauth-app
x-flagbase-tenant-boundary: workspace
x-flagbase-scopes:
- account:read
x-flagbase-service-level: first-class
parameters:
- schema:
type: integer
minimum: 1
maximum: 50
description: Events per page (default 20, maximum 50)
required: false
description: Events per page (default 20, maximum 50)
name: limit
in: query
- schema:
type: string
minLength: 1
maxLength: 200
description: '`nextCursor` from the previous page'
required: false
description: '`nextCursor` from the previous page'
name: cursor
in: query
responses:
'200':
description: Your recent security activity
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
enum:
- true
data:
type: object
properties:
items:
type: array
items:
type: object
properties:
id:
type: string
kind:
type: string
enum:
- factor_added
- factor_removed
- recovery_key_saved
- recovery_key_used
- support_mfa_reset
description: 'factor_added / factor_removed: two-step turned on or off; recovery_key_saved / recovery_key_used; support_mfa_reset: BankSync support removed it.'
actor:
type: string
enum:
- self
- support
occurredAt:
type: string
format: date-time
required:
- id
- kind
- actor
- occurredAt
nextCursor:
type: string
nullable: true
description: Pass as `cursor` for the next, older page.
required:
- items
- nextCursor
required:
- success
- data
'400':
description: Invalid input
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 — a missing `account:read` scope, or an installed app
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
'503':
description: The security record could not be read right now; retry
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.