-
Notifications
You must be signed in to change notification settings - Fork 454
Expand file tree
/
Copy pathapi-aggregators-schema.json
More file actions
329 lines (328 loc) · 11 KB
/
Copy pathapi-aggregators-schema.json
File metadata and controls
329 lines (328 loc) · 11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
{
"title": "API Aggregator",
"type": "object",
"$schema": "http://json-schema.org/draft-06/schema#",
"id": "",
"required": [
"id",
"label",
"website",
"iconUrl",
"countryHQ"
],
"properties": {
"id": {
"title": "ID",
"type": "string",
"pattern": "^[a-z0-9-]+$",
"description": "Unique identifier for the API aggregator (lowercase, alphanumeric and hyphens only)",
"examples": ["salt-edge", "ibanity", "plaid"]
},
"label": {
"title": "Label",
"type": "string",
"description": "Display name of the API aggregator",
"examples": ["Salt Edge", "Ibanity", "Plaid"]
},
"website": {
"title": "Website",
"type": "string",
"format": "uri",
"description": "Primary website URL of the API aggregator",
"examples": ["https://www.saltedge.com/products/psd2_account_info", "https://ibanity.com/"]
},
"iconUrl": {
"title": "Icon URL",
"type": "string",
"format": "uri",
"description": "URL to the company logo or icon image",
"examples": ["https://res.cloudinary.com/banq/image/upload/v1553955664/api_aggregators/salt_edge/icon.jpg"]
},
"developerPortalUrl": {
"title": "Developer Portal URL",
"type": "string",
"format": "uri",
"description": "URL to the developer documentation or API portal",
"examples": ["https://documentation.ibanity.com/xs2a/api", "https://docs.belvo.co/"]
},
"statusUrl": {
"title": "Status Page URL",
"type": ["string", "null"],
"format": "uri",
"description": "URL to the API/platform status page",
"examples": ["https://status.yapily.com/", "https://status.plaid.com/"]
},
"institutionStatusUrl": {
"title": "Institution Status URL",
"type": ["string", "null"],
"format": "uri",
"description": "URL to the institution/bank-specific status page showing connectivity status per bank",
"examples": ["https://status-institutions.yapily.com/"]
},
"twitter": {
"title": "Twitter Handle",
"type": ["string", "null"],
"pattern": "^[A-Za-z0-9_]*$",
"description": "Twitter handle (without the @ symbol), or null if not available",
"examples": ["saltedge", "ibanityhq", "plaid", null]
},
"sourceUrl": {
"title": "Source URL",
"type": ["string", "null"],
"format": "uri",
"description": "URL to an article or source with information about this aggregator",
"examples": ["https://thefintechtimes.com/yolt-open-banking-api/"]
},
"countryHQ": {
"title": "Country HQ",
"type": "string",
"pattern": "^[A-Z]{2}$",
"description": "ISO 3166-1 alpha-2 country code of the headquarters location",
"examples": ["ES", "BE", "GB", "US", "FR"]
},
"networkId": {
"title": "Network ID",
"type": "string",
"pattern": "^[a-z0-9-]+$",
"description": "Alternative network identifier (if different from id)",
"examples": ["neonomics-io"]
},
"companyId": {
"title": "Company ID",
"type": "string",
"description": "ID of the parent company if applicable",
"examples": ["visa", "bankin"]
},
"apideckNetworkId": {
"title": "APIdeck Network ID",
"type": "string",
"pattern": "^[a-z0-9-]+$",
"description": "Network identifier used by APIdeck",
"examples": ["budget-insight", "bridgeapi-io", "finicity"]
},
"verified": {
"title": "Verified",
"type": "boolean",
"description": "Whether the API aggregator has been verified as legitimate and operational",
"examples": [true, false]
},
"marketFocus": {
"title": "Market Focus",
"type": "string",
"description": "Geographic region or market focus of the aggregator",
"examples": ["Latin America", "MENA", "Europe"]
},
"marketCoverage": {
"title": "Market Coverage",
"type": "object",
"description": "Geographic coverage information",
"properties": {
"live": {
"title": "Live Markets",
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"description": "ISO 3166-1 alpha-2 country codes where the service is live",
"examples": [["MX", "CO", "BR"]]
},
"upcoming": {
"title": "Upcoming Markets",
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z]{2}$"
},
"description": "ISO 3166-1 alpha-2 country codes for upcoming launches",
"examples": [["BR", "AR"]]
}
}
},
"description": {
"title": "Description",
"type": "string",
"description": "Brief description of the API aggregator and its services",
"examples": ["Open finance infrastructure for Latin America", "Investment account aggregator for portfolio tracking"]
},
"note": {
"title": "Note",
"type": "string",
"description": "Additional notes or special information about the aggregator",
"examples": ["Aggregator of aggregators, inherits coverage from multiple providers"]
},
"upstreamAggregators": {
"title": "Upstream Aggregators",
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9-]+$"
},
"description": "For meta-aggregators: list of aggregator IDs this service inherits coverage from",
"examples": [["gocardless", "mx", "finicity", "plaid"]]
},
"connectorCount": {
"title": "Connector Count",
"type": "integer",
"minimum": 0,
"description": "Total number of bank/institution connectors supported",
"examples": [98, 250]
},
"brokerageCount": {
"title": "Brokerage Count",
"type": "integer",
"minimum": 0,
"description": "Total number of brokerages supported (for investment aggregators)",
"examples": [24, 50]
},
"integrationCount": {
"title": "Integration Count",
"type": "integer",
"minimum": 0,
"description": "Total number of integrations supported",
"examples": [70, 100]
},
"bankCount": {
"title": "Bank Count",
"type": "integer",
"minimum": 0,
"description": "Total number of banks supported",
"examples": [42, 150]
},
"lastUpdated": {
"title": "Last Updated",
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp of when this data was last updated by a scraper",
"examples": ["2024-01-15T10:30:00Z"]
},
"coverage": {
"title": "Coverage Details",
"type": "object",
"description": "Detailed breakdown of coverage statistics",
"properties": {
"total": {
"type": "integer",
"description": "Total number of institutions covered"
},
"banks": {
"type": "integer",
"description": "Number of banks covered"
},
"investments": {
"type": "integer",
"description": "Number of investment platforms covered"
},
"tradingEnabled": {
"type": "integer",
"description": "Number of institutions with trading enabled"
},
"byCountry": {
"type": "object",
"description": "Institution count by country code",
"additionalProperties": {
"type": "integer"
}
}
},
"additionalProperties": true
},
"mcpServer": {
"title": "MCP Server",
"type": ["object", "null"],
"description": "Model Context Protocol (MCP) server configuration for AI assistant integration",
"properties": {
"type": {
"type": "string",
"enum": ["hosted", "local"],
"description": "Whether the MCP server is hosted (remote SSE) or local (npm package)",
"examples": ["hosted", "local"]
},
"serverUrl": {
"type": ["string", "null"],
"format": "uri",
"description": "URL for hosted MCP servers using SSE transport",
"examples": ["https://api.dashboard.plaid.com/mcp/sse"]
},
"transport": {
"type": "string",
"enum": ["sse", "stdio"],
"description": "Transport protocol used by the MCP server",
"examples": ["sse", "stdio"]
},
"npmPackage": {
"type": ["string", "null"],
"description": "NPM package name for local MCP servers",
"examples": ["@lunchflow/mcp", "@modelcontextprotocol/server-stripe"]
},
"command": {
"type": ["string", "null"],
"description": "Command to run local MCP servers",
"examples": ["npx", "node", "uvx"]
},
"args": {
"type": ["array", "null"],
"items": {
"type": "string"
},
"description": "Arguments to pass to the command",
"examples": [["-y", "@lunchflow/mcp"]]
},
"env": {
"type": ["array", "null"],
"items": {
"type": "string"
},
"description": "Environment variable names required by the MCP server",
"examples": [["LUNCHFLOW_API_KEY"], ["PLAID_CLIENT_ID", "PLAID_SECRET"]]
},
"authType": {
"type": ["string", "null"],
"enum": ["oauth", "api_key", "basic", null],
"description": "Authentication type required for the MCP server",
"examples": ["oauth", "api_key"]
},
"authScope": {
"type": ["string", "null"],
"description": "OAuth scope required for hosted MCP servers",
"examples": ["mcp:dashboard"]
},
"repositoryUrl": {
"type": ["string", "null"],
"format": "uri",
"description": "URL to the MCP server source code repository",
"examples": ["https://github.com/lunchflow/mcp"]
},
"documentationUrl": {
"type": ["string", "null"],
"format": "uri",
"description": "URL to the MCP server documentation",
"examples": ["https://plaid.com/docs/mcp/", "https://docs.lunchflow.app/destinations/mcp"]
},
"smitheryUrl": {
"type": ["string", "null"],
"format": "uri",
"description": "URL to install/configure on Smithery platform",
"examples": ["https://smithery.ai/server/@lunchflow/mcp"]
},
"tools": {
"type": ["array", "null"],
"items": {
"type": "string"
},
"description": "List of tool names provided by the MCP server",
"examples": [["lunchflow_list_accounts", "lunchflow_get_account_transactions"]]
},
"resources": {
"type": ["array", "null"],
"items": {
"type": "string"
},
"description": "List of resource types provided by the MCP server",
"examples": [["accounts", "transactions", "institutions"]]
}
}
}
},
"additionalProperties": false
}