{
  "sections": [
    {
      "title": "Blocksize",
      "descriptionText": "The API endpoints provide access to reliable Blocksize market data.\n\nAvailable products include:\n\n- Real-Time VWAP\n- 24-Hour VWAP\n- 30-Minute VWAP\n- Real-Time Bid/Ask\n- AMM State\n- Trades\n\nAccess depends on the authenticated user's subscription plan. Before consuming data, authenticate with an API key.\n\n## Customer Portal\nAs a user of Blocksize, you can manage your subscription details by logging into the customer portal:\n\n[matrix.blocksize.capital](https://matrix.blocksize.capital/auth/open/sign-up)\n\nHere you can also add or change your payment details such as credit cards.\n\n## Access Notes\n- Real-time subscriptions are delivered over websocket.\n- Authenticated HTTP access is available only for methods marked as available over HTTP in this documentation.\n- Instrument availability depends on your subscription plan and asset scope.\n- Active subscriptions and websocket sessions count toward your plan limits.\n\n",
      "endpoints": [
        {
          "title": "",
          "descriptionText": "### Endpoints\n#### Production\nWebsockets: `wss://data.blocksize.capital/marketdata/v1/ws` \nHTTP: `https://data.blocksize.capital/marketdata/v1/api` \n\nTo use the HTTP endpoint, add your API key as an `x-api-key` header.\n\nUse websocket for streaming subscriptions. HTTP is available only for methods explicitly marked as available over HTTP in this documentation.\n\n",
          "authenticationRequired": false,
          "httpAvailable": false,
          "parameters": {
            "requests": [],
            "responses": [],
            "notifications": []
          },
          "examples": [],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    },
    {
      "title": "Rate Limits",
      "descriptionText": "Each Market Data plan includes the following usage limits.\n\n- Active feeds count distinct real-time VWAP, bid/ask, AMM state, and trade tickers across active websocket sessions.\n- Websocket connections are counted per user and IP address.\n- Websocket connections per API key are counted when you authenticate with an API key.\n- Included access shows which services and transport capabilities are part of each plan.\n\n### Developer\n- Included access: Real-Time VWAP, Real-Time Bid/Ask, 24-Hour VWAP, 30-Minute VWAP\n- Active feeds: 5\n- API keys: 1\n- Websocket connections per user and IP address: 1\n- Websocket connections per API key: 2\n\n### Startup\n- Included access: Real-Time VWAP, Real-Time Bid/Ask, 24-Hour VWAP, 30-Minute VWAP\n- Active feeds: 50\n- API keys: 5\n- Websocket connections per user and IP address: 1\n- Websocket connections per API key: 5\n\n### Business\n- Included access: Real-Time VWAP, Real-Time Bid/Ask, 24-Hour VWAP, 30-Minute VWAP, AMM State Price, Events\n- Active feeds: 350\n- API keys: 10\n- Websocket connections per user and IP address: 5\n- Websocket connections per API key: 20\n\n### Enterprise\n- Included access: Real-Time VWAP, Real-Time Bid/Ask, 24-Hour VWAP, 30-Minute VWAP, AMM State Price, Events, Wildcard Subscriptions, HTTP Access for HTTP-enabled Methods, Non-crypto Instruments\n- Active feeds: Unlimited\n- API keys: Unlimited\n- Websocket connections per user and IP address: 100\n- Websocket connections per API key: Unlimited",
      "endpoints": []
    },
    {
      "title": "Authentication",
      "descriptionText": "The Authentication service authenticates a websocket session with an API key.",
      "endpoints": [
        {
          "title": "authentication_logon",
          "descriptionText": "This method authenticates the current session.\n\nThis is a prerequisite for most market data methods.\n\nWebsocket connection limits are enforced during logon per user and IP address, plus per API key when you authenticate with an API key.",
          "authenticationRequired": false,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "api_key",
                "isRequired": true,
                "descriptionText": "Your generated API key",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              },
              {
                "fieldName": "token",
                "isRequired": true,
                "descriptionText": "An optional API Token",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "user_id",
                "isRequired": true,
                "descriptionText": "If authentication was successful, this will contain the user ID of the logged in user.",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"api_key\":\"\",\"token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c\"}",
              "response": "{\"user_id\":\"OjSYjQdxBC\"}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "authentication_logoff",
          "descriptionText": "This method logs the user out of the current session.\n\nLogging off clears the current session's active subscriptions. Logging in again starts a fresh authenticated session.",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [],
            "responses": [
              {
                "fieldName": "user_id",
                "isRequired": true,
                "descriptionText": "If the logout was successful this field will be empty.",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "null",
              "response": "{\"user_id\":\"\"}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    },
    {
      "title": "Real-Time VWAP",
      "descriptionText": "",
      "endpoints": [
        {
          "title": "vwap_subscribe",
          "descriptionText": "\nThis method subscribes to one or multiple instruments.\n\nThe server will respond to a subscription with a response containing the latest known prices for all successful pairs.\n\nAfter a successful subscription, notification messages will be sent by the server to the client with the method `vwap`\n\nUpdates will be sent in 250 millisecond batches.\n\nUpdates will immediately be sent when the price of an asset has changed and re-sent if the price has remained unchanged for 60 consecutive seconds.\n\nWildcard subscriptions, non-crypto instruments, and new tickers are controlled by your subscription plan. New tickers count toward the active feed limit.",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "snapshot",
                "isRequired": true,
                "descriptionText": "This will contain a list of the latest prices for all the requested tickers",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The ticker of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "price",
                            "isRequired": true,
                            "descriptionText": "The VWAP of the instrument",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "size",
                            "isRequired": true,
                            "descriptionText": "Total size",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "volume",
                            "isRequired": true,
                            "descriptionText": "Total volume",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "market_cap",
                            "isRequired": false,
                            "descriptionText": "Circulating supply of the base token times the price",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "Timestamp of VWAP in milliseconds. Indicates last timestamp (exchange provided) of the last trade used for calculation",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ],
            "notifications": [
              {
                "fieldName": "updates",
                "isRequired": true,
                "descriptionText": "This will contain price updates for one or multiple pairs the session is subscribed to",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The ticker of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "price",
                            "isRequired": true,
                            "descriptionText": "The VWAP of the instrument",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "size",
                            "isRequired": true,
                            "descriptionText": "Total size",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "volume",
                            "isRequired": true,
                            "descriptionText": "Total volume",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "market_cap",
                            "isRequired": false,
                            "descriptionText": "Circulating supply of the base token times the price",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "Timestamp of VWAP in milliseconds. Indicates last timestamp (exchange provided) of the last trade used for calculation",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ]
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"BTCEUR\",\"ETHEUR\"]}",
              "response": "{\"snapshot\":[{\"ticker\":\"ETHEUR\",\"price\":2864.42,\"size\":42.1385,\"volume\":120745.66,\"ts\":1746705600000},{\"ticker\":\"BTCEUR\",\"price\":58842.17,\"size\":1.3842,\"volume\":814023.45,\"ts\":1746705600000}]}",
              "notifications": [
                {
                  "method": "vwap",
                  "params": "{\"updates\":[{\"ticker\":\"ETHEUR\",\"price\":2866.11,\"size\":3.8921,\"volume\":11152.83,\"ts\":1746705600250}]}"
                },
                {
                  "method": "vwap",
                  "params": "{\"updates\":[{\"ticker\":\"BTCEUR\",\"price\":58855.84,\"size\":0.2458,\"volume\":14467.38,\"ts\":1746705600250}]}"
                }
              ]
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "vwap_unsubscribe",
          "descriptionText": "\nThis method unsubscribes from one or multiple instruments.\n\t\t\t\t\nAfter a successful unsubscription, no more notifications will be sent for the instruments.",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"BTCEUR\"]}",
              "response": "{}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "vwap_instruments",
          "descriptionText": "This method returns all currently available pairs.\n\nThis method is available over websocket or authenticated HTTP.",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [],
            "responses": [
              {
                "fieldName": "instruments",
                "isRequired": true,
                "descriptionText": "A list of all pairs that can be subscribed to",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The instrument's ticker",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "base_currency",
                            "isRequired": true,
                            "descriptionText": "The instrument's base currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "quote_currency",
                            "isRequired": true,
                            "descriptionText": "The instrument's quote currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "exchanges",
                            "isRequired": true,
                            "descriptionText": "A list of exchanges which are currently used to calculate the price",
                            "type": {
                              "array": {
                                "item": {
                                  "string": {
                                    "maxLength": "0"
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "null",
              "response": "{\"instruments\":[{\"ticker\":\"BTCEUR\",\"base_currency\":\"BTC\",\"quote_currency\":\"EUR\",\"exchanges\":[\"BINANCE\",\"COINBASE\",\"KRAKEN\",\"MEXC\",\"OKCOIN\",\"POLONIEX\"]},{\"ticker\":\"ETHEUR\",\"base_currency\":\"ETH\",\"quote_currency\":\"EUR\",\"exchanges\":[\"BINANCE\",\"COINBASE\",\"KRAKEN\"]}]}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "vwap_latest",
          "descriptionText": "This method returns the latest known VWAP for the given ticker.\n\nThis method is available over websocket or authenticated HTTP.",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [
              {
                "fieldName": "ticker",
                "isRequired": true,
                "descriptionText": "The ticker of the instrument",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "vwap",
                "isRequired": true,
                "descriptionText": "The latest known VWAP for the given ticker",
                "type": {
                  "object": {
                    "properties": [
                      {
                        "fieldName": "ticker",
                        "isRequired": true,
                        "descriptionText": "The ticker of the instrument",
                        "type": {
                          "string": {
                            "maxLength": "0"
                          }
                        }
                      },
                      {
                        "fieldName": "price",
                        "isRequired": true,
                        "descriptionText": "The VWAP of the instrument",
                        "type": {
                          "float": {}
                        }
                      },
                      {
                        "fieldName": "size",
                        "isRequired": true,
                        "descriptionText": "Total size",
                        "type": {
                          "float": {}
                        }
                      },
                      {
                        "fieldName": "volume",
                        "isRequired": true,
                        "descriptionText": "Total volume",
                        "type": {
                          "float": {}
                        }
                      },
                      {
                        "fieldName": "market_cap",
                        "isRequired": false,
                        "descriptionText": "Circulating supply of the base token times the price",
                        "type": {
                          "float": {}
                        }
                      },
                      {
                        "fieldName": "ts",
                        "isRequired": true,
                        "descriptionText": "Timestamp of VWAP in milliseconds. Indicates last timestamp (exchange provided) of the last trade used for calculation",
                        "type": {
                          "int": {
                            "timestamp": false
                          }
                        }
                      }
                    ]
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"ticker\":\"BTCEUR\"}",
              "response": "{\"vwap\":{\"ticker\":\"BTCEUR\",\"price\":58855.84,\"size\":0.2458,\"volume\":14467.38,\"ts\":1746705600250}}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    },
    {
      "title": "24-Hour VWAP",
      "descriptionText": "",
      "endpoints": [
        {
          "title": "fixedvwap_subscribe",
          "descriptionText": "\nThis method subscribes for fixed window VWAP (currently only 24h) to one or multiple instruments.\n\t\t\t\t\nThe server will respond to a subscription with a response containing the latest known prices for all successful pairs.\n\t\t\t\t\nAfter a successful subscription, notification messages will be sent by the server to the client with the method `fixedvwap`Updates will be sent every midnight UTC.",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "snapshot",
                "isRequired": true,
                "descriptionText": "This will contain a list of the latest prices for all the requested tickers",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The ticker of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "price",
                            "isRequired": true,
                            "descriptionText": "The VWAP of the instrument",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "size",
                            "isRequired": true,
                            "descriptionText": "Total size",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "volume",
                            "isRequired": true,
                            "descriptionText": "Total volume",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "market_cap",
                            "isRequired": false,
                            "descriptionText": "Circulating supply of the base token times the price",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "Timestamp of VWAP in milliseconds. Indicates last timestamp (exchange provided) of the last trade used for calculation",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ],
            "notifications": [
              {
                "fieldName": "updates",
                "isRequired": true,
                "descriptionText": "This will contain price updates for one or multiple pairs the session is subscribed to",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The ticker of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "price",
                            "isRequired": true,
                            "descriptionText": "The VWAP of the instrument",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "size",
                            "isRequired": true,
                            "descriptionText": "Total size",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "volume",
                            "isRequired": true,
                            "descriptionText": "Total volume",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "market_cap",
                            "isRequired": false,
                            "descriptionText": "Circulating supply of the base token times the price",
                            "type": {
                              "float": {}
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "Timestamp of VWAP in milliseconds. Indicates last timestamp (exchange provided) of the last trade used for calculation",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ]
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"BTCEUR\",\"ETHEUR\"]}",
              "response": "{\"snapshot\":[{\"ticker\":\"ETHEUR\",\"price\":2849.73,\"size\":3124.57,\"volume\":8901243.12,\"ts\":1746662400000},{\"ticker\":\"BTCEUR\",\"price\":58592.44,\"size\":124.385,\"volume\":72811455.31,\"ts\":1746662400000}]}",
              "notifications": [
                {
                  "method": "fixedvwap",
                  "params": "{\"updates\":[{\"ticker\":\"BTCEUR\",\"price\":58807.31,\"size\":118.204,\"volume\":70244109.88,\"ts\":1746748800000}]}"
                },
                {
                  "method": "fixedvwap",
                  "params": "{\"updates\":[{\"ticker\":\"ETHEUR\",\"price\":2861.08,\"size\":2988.31,\"volume\":8456627.54,\"ts\":1746748800000}]}"
                }
              ]
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "fixedvwap_unsubscribe",
          "descriptionText": "\nThis method unsubscribes from one or multiple instruments.\n\t\t\t\t\nAfter a successful unsubscription, no more notifications will be sent for the instruments.",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"BTCEUR\"]}",
              "response": "{}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    },
    {
      "title": "30-Minute VWAP",
      "descriptionText": "The 30-Minute VWAP service allows to get the closing price in a given timeframe for all available pairs",
      "endpoints": [
        {
          "title": "closingprice_list",
          "descriptionText": "This method returns the volume-weighted closing price for all available pairs at the requested point in time.",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [
              {
                "fieldName": "ts",
                "isRequired": true,
                "descriptionText": "The Unix timestamp in milliseconds.",
                "type": {
                  "int": {
                    "timestamp": false
                  }
                }
              },
              {
                "fieldName": "quote",
                "isRequired": true,
                "descriptionText": "An optional quote currency to report prices in. If EUR or USD are specified, synthetic prices will be calculated.",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "conversion_rates",
                "isRequired": false,
                "descriptionText": "The conversion rates applied to calculate synthetic prices.",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "from",
                            "isRequired": true,
                            "descriptionText": "The currency this conversion rate is being applied to",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "to",
                            "isRequired": true,
                            "descriptionText": "The currency this conversion rate will result in",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "rate",
                            "isRequired": true,
                            "descriptionText": "The conversion rate",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "The Unix timestamp in milliseconds.",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          },
                          {
                            "fieldName": "datetime",
                            "isRequired": true,
                            "descriptionText": "The timestamp in RFC3339 format.",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              },
              {
                "fieldName": "prices",
                "isRequired": true,
                "descriptionText": "A list of closing prices",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "base",
                            "isRequired": true,
                            "descriptionText": "The base currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "quote",
                            "isRequired": true,
                            "descriptionText": "The quote currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "price",
                            "isRequired": true,
                            "descriptionText": "The closing price",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "The Unix timestamp in milliseconds.",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          },
                          {
                            "fieldName": "datetime",
                            "isRequired": true,
                            "descriptionText": "The timestamp in RFC3339 format.",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "original_quote",
                            "isRequired": false,
                            "descriptionText": "For those pairs that were calculated using conversion",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"ts\":1746576000000,\"quote\":\"EUR\"}",
              "response": "{\"conversion_rates\":[{\"from\":\"USD\",\"to\":\"EUR\",\"rate\":\"0.92641\",\"ts\":1746576000000,\"datetime\":\"2025-05-07T00:00:00Z\"}],\"prices\":[{\"base\":\"BTC\",\"quote\":\"EUR\",\"price\":\"58742.19\",\"ts\":1746576000000,\"datetime\":\"2025-05-07T00:00:00Z\"},{\"base\":\"ETH\",\"quote\":\"EUR\",\"price\":\"2861.42\",\"ts\":1746576000000,\"datetime\":\"2025-05-07T00:00:00Z\"},{\"base\":\"STETH\",\"quote\":\"EUR\",\"price\":\"2834.91\",\"ts\":1746576000000,\"datetime\":\"2025-05-07T00:00:00Z\",\"original_quote\":\"USD\"}]}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "closingprice_trades",
          "descriptionText": "This method returns the trades used for calculation of closing price",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [
              {
                "fieldName": "base",
                "isRequired": true,
                "descriptionText": "The base currency",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              },
              {
                "fieldName": "quote",
                "isRequired": true,
                "descriptionText": "The quote currency",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              },
              {
                "fieldName": "ts",
                "isRequired": true,
                "descriptionText": "The UTC timestamp in milliseconds.",
                "type": {
                  "int": {
                    "timestamp": false
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "prices",
                "isRequired": true,
                "descriptionText": "A list of trades",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "base",
                            "isRequired": true,
                            "descriptionText": "The base currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "quote",
                            "isRequired": true,
                            "descriptionText": "The quote currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "exchange",
                            "isRequired": true,
                            "descriptionText": "The trade exchange",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "price",
                            "isRequired": true,
                            "descriptionText": "The trade price",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "size",
                            "isRequired": true,
                            "descriptionText": "Size of the trade in base currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "The UTC timestamp in milliseconds.",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"base\":\"BTC\",\"quote\":\"EUR\",\"ts\":1746576000000}",
              "response": "{\"prices\":[{\"base\":\"BTC\",\"quote\":\"EUR\",\"exchange\":\"COINBASE\",\"price\":\"58750.10\",\"size\":\"0.2456\",\"ts\":1746575982000},{\"base\":\"BTC\",\"quote\":\"EUR\",\"exchange\":\"BITSTAMP\",\"price\":\"58741.32\",\"size\":\"0.1180\",\"ts\":1746575957000}]}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    },
    {
      "title": "Real-Time Bid/Ask",
      "descriptionText": "The Bid/Ask service allows to subscribe to aggregated bid and ask prices for one or multiple instruments.",
      "endpoints": [
        {
          "title": "bidask_subscribe",
          "descriptionText": "\nThis method subscribes the session to one or multiple Bid/Ask prices.\n\t\t\t\t\nThe server will respond with the latest known prices for all successful pairs.\n\t\t\t\t\nAfter a successful subscription, notification messages will be sent by the server to the client with the method `bidask`\n\t\t\t\t\nUpdates will be sent in 250 millisecond batches.\n\t\t\t\t\nUpdates will immediately be sent when the price of an asset has changed and re-sent if the price has remained unchanged for 60 consecutive seconds.\n\t\t\t\t",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "snapshot",
                "isRequired": true,
                "descriptionText": "This will contain price updates for all the requested tickers",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The ticker of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_bid_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated bid price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_bid_size",
                            "isRequired": true,
                            "descriptionText": "The aggregated bid size of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_ask_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated ask price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_ask_size",
                            "isRequired": true,
                            "descriptionText": "The aggregated ask size of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_mid_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated mid price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "The UTC timestamp in microseconds.",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          },
                          {
                            "fieldName": "market_cap",
                            "isRequired": false,
                            "descriptionText": "Circulating supply of the base token times mid price",
                            "type": {
                              "float": {}
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ],
            "notifications": [
              {
                "fieldName": "updates",
                "isRequired": true,
                "descriptionText": "This will contain price updates for one or multiple pairs the session is subscribed to",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The ticker of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_bid_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated bid price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_bid_size",
                            "isRequired": true,
                            "descriptionText": "The aggregated bid size of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_ask_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated ask price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_ask_size",
                            "isRequired": true,
                            "descriptionText": "The aggregated ask size of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_mid_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated mid price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "The UTC timestamp in microseconds.",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          },
                          {
                            "fieldName": "market_cap",
                            "isRequired": false,
                            "descriptionText": "Circulating supply of the base token times mid price",
                            "type": {
                              "float": {}
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ]
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"BTCEUR\",\"ETHEUR\"]}",
              "response": "{\"snapshot\":[{\"ticker\":\"BTCEUR\",\"agg_bid_price\":\"58840.51\",\"agg_bid_size\":\"0.9342\",\"agg_ask_price\":\"58845.66\",\"agg_ask_size\":\"1.2874\",\"agg_mid_price\":\"58843.085\",\"ts\":1746691200123456},{\"ticker\":\"ETHEUR\",\"agg_bid_price\":\"2863.74\",\"agg_bid_size\":\"18.4421\",\"agg_ask_price\":\"2864.22\",\"agg_ask_size\":\"11.3084\",\"agg_mid_price\":\"2863.98\",\"ts\":1746691200123491}]}",
              "notifications": [
                {
                  "method": "bidask",
                  "params": "{\"updates\":[{\"ticker\":\"ETHEUR\",\"agg_bid_price\":\"2864.05\",\"agg_bid_size\":\"12.1189\",\"agg_ask_price\":\"2864.58\",\"agg_ask_size\":\"8.6742\",\"agg_mid_price\":\"2864.315\",\"ts\":1746691200378456}]}"
                }
              ]
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "bidask_unsubscribe",
          "descriptionText": "\nThis method unsubscribes from one or multiple instruments.\n\t\t\t\t\nAfter a successful unsubscription, no more notifications will be sent for the instruments.",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"BTCEUR\"]}",
              "response": "{}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "bidask_instruments",
          "descriptionText": "This method returns all available pairs.\n\nThis method is available over websocket or authenticated HTTP.",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [],
            "responses": [
              {
                "fieldName": "instruments",
                "isRequired": true,
                "descriptionText": "A list of all pairs that can be subscribed to",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The instrument's ticker",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "base_currency",
                            "isRequired": true,
                            "descriptionText": "The instrument's base currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "quote_currency",
                            "isRequired": true,
                            "descriptionText": "The instrument's quote currency",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "exchanges",
                            "isRequired": true,
                            "descriptionText": "A list of exchanges which are currently used to calculate the price",
                            "type": {
                              "array": {
                                "item": {
                                  "string": {
                                    "maxLength": "0"
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "null",
              "response": "{\"instruments\":[{\"ticker\":\"BTCEUR\",\"base_currency\":\"BTC\",\"quote_currency\":\"EUR\",\"exchanges\":[\"BINANCE\",\"COINBASE\",\"KRAKEN\",\"MEXC\",\"OKCOIN\",\"POLONIEX\"]},{\"ticker\":\"ETHEUR\",\"base_currency\":\"ETH\",\"quote_currency\":\"EUR\",\"exchanges\":[\"BINANCE\",\"COINBASE\",\"KRAKEN\"]}]}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "bidask_getSnapshot",
          "descriptionText": "Returns a snapshot of the latest bid/ask for all instruments over the last 24h. If no data exists yet, returns an empty snapshot.",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [],
            "responses": [
              {
                "fieldName": "snapshot",
                "isRequired": true,
                "descriptionText": "This will contain price updates for all the requested tickers",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The ticker of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_bid_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated bid price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_bid_size",
                            "isRequired": true,
                            "descriptionText": "The aggregated bid size of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_ask_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated ask price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_ask_size",
                            "isRequired": true,
                            "descriptionText": "The aggregated ask size of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "agg_mid_price",
                            "isRequired": true,
                            "descriptionText": "The aggregated mid price of the instrument",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "ts",
                            "isRequired": true,
                            "descriptionText": "The UTC timestamp in microseconds.",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          },
                          {
                            "fieldName": "market_cap",
                            "isRequired": false,
                            "descriptionText": "Circulating supply of the base token times mid price",
                            "type": {
                              "float": {}
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "{}",
              "response": "{\"snapshot\":[{\"ticker\":\"BTCEUR\",\"agg_bid_price\":\"58840.51\",\"agg_bid_size\":\"0.9342\",\"agg_ask_price\":\"58845.66\",\"agg_ask_size\":\"1.2874\",\"agg_mid_price\":\"58843.085\",\"ts\":1746691200123456},{\"ticker\":\"ETHEUR\",\"agg_bid_price\":\"2863.74\",\"agg_bid_size\":\"18.4421\",\"agg_ask_price\":\"2864.22\",\"agg_ask_size\":\"11.3084\",\"agg_mid_price\":\"2863.98\",\"ts\":1746691200123491}]}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    },
    {
      "title": "AMM State Price",
      "descriptionText": "The AMM State Price service allows clients to subscribe to AMM state for one or multiple instruments. Streaming subscriptions are websocket-only.",
      "endpoints": [
        {
          "title": "state_subscribe",
          "descriptionText": "\nThis method subscribes to one or multiple instruments.\n\nAfter a successful subscription, notification messages will be sent by the server to the client with the method `state`\n\nThe server will respond to a subscription with a response containing the latest known state for all successful pairs.\n\nUpdates will immediately be sent when the state of an asset has changed and re-sent if the state has remained unchanged for 60 consecutive seconds.\n\n\t\t\t\t",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "snapshot",
                "isRequired": true,
                "descriptionText": "This will contain the current aggregated data of all the requested tickers",
                "type": {
                  "array": {}
                }
              }
            ],
            "notifications": [
              {
                "fieldName": "states",
                "isRequired": true,
                "descriptionText": "This will contain the current aggregated data of one or multiple pairs the session is subscribed to",
                "type": {
                  "array": {}
                }
              }
            ]
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"WSTETHETH\"]}",
              "response": "{\"snapshot\":[{\"timestamp\":1746705600,\"base_symbol\":\"WSTETH\",\"quote_symbol\":\"ETH\",\"aggregated_state_price\":\"1.173842\",\"aggregated_plus_1_percent_usd_market_depth\":\"1265438.22\",\"aggregated_minus_1_percent_usd_market_depth\":\"1189044.57\",\"aggregated_7d_usd_trading_volume\":\"28456291.34\"}]}",
              "notifications": [
                {
                  "method": "state",
                  "params": "{\"states\":[{\"timestamp\":1746705601,\"base_symbol\":\"WSTETH\",\"quote_symbol\":\"ETH\",\"aggregated_state_price\":\"1.173965\",\"aggregated_plus_1_percent_usd_market_depth\":\"1271042.88\",\"aggregated_minus_1_percent_usd_market_depth\":\"1193321.41\",\"aggregated_7d_usd_trading_volume\":\"28461742.06\"}]}"
                }
              ]
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "state_unsubscribe",
          "descriptionText": "\nThis method unsubscribes from one or multiple instruments.\n\t\t\t\t\nAfter a successful unsubscription, no more notifications will be sent for the instruments.",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"WSTETHETH\"]}",
              "response": "{}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "state_pool",
          "descriptionText": "This method returns the state price of a given pool.\n\nThis method is available over authenticated HTTP.",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [
              {
                "fieldName": "symbol",
                "isRequired": false,
                "descriptionText": "",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              },
              {
                "fieldName": "block",
                "isRequired": false,
                "descriptionText": "",
                "type": {
                  "int": {
                    "timestamp": false
                  }
                }
              },
              {
                "fieldName": "block_time",
                "isRequired": false,
                "descriptionText": "",
                "type": {
                  "int": {
                    "timestamp": false
                  }
                }
              },
              {
                "fieldName": "network",
                "isRequired": false,
                "descriptionText": "",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              },
              {
                "fieldName": "pool",
                "isRequired": false,
                "descriptionText": "",
                "type": {
                  "string": {
                    "maxLength": "0"
                  }
                }
              }
            ],
            "responses": [
              {
                "fieldName": "state",
                "isRequired": false,
                "descriptionText": ""
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"network\":\"ethereum\",\"pool\":\"0xDC24316b9AE028F1497c275EB9192a3Ea0f67022\"}",
              "response": "{\"state\":{\"blockchain\":\"ethereum\",\"block_number\":19876543,\"block_time\":1746691187,\"pool\":\"0xDC24316b9AE028F1497c275EB9192a3Ea0f67022\",\"state\":\"1.001842\",\"plus_1_percent_market_depth\":\"418.32\",\"minus_1_percent_market_depth\":\"405.11\",\"plus_1_percent_usd_market_depth\":\"1265438.22\",\"minus_1_percent_usd_market_depth\":\"1226113.47\",\"trading_volume_usd\":\"28456291.34\",\"weight\":\"0.500000000000000000\",\"base_symbol\":\"STETH\",\"quote_symbol\":\"ETH\",\"quote_price_usd\":\"3031.42\",\"state_price_usd\":\"3037.00\"}}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "state_instruments",
          "descriptionText": "This method returns the supported instruments.\n\nThis method is available over authenticated HTTP.",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [],
            "responses": [
              {
                "fieldName": "instruments",
                "isRequired": false,
                "descriptionText": "",
                "type": {
                  "array": {}
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "null",
              "response": "{\"instruments\":[{\"symbol\":\"STETHETH\",\"pools\":[{\"address\":\"0xDC24316b9AE028F1497c275EB9192a3Ea0f67022\",\"network\":\"ethereum\"},{\"address\":\"0x21E27A5E5513D6E65C4F830167390997AA84843A\",\"network\":\"ethereum\"}]},{\"symbol\":\"WBTCUSDC\",\"pools\":[{\"address\":\"0x99AC8CA7087F369FC435ACB5C9ACDACBDA1D3DFF\",\"network\":\"arbitrum\"}]}]}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    },
    {
      "title": "Events",
      "descriptionText": "",
      "endpoints": [
        {
          "title": "trade_subscribe",
          "descriptionText": "\nThis method subscribes to the trades for one or multiple instruments.\n\t\t\t\t\nThe server will always respond with an empty response.\n\t\t\t\t\nAfter a successful subscription, notification messages will be sent by the server to the client with the method `trade`\n\t\t\t\t\nUpdate notifications will be send in 250 millisecond batches. Updates will only be sent if a trade occurred.\n\t\t\t\t\nTo subscribe to all trades, use a special wildcard ticker `*`.\n\nDepending on your subscription plan, you may need to subscribe to explicit tickers instead of using the wildcard subscription. Non-crypto instruments and additional tickers also remain subject to your plan's asset scope and active feed limits.\n\nExample wildcard subscription:\n\t\t\t\t\n`\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 0,\n  \"method\": \"trade_subscribe\",\n  \"params\": {\n    \"tickers\": [\n      \"*\"\n    ]\n  }\n}\t\t\t\t\n`",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              },
              {
                "fieldName": "filters",
                "isRequired": false,
                "descriptionText": "A list of exchanges or tags to filter the trades by",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [],
            "notifications": [
              {
                "fieldName": "trades",
                "isRequired": true,
                "descriptionText": "A batched list of trade events",
                "type": {
                  "array": {
                    "item": {
                      "object": {
                        "properties": [
                          {
                            "fieldName": "timestamp",
                            "isRequired": true,
                            "descriptionText": "The Unix timestamp of the trade in milliseconds.",
                            "type": {
                              "int": {
                                "timestamp": false
                              }
                            }
                          },
                          {
                            "fieldName": "ticker",
                            "isRequired": true,
                            "descriptionText": "The ticker of the instrument that was traded.",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "price",
                            "isRequired": true,
                            "descriptionText": "The price the instrument was traded at, denoted in the Quote currency.",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "size",
                            "isRequired": true,
                            "descriptionText": "The size of the trade, denoted in the Base currency.",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "exchange",
                            "isRequired": true,
                            "descriptionText": "The name of the exchange the trade occurred at.",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "base",
                            "isRequired": true,
                            "descriptionText": "The ticker of the base currency.",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "quote",
                            "isRequired": true,
                            "descriptionText": "The ticker of the quote currency.",
                            "type": {
                              "string": {
                                "maxLength": "0"
                              }
                            }
                          },
                          {
                            "fieldName": "tags",
                            "isRequired": false,
                            "descriptionText": "A list of tags associated with the trade.",
                            "type": {
                              "array": {
                                "item": {
                                  "string": {
                                    "maxLength": "0"
                                  }
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            ]
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"WETHUSDC\",\"WBTCUSDC\"],\"filters\":[\"UNISWAPV3_ETHEREUM\"]}",
              "response": "{}",
              "notifications": [
                {
                  "method": "trade",
                  "params": "{\"trades\":[{\"timestamp\":1746691200123,\"ticker\":\"WETHUSDC\",\"price\":\"3058.4421\",\"size\":\"12.4385\",\"exchange\":\"UNISWAPV3_ETHEREUM\",\"base\":\"WETH\",\"quote\":\"USDC\",\"tags\":[\"dex\",\"ethereum\"]},{\"timestamp\":1746691200188,\"ticker\":\"WBTCUSDC\",\"price\":\"64215.8874\",\"size\":\"0.1842\",\"exchange\":\"UNISWAPV3_ETHEREUM\",\"base\":\"WBTC\",\"quote\":\"USDC\",\"tags\":[\"dex\",\"ethereum\"]}]}"
                },
                {
                  "method": "trade",
                  "params": "{\"trades\":[{\"timestamp\":1746691200412,\"ticker\":\"WETHUSDC\",\"price\":\"3059.1128\",\"size\":\"4.2750\",\"exchange\":\"UNISWAPV3_ETHEREUM\",\"base\":\"WETH\",\"quote\":\"USDC\",\"tags\":[\"dex\",\"ethereum\"]},{\"timestamp\":1746691200440,\"ticker\":\"WBTCUSDC\",\"price\":\"64218.1043\",\"size\":\"0.0725\",\"exchange\":\"UNISWAPV3_ETHEREUM\",\"base\":\"WBTC\",\"quote\":\"USDC\",\"tags\":[\"dex\",\"ethereum\"]}]}"
                }
              ]
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        },
        {
          "title": "trade_unsubscribe",
          "descriptionText": "\nThis method unsubscribes from one or multiple instruments.\n\t\t\t\t\nAfter a successful unsubscription, no more notifications will be sent for the instruments.\n\t\t\t\t\nIf subscribed using the wildcard character `*`, the unsubscription has to be done with the same.",
          "authenticationRequired": true,
          "httpAvailable": false,
          "parameters": {
            "requests": [
              {
                "fieldName": "tickers",
                "isRequired": true,
                "descriptionText": "A list of tickers",
                "type": {
                  "array": {
                    "item": {
                      "string": {
                        "maxLength": "0"
                      }
                    }
                  }
                }
              }
            ],
            "responses": [],
            "notifications": []
          },
          "examples": [
            {
              "request": "{\"tickers\":[\"WETHUSDC\"]}",
              "response": "{}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    },
    {
      "title": "Time",
      "descriptionText": "",
      "endpoints": [
        {
          "title": "time_now",
          "descriptionText": "This method can be used to get the current time of the server or to test if the connection is still alive.",
          "authenticationRequired": true,
          "httpAvailable": true,
          "parameters": {
            "requests": [],
            "responses": [
              {
                "fieldName": "timestamp",
                "isRequired": false,
                "descriptionText": "The server time in seconds (Unix).",
                "type": {
                  "int": {
                    "timestamp": false
                  }
                }
              }
            ],
            "notifications": []
          },
          "examples": [
            {
              "request": "null",
              "response": "{\"timestamp\":1746705600}",
              "notifications": []
            }
          ],
          "deprecated": false,
          "deprecatedText": ""
        }
      ]
    }
  ],
  "errors": [
    {
      "code": "-32600",
      "message": "invalid request",
      "descriptionText": "The request made was invalid. Check data for more details."
    },
    {
      "code": "-32601",
      "message": "method not found",
      "descriptionText": "The requested method or service could not be found."
    },
    {
      "code": "-32602",
      "message": "invalid params",
      "descriptionText": "The requested method expects a different parameter format."
    },
    {
      "code": "-32603",
      "message": "internal error",
      "descriptionText": "An internal error occurred. Check data for more details."
    },
    {
      "code": "-32700",
      "message": "parse error",
      "descriptionText": "An invalid JSON message was received."
    },
    {
      "code": "4000",
      "message": "unauthenticated",
      "descriptionText": "A method that requires authentication was called from an unauthenticated session."
    },
    {
      "code": "4001",
      "message": "invalid API key",
      "descriptionText": "The API key that was tried to authenticate with is invalid."
    },
    {
      "code": "4002",
      "message": "invalid API token",
      "descriptionText": "The API token that was tried to authenticate with is invalid."
    },
    {
      "code": "4003",
      "message": "payment required",
      "descriptionText": "Your subscription plan does not allow the requested method. Access can depend on your plan, access method, instrument scope, and remaining plan limits."
    }
  ],
  "jsonRpc": {
    "default": {
      "title": "JSON-RPC",
      "descriptionText": "JSON-RPC is a light-weight remote procedure call (RPC) protocol. This API implements the JSON-RPC specification over Websockets and HTTP. All messages that are exchanged between client and server are in JSON format.",
      "endpoints": [
        {
          "parameters": {
            "requestsListDescription": "Every JSON-RPC request must be a JSON object with the following fields:",
            "requestsList": [
              {
                "fieldName": "jsonrpc",
                "descriptionText": "Must be set to 2.0.",
                "type": "string"
              },
              {
                "fieldName": "method",
                "descriptionText": "Must be a valid method name as highlighted by this documentation.",
                "type": "string"
              },
              {
                "fieldName": "id",
                "descriptionText": "Can be any identifier set by the client to map requests->responses.",
                "type": "string or int"
              },
              {
                "fieldName": "params",
                "descriptionText": "A structured value of arguments the method expects. Can be omitted if the method accepts no arguments.",
                "type": "object"
              }
            ],
            "responsesListDescription": "Every JSON-RPC response must be a JSON object with the following fields:",
            "responsesList": [
              {
                "fieldName": "jsonrpc",
                "descriptionText": "Must be set to 2.0.",
                "type": "string"
              },
              {
                "fieldName": "id",
                "descriptionText": "The identifier as set by the client. If no ID was specified or can otherwise not be parsed, id will be null",
                "type": "string or int"
              },
              {
                "fieldName": "result",
                "descriptionText": "If an error occurred during the method call, the error field will be present and will an object containing information on the error.",
                "type": "object"
              },
              {
                "fieldName": "error",
                "descriptionText": "A structured value of arguments the method expects. Can be omitted if the method accepts no arguments.",
                "type": "object"
              },
              {
                "fieldName": "› code",
                "descriptionText": "Code indicated the type of the error that occurred. Only use this code when comparing errors, as codes are part of the API. See the Errors section for more details",
                "type": "int"
              },
              {
                "fieldName": "› message",
                "descriptionText": "A short error message describing the error. Do not compare or parse the message, it is not part of the API.",
                "type": "string"
              },
              {
                "fieldName": "› data",
                "descriptionText": "A longer description of the error wherever applicable. Can be omitted. Do not compare or parse data, it is not part of the API.",
                "type": "string"
              }
            ],
            "notificationsListDescription": "A notification is a request message without an \"id\" field. Notifications will be sent by the server to the client after a successful confirmation. The client must not confirm the receipt of notifications.",
            "notificationsList": [
              {
                "fieldName": "jsonrpc",
                "descriptionText": "Must be set to 2.0.",
                "type": "string"
              },
              {
                "fieldName": "method",
                "descriptionText": "Must be a valid method name as highlighted by this documentation.",
                "type": "string"
              },
              {
                "fieldName": "params",
                "descriptionText": "A structured value of method arguments as highlighted by this documentation.",
                "type": "object"
              }
            ],
            "httpDescription": "Some of the unary API methods are also available via JSON-RPC over HTTP. If a method supports this calling method its section will have a hint.\n\n  When using JSON-RPC over HTTP, the request and response structure will stay the same as documented.\n      \n  This API only supports JSON-RPC over HTTP using POST requests. The `Content-Type` needs to be of type `application/json`.\n      \n  If the method being called requires authentication, authentication headers need to be added:\n  \n  * API keys need to be added as a `X-Api-Key` header\n  \n  * API tokens need to be added as a `Authorization` header following the Bearer-Scheme\n  \n  The HTTP response code will always be `200`, even if an error occurred."
          },
          "examplesList": [
            {
              "title": "Request",
              "json": "{\n            \"jsonrpc\": \"2.0\",\n            \"id\": 6712,\n            \"method\": \"servicename_methodname\",\n            \"params\": {\n              \"parameter_1\": 42,\n              \"parameter_2\": \"string\"\n            }\n          }"
            },
            {
              "title": "Response (OK)",
              "json": "{\n            \"jsonrpc\": \"2.0\",\n            \"id\": 6712,\n            \"result\": {\n              \"result_parameter\": \"string\"\n            }\n          }"
            },
            {
              "title": "Response (Error)",
              "json": "{\n            \"jsonrpc\": \"2.0\",\n            \"id\": 6712,\n            \"error\": {\n              \"code\": -32602,\n              \"message\": \"invalid params\"\n            }\n          }"
            },
            {
              "title": "Notification Message",
              "json": "{\n            \"jsonrpc\": \"2.0\",\n            \"method\": \"servicename_subscription\",\n            \"params\": {\n              \"datapoint_1\": 23.78,\n              \"datapoint_2\": \"data\"\n            }\n          }"
            },
            {
              "title": "",
              "json": "\n\n    curl --request POST 'https://data.blocksize.capital/marketdata/v1/api' \\\n    --header 'Content-Type: application/json' \\\n    --header 'X-API-Key: Xavv9doDyT8NzX45XXclNqi26PRyaaVxWhbXciazVerZwy8Kz1uXGf54oC93h0UwcUzw458ebh4a4Iz2' \\\n    --data-raw '{\n      \"jsonrpc\": \"2.0\",\n      \"id\": 6712,\n      \"method\": \"servicename_methodname\",\n      \"params\": {\n        \"parameter_1\": 42,\n        \"parameter_2\": \"string\"\n      }\n    }'"
            },
            {
              "title": "The above command returns JSON structured like this:",
              "json": "{\n            \"jsonrpc\": \"2.0\",\n            \"id\": 6712,\n            \"result\": {\n              \"result_parameter\": \"string\"\n            }\n          }"
            }
          ]
        }
      ]
    }
  }
}
