Lunch Flow API

Lunch Flow API as documented publicly: 19 operations. Contract generated from the documentation by API Evangelist (2026-10-27); not the provider's own document.

Operations 19

GET /accounts List accounts #
GET /accounts/{id}/balance Get the balance for an account #
GET /accounts/{id}/holdings Get investment holdings for an account #
GET /accounts/{id}/transactions Get transactions for an account #
GET /api/platform/oauth/authorize Redirect the user to the authorize endpoint #
POST /api/platform/oauth/token POST /api/platform/oauth/token #
GET /api/platform/v1/accounts Access data #
GET /api/platform/v1/accounts/string/balance GET /api/platform/v1/accounts/string/balance #
GET /api/platform/v1/accounts/string/holdings GET /api/platform/v1/accounts/string/holdings #
GET /api/platform/v1/accounts/{accountid}/transactions GET /api/platform/v1/accounts/{accountId}/transactions #
POST /api/platform/v1/users POST /api/platform/v1/users #
DELETE /api/platform/v1/users/string DELETE /api/platform/v1/users/string #
PUT /api/platform/v1/users/string PUT /api/platform/v1/users/string #
GET /api/v1/accounts GET /api/v1/accounts #
GET /api/v1/accounts/string/balance GET /api/v1/accounts/string/balance #
GET /api/v1/accounts/string/holdings GET /api/v1/accounts/string/holdings #
GET /api/v1/accounts/{accountid}/transactions GET /api/v1/accounts/{accountId}/transactions #
POST /oauth/token Exchange code or refresh token #
POST /users Register a user #

Work with this as data

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 Specification

lunch-flow-openapi-generated.yml Raw ↑
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