Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/lunch-flow:lunch-flow-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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.1.0
info:
title: Lunch Flow API
version: '2026-10-27'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-27: 19 operation(s) read from 14 public documentation page(s) (each
operation names its page in x-source). This is not the provider''s published contract; Lunch Flow has published no machine-readable contract
that the pipeline could find. Engine: local.'
x-evidence-tiers:
code-example: 12
documentation: 7
pages-with-code: 14
pages-read: 14
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-27'
x-generator: generate-contract-from-docs.py
x-engine: local
x-sources:
- https://www.lunchflow.app/docs/api/personal-api-overview
- https://www.lunchflow.app/docs/api/platform-api-overview
- https://www.lunchflow.app/docs/api/platform-api/deleteUser
- https://www.lunchflow.app/docs/api/platform-api/oauthToken
- https://www.lunchflow.app/docs/api/platform-api/updateUser
- https://www.lunchflow.app/docs/api/personal-api/listAccounts
- https://www.lunchflow.app/docs/api/platform-api/registerUser
- https://www.lunchflow.app/docs/api/platform-api/oauthAuthorize
- https://www.lunchflow.app/docs/api/personal-api/getAccountBalance
- https://www.lunchflow.app/docs/api/personal-api/getAccountHoldings
- https://www.lunchflow.app/docs/api/platform-api/platformGetBalance
- https://www.lunchflow.app/docs/api/platform-api/platformGetHoldings
- https://www.lunchflow.app/docs/api/platform-api/platformListAccounts
- https://www.lunchflow.app/docs/api/personal-api/getAccountTransactions
servers:
- url: https://lunchflow.app
paths:
/accounts:
get:
operationId: get_accounts
tags:
- Accounts
summary: List accounts
x-source: https://www.lunchflow.app/docs/api/personal-api-overview
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/accounts/{id}/balance:
get:
operationId: get_accounts_id_balance
tags:
- Accounts
summary: Get the balance for an account
x-source: https://www.lunchflow.app/docs/api/personal-api-overview
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/accounts/{id}/holdings:
get:
operationId: get_accounts_id_holdings
tags:
- Accounts
summary: Get investment holdings for an account
x-source: https://www.lunchflow.app/docs/api/personal-api-overview
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/accounts/{id}/transactions:
get:
operationId: get_accounts_id_transactions
tags:
- Accounts
summary: Get transactions for an account
x-source: https://www.lunchflow.app/docs/api/personal-api-overview
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/platform/oauth/authorize:
get:
operationId: get_api_platform_oauth_authorize
tags:
- Api
summary: Redirect the user to the authorize endpoint
x-source: https://www.lunchflow.app/docs/api/platform-api-overview
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/platform/oauth/token:
post:
operationId: post_api_platform_oauth_token
tags:
- Api
summary: POST /api/platform/oauth/token
x-source: https://www.lunchflow.app/docs/api/platform-api-overview
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiPlatformOauthTokenRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST https://www.lunchflow.app/api/platform/oauth/token -H \"Content-Type: application/json\" -d '{ \n \"grant_type\"\
: \"refresh_token\", \n \"refresh_token\": \"$REFRESH_TOKEN\", \n \"client_id\": \"$CLIENT_ID\", \n \"client_secret\": \"$CLIENT_SECRET\"\
\ \n }' \n For public (self-hosted) clients, omit the client_secret . \n Endpoints \n Browse the interactive reference for each endpoint\
\ in the Users and Accounts "
/api/platform/v1/accounts:
get:
operationId: get_api_platform_v1_accounts
tags:
- Api
summary: Access data
x-source: https://www.lunchflow.app/docs/api/platform-api-overview
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/platform/v1/accounts/string/balance:
get:
operationId: get_api_platform_v1_accounts_string_balance
tags:
- Api
summary: GET /api/platform/v1/accounts/string/balance
x-source: https://www.lunchflow.app/docs/api/platform-api/platformGetBalance
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiPlatformV1AccountsStringBalanceResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl JavaScript Go Python Java C# curl -X GET \"https://example.com/api/platform/v1/accounts/string/balance\" 200 401 403 404\
\ 500 { \n \"balance\" : { \n \"amount\" : 0 , \n \"currency\" : \"string\" \n } \n } { \n \"error\" : \"string\" , \n \"message\" :\
\ \"string\" \n } { \n \"error\" : \"string\" , \n \"message\" : \"string\" \n } { \n \"error\" : \"string\" , \n \"message\" : \"string\"\
\ \n } { \n \"error\" : \"string\" , \n \"message\" : \"string\" \n"
/api/platform/v1/accounts/string/holdings:
get:
operationId: get_api_platform_v1_accounts_string_holdings
tags:
- Api
summary: GET /api/platform/v1/accounts/string/holdings
x-source: https://www.lunchflow.app/docs/api/platform-api/platformGetHoldings
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiPlatformV1AccountsStringHoldingsResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl JavaScript Go Python Java C# curl -X GET \"https://example.com/api/platform/v1/accounts/string/holdings\" 200 401 403 404\
\ 500 501 { \n \"holdings\" : [ \n { \n \"security\" : { \n \"name\" : \"string\" , \n \"currency\" : \"string\" , \n \"tickerSymbol\"\
\ : \"string\" , \n \"figi\" : \"string\" , \n \"cusp\" : \"string\" , \n \"isin\" : \"string\" \n }, \n \"quantity\" : 0 , \n \"price\"\
\ : 0 , \n \"value\" : 0 , \n \"costBasis\" : 0 , \n \"curren"
/api/platform/v1/accounts/{accountid}/transactions:
get:
operationId: get_api_platform_v1_accounts_accountid_transactions
tags:
- Api
summary: GET /api/platform/v1/accounts/{accountId}/transactions
x-source: https://www.lunchflow.app/docs/api/platform-api-overview
parameters:
- name: accountid
in: path
required: true
schema:
type: string
- name: include_raw
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl \"https://www.lunchflow.app/api/platform/v1/accounts/123/transactions?include_raw=true\" -H \"Authorization: Bearer $ACCESS_TOKEN\
\ \" \n { \n \"id\" : \"tx_abc\" , \n \"accountId\" : 123 , \n \"amount\" : -12.5 , \n \"currency\" : \"GBP\" , \n \"date\" : \"2026-10-01\"\
\ , \n \"merchant\" : \"Coffee Shop\" , \n \"raw\" : { \n \"gocardless\" : { \"transactionId\" : \"...\" , \"bookingDate\" : \"2026-10-01\"\
\ , \"...\" : \"...\" } \n } \n } \n The "
/api/platform/v1/users:
post:
operationId: post_api_platform_v1_users
tags:
- Api
summary: POST /api/platform/v1/users
x-source: https://www.lunchflow.app/docs/api/platform-api-overview
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiPlatformV1UsersRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl -X POST https://www.lunchflow.app/api/platform/v1/users -u \" $CLIENT_ID : $CLIENT_SECRET \" -H \"Content-Type: application/json\"\
\ -d '{\"email\": \"user@example.com\"}' Connect bank via OAuth Redirect the user to the authorize endpoint. They sign in, connect\
\ their bank, and are redirected back with a code . GET https://www.lunchflow.app/api/platform/oauth/authorize \n ?client_id=$CLIENT_ID\
\ \n &redi"
/api/platform/v1/users/string:
delete:
operationId: delete_api_platform_v1_users_string
tags:
- Api
summary: DELETE /api/platform/v1/users/string
x-source: https://www.lunchflow.app/docs/api/platform-api/deleteUser
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl JavaScript Go Python Java C# curl -X DELETE \"https://example.com/api/platform/v1/users/string\" 204 401 404 Empty { \n\
\ \"error\" : \"string\" , \n \"message\" : \"string\" \n } { \n \"error\" : \"string\" , \n \"message\" : \"string\" \n } Update a\
\ user PUT Updates a user's connection limits. Start authorization flow GET Redirects the user to the Lunch Flow login page. After sign-in\
\ and bank connection, the user is"
put:
operationId: put_api_platform_v1_users_string
tags:
- Api
summary: PUT /api/platform/v1/users/string
x-source: https://www.lunchflow.app/docs/api/platform-api/updateUser
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PutApiPlatformV1UsersStringRequest'
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PutApiPlatformV1UsersStringResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl JavaScript Go Python Java C# curl -X PUT \"https://example.com/api/platform/v1/users/string\" \\ -H \"Content-Type: application/json\"\
\ \\ -d '{ \"limits\": { \"us_ca_connections_limit\": 0, \"international_connections_limit\": 0 } }' 200 401 404 { \n \"user\" : { \n\
\ \"user_id\" : \"string\" , \n \"external_user_id\" : \"string\" , \n \"email\" : \"string\" , \n \"limits\" : { \n \"us_ca_connections_limit\"\
\ : 0 , \n \"internationa"
/api/v1/accounts:
get:
operationId: get_api_v1_accounts
tags:
- Api
summary: GET /api/v1/accounts
x-source: https://www.lunchflow.app/docs/api/personal-api-overview
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl https://lunchflow.app/api/v1/accounts -H \"x-api-key: YOUR_API_KEY\" \n You can generate API keys from your Lunch Flow\
\ dashboard . \n Base URL \n https://lunchflow.app/api/v1 \n Endpoints \n Method Path Description GET /accounts List all connected bank\
\ accounts GET /accounts/:id/transactions Get transactions for an account GET /accounts/:id/balance Get the balance for an account GET\
\ /accounts/:id/h"
/api/v1/accounts/string/balance:
get:
operationId: get_api_v1_accounts_string_balance
tags:
- Api
summary: GET /api/v1/accounts/string/balance
x-source: https://www.lunchflow.app/docs/api/personal-api/getAccountBalance
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiV1AccountsStringBalanceResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl JavaScript Go Python Java C# curl -X GET \"https://example.com/api/v1/accounts/string/balance\" 200 400 401 403 404 500\
\ 503 { \n \"balance\" : { \n \"amount\" : 0 , \n \"currency\" : \"string\" \n } \n } { \n \"error\" : \"string\" , \n \"message\" :\
\ \"string\" \n } { \n \"error\" : \"Unauthorized\" , \n \"message\" : \"Authentication required. Provide x-api-key header or Authorization:\
\ Bearer token.\" \n } { \n \"error\" : \"Forbid"
/api/v1/accounts/string/holdings:
get:
operationId: get_api_v1_accounts_string_holdings
tags:
- Api
summary: GET /api/v1/accounts/string/holdings
x-source: https://www.lunchflow.app/docs/api/personal-api/getAccountHoldings
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiV1AccountsStringHoldingsResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl JavaScript Go Python Java C# curl -X GET \"https://example.com/api/v1/accounts/string/holdings\" 200 401 403 404 500 501\
\ { \n \"holdings\" : [ \n { \n \"security\" : { \n \"name\" : \"string\" , \n \"currency\" : \"string\" , \n \"tickerSymbol\" : \"\
string\" , \n \"figi\" : \"string\" , \n \"cusp\" : \"string\" , \n \"isin\" : \"string\" \n }, \n \"quantity\" : 0 , \n \"price\" :\
\ 0 , \n \"value\" : 0 , \n \"costBasis\" : 0 , \n \"currency\" : \"st"
/api/v1/accounts/{accountid}/transactions:
get:
operationId: get_api_v1_accounts_accountid_transactions
tags:
- Api
summary: GET /api/v1/accounts/{accountId}/transactions
x-source: https://www.lunchflow.app/docs/api/personal-api-overview
parameters:
- name: accountid
in: path
required: true
schema:
type: string
- name: include_raw
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl \"https://lunchflow.app/api/v1/accounts/123/transactions?include_raw=true\" -H \"x-api-key: YOUR_API_KEY\" \n { \n \"\
id\" : \"tx_abc\" , \n \"accountId\" : 123 , \n \"amount\" : -12.5 , \n \"currency\" : \"GBP\" , \n \"date\" : \"2026-10-01\" , \n \"\
merchant\" : \"Coffee Shop\" , \n \"raw\" : { \n \"gocardless\" : { \"transactionId\" : \"...\" , \"bookingDate\" : \"2026-10-01\" ,\
\ \"...\" : \"...\" } \n } \n } \n The key is the provider that c"
/oauth/token:
post:
operationId: post_oauth_token
tags:
- Oauth
summary: Exchange code or refresh token
x-source: https://www.lunchflow.app/docs/api/platform-api-overview
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/users:
post:
operationId: post_users
tags:
- Users
summary: Register a user
x-source: https://www.lunchflow.app/docs/api/platform-api-overview
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
components:
schemas:
PostApiPlatformOauthTokenRequest:
type: object
properties:
grant_type:
type: string
refresh_token:
type: string
client_id:
type: string
client_secret:
type: string
GetApiPlatformV1AccountsStringBalanceResponse:
type: object
properties:
balance:
type: object
properties:
amount:
type: integer
currency:
type: string
GetApiPlatformV1AccountsStringHoldingsResponse:
type: object
properties:
holdings:
type: array
items:
type: object
properties:
security:
type: object
properties:
name:
type: string
currency:
type: string
tickerSymbol:
type: string
figi:
type: string
cusp:
type: string
isin:
type: string
quantity:
type: integer
price:
type: integer
value:
type: integer
costBasis:
type: integer
currency:
type: string
raw:
type: object
properties:
property1:
type:
- string
- 'null'
property2:
type:
- string
- 'null'
totalValue:
type: integer
currency:
type: string
PostApiPlatformV1UsersRequest:
type: object
properties:
email:
type: string
PutApiPlatformV1UsersStringRequest:
type: object
properties:
limits:
type: object
properties:
us_ca_connections_limit:
type: integer
international_connections_limit:
type: integer
PutApiPlatformV1UsersStringResponse:
type: object
properties:
user:
type: object
properties:
user_id:
type: string
external_user_id:
type: string
email:
type: string
limits:
type: object
properties:
us_ca_connections_limit:
type: integer
international_connections_limit:
type: integer
GetApiV1AccountsStringBalanceResponse:
type: object
properties:
balance:
type: object
properties:
amount:
type: integer
currency:
type: string
GetApiV1AccountsStringHoldingsResponse:
type: object
properties:
holdings:
type: array
items:
type: object
properties:
security:
type: object
properties:
name:
type: string
currency:
type: string
tickerSymbol:
type: string
figi:
type: string
cusp:
type: string
isin:
type: string
quantity:
type: integer
price:
type: integer
value:
type: integer
costBasis:
type: integer
currency:
type: string
raw:
type: object
properties:
property1:
type:
- string
- 'null'
property2:
type:
- string
- 'null'
totalValue:
type: integer
currency:
type: string
securitySchemes:
apiKey:
type: apiKey
in: header
name: x-api-key
security:
- apiKey: []
tags:
- name: Accounts
- name: Api
- name: Oauth
- name: Users