ZenLedger Aggregator Suite API

Partner/aggregator REST API (v1) that creates an aggregated portfolio from a set of exchange and wallet accounts, returns the resulting tax calculation for that portfolio by aggregation code, and serves the supported source and currency reference data. Authenticated with the same OAuth 2.0 client_credentials JWT as the Compliance Suite.

Operations 5

POST /oauth/token JWT request #
POST /aggregators/api/v1/portfolios CREATE portfolio #
GET /aggregators/api/v1/taxes Taxes #
GET /aggregators/api/v1/sources GET sources #
GET /aggregators/api/v1/currencies GET currencies #

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/zenledger-aggregator-suite-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zenledger-aggregator-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ZenLedger Aggregator Suite API
  version: v1
  description: 'REST surface of the ZenLedger Aggregator Suite — the partner/aggregator API for creating a portfolio
    from a set of exchange and wallet accounts, retrieving the resulting tax calculation, and reading the supported
    source and currency reference data.


    DERIVED, NOT PUBLISHED BY THE PROVIDER. ZenLedger publishes no OpenAPI. This document was mechanically derived
    by API Evangelist from the first-party Postman collection "Aggregator Suite: REST API Reference", published
    by ZenLedger at https://docs.zenledger.io/aggregators/rest-api/v1/aggregators_api.postman_collection.json and
    saved verbatim in this repo at postman/zenledger-aggregators-v1.postman_collection.json. Every path, method,
    header, documented parameter, example request body and example response below is carried over from that collection;
    nothing was invented. Request/response schemas are typed as generic objects because the collection carries examples,
    not schemas.'
  contact:
    name: ZenLedger
    url: https://zenledger.io/contact-us/
    email: support@zenledger.io
  termsOfService: https://zenledger.io/legal/
  x-generated-by: API Evangelist enrichment pipeline (derived from the provider-published Postman collection)
  x-source: postman/zenledger-aggregators-v1.postman_collection.json
  x-source-url: https://docs.zenledger.io/aggregators/rest-api/v1/aggregators_api.postman_collection.json
servers:
- url: https://api.zenledger.io
  description: ZenLedger production API host. The published collection resolves {{base_url}} to https://api.zenledger.io
    in every saved example response.
tags:
- name: Authentication
  description: OAuth 2.0 client_credentials token issuance.
- name: Portfolios
  description: Create an aggregated portfolio from a set of accounts.
- name: Taxes
  description: Retrieve the tax calculation for an aggregated portfolio.
- name: Supported Exchanges and Wallets
  description: Supported exchange/wallet source reference data.
- name: Supported Currencies
  description: Currency reference data.
paths:
  /oauth/token:
    post:
      operationId: jwtRequest
      summary: JWT request
      description: "The server response can vary based on the validity of the provided POST body:\n\n- **Success\
        \ (HTTP status 200):**\n    - **Headers:** The response includes various headers such as `Content-Type`,\
        \ `Cache-Control`, `Expires`, and more.\n    - **Body:** The response body is a JSON object containing the\
        \ `access_token`, `token_type`, `expires_in`, and `scope` fields. The `access_token` is the JWT that should\
        \ be included in the `Authorization` header for subsequent API requests.\n- **Unauthorized (HTTP status\
        \ 401):**\n    - **Headers:** The response includes various headers such as `Content-Type`, `Cache-Control`,\
        \ `Expires`, and more.\n    - **Body:** The response body is a JSON object containing the `error` and `error_description`\
        \ fields, indicating an invalid client or failed authentication.\n- **Bad Request (HTTP status 400):**\n\
        \    - **Headers:** The response includes various headers such as `Content-Type`, `Cache-Control`, `Expires`,\
        \ and more.\n    - **Body:** The response body is a JSON object containing the `error` and `error_description`\
        \ fields, indicating an invalid request."
      tags:
      - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              client_id: '{{oauth_client_id}}'
              client_secret: '{{oauth_client_secret}}'
              grant_type: client_credentials
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                JWT_request_success:
                  value:
                    access_token: access_token
                    token_type: Bearer
                    expires_in: 1800
                    scope: public
                    created_at: 1686752196
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
              examples:
                JWT_request_invalid_client:
                  value:
                    error: invalid_client
                    error_description: Client authentication failed due to unknown client, no client authentication
                      included, or unsupported authentication method.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
              examples:
                JWT_request_invalid_request:
                  value:
                    error: invalid_request
                    error_description: 'Missing required parameter: grant_type.'
      security: []
      x-postman-request: '{{base_url}}/oauth/token'
  /aggregators/api/v1/portfolios:
    post:
      operationId: createPortfolio
      summary: CREATE portfolio
      description: '### POST **/portfolios**


        **Creates** a new portfolio to be later linked to a new user.


        This endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.


        ### Request


        ##### QUERY PARAMETERS


        > NONE


        ##### BODY


        *In JSON format


        > **portfolio** `object` Object containing a list of wallets with the following properties.

        >

        >> **blockchain** (optional) `string` Blockchain of the wallet

        >>

        >> **coin** `string` Cryptocurrency symbol

        >>

        >> **address** `string` Wallet address.

        >>

        >> **display_name** (optional) `string` if set, Name used for identifying the source in UI.


        ##### RESPONSE `200`


        ##### RESPONSE DATA


        > **api_version** `string` Version of the targeted API

        >

        > **data** `string` Wrapper for response data (See response example)'
      tags:
      - Portfolios
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              portfolio:
              - blockchain: ethereum
                coin: eth
                address: '0xc5689793548164f7D6B5477EEE6697DF6F3C2843'
                display_name: Eth wallet
              - blockchain: bitcoin
                coin: btc
                address: 3Df7budise9ws3vzPADMbN5XA4JJZ8BuUR
                display_name: BTC wallet
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                CREATE_portfolio_success:
                  value:
                    api_version: '1.0'
                    data:
                      signup_url: https://app.zenledger.io/new_sign_up?aggref=AGGREF&aggcode=AGGREF7bfa64c5d52e
                      aggcode: AGGREF7bfa64c5d52e
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
              examples:
                CREATE_portfolio_can_not_create:
                  value:
                    api_version: '1.0'
                    data: []
                    errors:
                      code: ZENAGG-PFLPST-AA1
                      message: Could not create portfolio
      security:
      - bearerAuth: []
      x-postman-request: '{{base_url}}/aggregators/api/v1/portfolios/'
  /aggregators/api/v1/taxes:
    get:
      operationId: taxes
      summary: Taxes
      tags:
      - Taxes
      parameters:
      - name: aggcode
        in: query
        required: false
        schema:
          type: string
        example: heybelugaca48dacb783c
      responses:
        '200':
          description: Successful response. The published collection carries no example body for this request.
      security:
      - bearerAuth: []
      x-postman-request: '{{base_url}}/aggregators/api/v1/taxes/?aggcode=heybelugaca48dacb783c'
  /aggregators/api/v1/sources:
    get:
      operationId: getSources
      summary: GET sources
      description: '### GET **/sources**


        **Returns** a paginated list of supported wallets by making a GET request to the path `/aggregators/api/v1/sources`
        on the base URL.


        This endpoint requires authentication via a bearer token, provided in the Authorisation header of the request.


        > *Results paginated with 100 elements per page


        ### Request


        ##### QUERY PARAMETERS


        > **page** `number` Specific page requested for the paginated results


        ##### RESPONSE `200`


        ##### RESPONSE DATA


        > **api_version** `string` Version of the targeted API

        >

        > **data** `string` Wrapper for response data (See response example)'
      tags:
      - Supported Exchanges and Wallets
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: number
        description: Specific page requested for the paginated results
        example: '1'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              examples:
                GET_sources_success:
                  value:
                    api_version: '1.0'
                    data:
                      sources:
                      - reference: btc-wallet
                        name: BTC Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: eth-wallet
                        name: ETH Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: ltc-wallet
                        name: LTC Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: abra
                        name: Abra
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: jaxx
                        name: Jaxx
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: ledger-nano
                        name: Ledger Nano
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: keep-key
                        name: Keep Key
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: ledger-blue
                        name: Ledger Blue
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: bitlox
                        name: Bitlox
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: bitlox-digital
                        name: Bitlox Digital
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: exodus
                        name: Exodus
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: copay
                        name: Copay
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: mycelium
                        name: Mycelium
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: my-ether-wallet
                        name: MyEtherWallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: bit-pay
                        name: BitPay
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: electrum
                        name: Electrum
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: airbitz
                        name: Airbitz
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: brd
                        name: BRD
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: freewallet
                        name: Freewallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: infinito-wallet
                        name: Infinito Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: idex
                        name: Idex
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: coinomi
                        name: Coinomi
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: ada-wallet
                        name: ADA Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: daedalus
                        name: Daedalus
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: bancor-network
                        name: Bancor Network
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: binance-dex
                        name: Binance DEX
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: xtz-wallet
                        name: XTZ Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: zec-wallet
                        name: ZEC Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: vet-wallet
                        name: VET Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: ont-wallet
                        name: ONT Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: ark-wallet
                        name: ARK Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: dcr-wallet
                        name: DCR Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: rdd-wallet
                        name: RDD Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: atom-wallet
                        name: ATOM Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: coinswitch
                        name: Coinswitch
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: trust-wallet
                        name: Trust Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: metamask
                        name: Metamask
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: ETH
                      - reference: mycrypto
                        name: Mycrypto
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: ETH
                      - reference: uniswap
                        name: Uniswap
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: dharma
                        name: Dharma
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: compound
                        name: Compound
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: dgb-wallet
                        name: DGB Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: vtc-wallet
                        name: VTC Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: waves-wallet
                        name: WAVES Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: sys-wallet
                        name: SYS Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: zil-wallet
                        name: ZIL Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: ZIL
                      - reference: aion-wallet
                        name: AION Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: algo-wallet
                        name: ALGO Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: ALGO
                      - reference: one-wallet
                        name: ONE Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: xvg-wallet
                        name: XVG Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: zerion
                        name: Zerion
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: aave
                        name: Aave
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: synthetix
                        name: Synthetix
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: 1inch-exchange
                        name: 1inch.exchange
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: balancer
                        name: Balancer
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: dot-wallet
                        name: DOT Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: zapper-fi
                        name: Zapper.fi
                        type: exchange
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: iris-wallet
                        name: IRIS Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: kava-wallet
                        name: KAVA Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: sushiswap
                        name: Sushiswap
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: coinbase-wallet
                        name: Coinbase Wallet
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: curve
                        name: Curve
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: paraswap
                        name: Paraswap
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: ledger-hw
                        name: Ledger HW
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
                        default_coin: null
                      - reference: binance-chain
                        name: Binance Chain
                        type: wallet
                        api: false
                        csv: false
                        oauth: false
                        address: true
                        pass_phrase: false
     

# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zenledger/refs/heads/main/openapi/zenledger-aggregator-api-openapi.yml