{"openapi":"3.1.0","info":{"title":"Redbark API","version":"1.0.0","description":"REST API for accessing bank accounts, transactions, and connections."},"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API key authentication. Use: Authorization: Bearer rbk_live_..."}},"schemas":{},"parameters":{}},"paths":{"/health":{"get":{"tags":["Health"],"responses":{"200":{"description":"Service is healthy","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"required":["status"]}}}}}}},"/v1/accounts":{"get":{"tags":["Accounts"],"security":[{"Bearer":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"offset","in":"query"}],"responses":{"200":{"description":"List of accounts","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"connectionId":{"type":"string"},"provider":{"type":"string","nullable":true},"name":{"type":"string"},"type":{"type":"string"},"institutionName":{"type":"string","nullable":true},"accountNumber":{"type":"string","nullable":true},"currency":{"type":"string"}},"required":["id","connectionId","provider","name","type","institutionName","accountNumber","currency"]}},"pagination":{"type":"object","properties":{"total":{"type":"number"},"limit":{"type":"number"},"offset":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["total","limit","offset","hasMore"]}},"required":["data","pagination"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}}}}},"/v1/balances":{"get":{"tags":["Balances"],"security":[{"Bearer":[]}],"parameters":[{"schema":{"type":"string","description":"Comma-separated list of account UUIDs (max 100)","example":"uuid1,uuid2,uuid3"},"required":true,"description":"Comma-separated list of account UUIDs (max 100)","name":"accountIds","in":"query"}],"responses":{"200":{"description":"Account balances","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"accountId":{"type":"string"},"currentBalance":{"type":"string","nullable":true},"availableBalance":{"type":"string","nullable":true},"currency":{"type":"string","nullable":true}},"required":["accountId","currentBalance","availableBalance","currency"]}}},"required":["data"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"503":{"description":"Provider error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}}}}},"/v1/categories":{"get":{"tags":["Categories"],"security":[{"Bearer":[]}],"responses":{"200":{"description":"List of transaction categories","content":{"application/json":{"schema":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"}},"required":["key","label"]}}},"required":["categories"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}}}}},"/v1/transactions":{"get":{"tags":["Transactions"],"security":[{"Bearer":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"offset","in":"query"},{"schema":{"type":"string"},"required":true,"name":"connectionId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"accountId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"from","in":"query"},{"schema":{"type":"string"},"required":false,"name":"to","in":"query"}],"responses":{"200":{"description":"List of transactions","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"accountId":{"type":"string"},"accountName":{"type":"string"},"status":{"type":"string"},"date":{"type":"string"},"datetime":{"type":"string","nullable":true},"description":{"type":"string"},"amount":{"type":"string"},"direction":{"type":"string"},"category":{"type":"string","nullable":true},"merchantName":{"type":"string","nullable":true},"merchantCategoryCode":{"type":"string","nullable":true}},"required":["id","accountId","accountName","status","date","datetime","description","amount","direction","category","merchantName","merchantCategoryCode"]}},"pagination":{"type":"object","properties":{"total":{"type":"number"},"limit":{"type":"number"},"offset":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["total","limit","offset","hasMore"]}},"required":["data","pagination"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"503":{"description":"Provider error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}}}}},"/v1/connections":{"get":{"tags":["Connections"],"security":[{"Bearer":[]}],"responses":{"200":{"description":"List of connections","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"provider":{"type":"string"},"category":{"type":"string"},"institutionId":{"type":"string"},"institutionName":{"type":"string"},"institutionLogo":{"type":"string","nullable":true},"status":{"type":"string"},"lastRefreshedAt":{"type":"string","nullable":true},"createdAt":{"type":"string"}},"required":["id","provider","category","institutionId","institutionName","institutionLogo","status","lastRefreshedAt","createdAt"]}}},"required":["data"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}}}}},"/v1/holdings":{"get":{"tags":["Holdings"],"security":[{"Bearer":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"connectionId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"accountId","in":"query"}],"responses":{"200":{"description":"List of holdings","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"accountId":{"type":"string"},"accountName":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string","nullable":true},"exchange":{"type":"string","nullable":true},"currency":{"type":"string"},"quantity":{"type":"string"},"averagePrice":{"type":"string","nullable":true},"currentPrice":{"type":"string","nullable":true},"marketValue":{"type":"string","nullable":true},"unrealizedPnl":{"type":"string","nullable":true}},"required":["id","accountId","accountName","symbol","name","exchange","currency","quantity","averagePrice","currentPrice","marketValue","unrealizedPnl"]}}},"required":["data"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"403":{"description":"Professional plan required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"503":{"description":"Provider error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}}}}},"/v1/trades":{"get":{"tags":["Trades"],"security":[{"Bearer":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"offset","in":"query"},{"schema":{"type":"string"},"required":true,"name":"connectionId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"accountId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"from","in":"query"},{"schema":{"type":"string"},"required":false,"name":"to","in":"query"}],"responses":{"200":{"description":"List of trades","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"accountId":{"type":"string"},"accountName":{"type":"string"},"symbol":{"type":"string"},"name":{"type":"string","nullable":true},"type":{"type":"string"},"quantity":{"type":"string"},"price":{"type":"string"},"currency":{"type":"string"},"totalAmount":{"type":"string"},"fees":{"type":"string","nullable":true},"tradeDate":{"type":"string"},"settlementDate":{"type":"string","nullable":true},"description":{"type":"string","nullable":true}},"required":["id","accountId","accountName","symbol","name","type","quantity","price","currency","totalAmount","fees","tradeDate","settlementDate","description"]}},"pagination":{"type":"object","properties":{"total":{"type":"number"},"limit":{"type":"number"},"offset":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["total","limit","offset","hasMore"]}},"required":["data","pagination"]}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"403":{"description":"Professional plan required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}},"503":{"description":"Provider error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["message"]}},"required":["error"]}}}}}}}}}