{
  "openapi": "3.1.0",
  "info": {
    "title": "Reactive Markets REST API documentation",
    "description": "Create, retrieve, and automate your workflows with the Reactive Markets REST API.",
    "version": "2.80.1",
    "contact": {
      "name": "Support",
      "url": "https://www.reactivemarkets.com/support",
      "email": "support@reactivemarkets.com"
    }
  },
  "servers": [
    {
      "url": "https://api.lp-int.switchboard.reactivemarkets.com/v1",
      "description": "LP Integration"
    },
    {
      "url": "https://api.int.switchboard.reactivemarkets.com/v1",
      "description": "Client Integration"
    },
    {
      "url": "https://api.switchboard.reactivemarkets.com/v1",
      "description": "Production"
    }
  ],
  "paths": {
    "/market_data/keep_alive": {
      "put": {
        "summary": "Keep Alive",
        "description": "Opens and keeps open one or more market data subscriptions. Should be called every minute to keep the subscriptions alive.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarketDataKeepAlive"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Market Data"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/executions": {
      "post": {
        "summary": "List executions",
        "description": "Lists executions which match the given filters.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsExecutionsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExecutionReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/maker_execution_totals": {
      "post": {
        "summary": "List maker execution totals",
        "description": "Lists maker execution totals which match the given filters.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMakerExecutionTotalsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExecutionTotal"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/maker_executions": {
      "post": {
        "summary": "List maker executions",
        "description": "Lists maker executions which match the given filters.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMakerExecutionsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExecutionReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/maker_performance": {
      "post": {
        "summary": "List maker performance",
        "description": "Lists maker performance statistics.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMakerPerformanceQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MakerPerformance"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/markouts": {
      "get": {
        "summary": "List markouts",
        "description": "Lists markouts grouped by instrument, venue or accounts.",
        "tags": [
          "Analytics"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Markout"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/markouts": {
      "post": {
        "summary": "List markouts report",
        "description": "Lists markouts grouped by instrument, venue, user, trader_id or accounts.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMarkoutsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Markout"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/ohlc/{market}/{period}": {
      "get": {
        "summary": "List all OHLC for a market",
        "description": "Retrieves the OHLC for a given market and period.",
        "parameters": [
          {
            "name": "market",
            "in": "path",
            "description": "The market symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "period",
            "in": "path",
            "description": "A period for the OHLC. Valid values are 1s, 1m, 1w, 1d.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          }
        ],
        "tags": [
          "Analytics"
        ],
        "responses": {
          "200": {
            "description": "A JSON array of ohlc",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Ohlc"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/order_totals": {
      "post": {
        "summary": "List order totals",
        "description": "Lists order totals grouped by various dimensions.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsOrderTotalsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTotals"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/orders": {
      "post": {
        "summary": "List orders",
        "description": "Lists orders which match the given filters.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsOrdersQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/reference_rates/{asset}": {
      "get": {
        "summary": "List reference rates",
        "description": "Lists reference rates for the given asset.",
        "parameters": [
          {
            "name": "asset",
            "in": "path",
            "description": "The asset.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Analytics"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReferenceRates"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/rfq_totals": {
      "post": {
        "summary": "List RFQ totals",
        "description": "Lists RFQ totals grouped by various dimensions.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsRfqTotalsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RfqTotals"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/execution_snapshot/{date}/{market}/{order_id}": {
      "get": {
        "summary": "Retrieve execution snapshot",
        "description": "Retrieves order details and competing quotes at time of placement for given order.",
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "description": "The order date in YYYYMMDD format.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "market",
            "in": "path",
            "description": "The market symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "The order ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Analytics"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionSnapshot"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The Order, Quote/Pricing, or Reval Rates could not be found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/spreads/ladders": {
      "get": {
        "summary": "Retrieve ladder sampling quantities",
        "description": "Retrieves ladder sampling quantities for each instrument.",
        "tags": [
          "Analytics"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AnalyticsInstrumentLadder"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The instrument could not be found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/markouts/{date}/{market}/{order_id}": {
      "get": {
        "summary": "Retrieve markouts",
        "description": "Retrieves markout for for the given order.",
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "description": "The order date in YYYYMMDD format.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "market",
            "in": "path",
            "description": "The market symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "The order ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Analytics"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Markout"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The Order could not be found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/order_execution/{date}/{market}/{order_id}": {
      "get": {
        "summary": "Retrieve order execution",
        "description": "Retrieves market data and execution reports for given order.",
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "description": "The order date in YYYYMMDD format.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "market",
            "in": "path",
            "description": "The market symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "The order ID.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Analytics"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderExecution"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The Order or Market Data could not be found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/spreads": {
      "post": {
        "summary": "Retrieve spreads",
        "description": "Retrieves spreads analytics.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsSpreadsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Spread"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/spreads/matrix": {
      "post": {
        "summary": "Retrieve spreads matrix",
        "description": "Retrieves spreads matrix analytics.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsSpreadsMatrixQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SpreadMatrix"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/analytics/queries/trends": {
      "post": {
        "summary": "Retrieve trends",
        "description": "Retrieves trend analytics.",
        "tags": [
          "Analytics"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsTrendQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Trend"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/audit": {
      "get": {
        "summary": "List all audits",
        "description": "Lists all audit points for the organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "A JSON array of audit points",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Audit"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/venues": {
      "get": {
        "summary": "List all venues",
        "description": "Lists all venues available to the organization.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Venue"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org": {
      "get": {
        "summary": "Retrieve the organization",
        "description": "Retrieves the organization for the current authenticated user.",
        "parameters": [
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update the organization",
        "description": "Updates the organization for the current authenticated user.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationUpdate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/assets": {
      "get": {
        "summary": "List all assets",
        "description": "List all assets.",
        "parameters": [
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Asset"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/instruments": {
      "get": {
        "summary": "List all instruments",
        "description": "List all instruments.",
        "parameters": [
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Instrument"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/markets/{symbol}/tenors": {
      "get": {
        "summary": "List all market tenors",
        "description": "List all tenors for a market.",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "description": "A valid market symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Tenor"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/markets": {
      "get": {
        "summary": "List all markets",
        "description": "List all markets as a taker.",
        "parameters": [
          {
            "$ref": "#/components/parameters/ExpandParameter"
          },
          {
            "name": "type",
            "in": "query",
            "description": "One of: esp, rfq or algo. Show either esp, rfq or algo markets.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Market"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/markets_accounts": {
      "get": {
        "summary": "List all markets accounts",
        "description": "List all markets with associated accounts",
        "parameters": [
          {
            "$ref": "#/components/parameters/ExpandParameter"
          },
          {
            "name": "type",
            "in": "query",
            "description": "One of: esp, rfq, or algo. Show either esp, rfq, or algo markets.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MarketAccounts"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/strategies": {
      "get": {
        "summary": "List all strategies",
        "description": "List all strategies.",
        "parameters": [
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Strategy"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/tenors": {
      "get": {
        "summary": "List all tenors",
        "description": "List all tenors by instrument type.",
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InstrumentTypeTenors"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/venues": {
      "get": {
        "summary": "List all venues",
        "description": "List all venues.",
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Venue"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/assets/{symbol}": {
      "get": {
        "summary": "Retrieve an asset",
        "description": "Retrieves an asset.",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "description": "A valid asset symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Asset"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/instruments/{symbol}/{instr_type}": {
      "get": {
        "summary": "Retrieve an instrument",
        "description": "Retrieves an instrument.",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "description": "A valid instrument symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instr_type",
            "in": "path",
            "description": "A valid instrument type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Instrument"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/markets/{symbol}": {
      "get": {
        "summary": "Retrieve a market",
        "description": "Retrieves a market.",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "description": "A valid market symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Market"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/strategies/{symbol}": {
      "get": {
        "summary": "Retrieve a strategy",
        "description": "Retrieves an strategy.",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "description": "A valid strategy symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Strategy"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The strategy could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/tenors/{symbol}": {
      "get": {
        "summary": "Retrieve a tenor",
        "description": "Retrieves a tenor.",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "description": "A valid tenor symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Tenor"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/reference/venues/{symbol}": {
      "get": {
        "summary": "Retrieve a venue",
        "description": "Retrieves a venue.",
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "description": "A valid venue symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Venue"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/accounts/notes": {
      "get": {
        "summary": "List all account notes for the current user",
        "description": "Retrieves all notes for all accounts assigned to the current authenticated user.",
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/accounts": {
      "get": {
        "summary": "List the user accounts",
        "description": "Lists all accounts for the current authenticated user.",
        "tags": [
          "User"
        ],
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "description": "One of: active, archived, all. Show either active, archived, or all accounts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Account"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/activity": {
      "get": {
        "summary": "List the user activity",
        "description": "List all activity for the current authenticated user.",
        "parameters": [
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          }
        ],
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserActivity"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/allocations": {
      "get": {
        "summary": "List user account allocations",
        "description": "List all allocations on accounts assigned to user.",
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserAllocation"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: No allocations could be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/reporting/executions": {
      "get": {
        "summary": "List user trade executions",
        "description": "Lists all trade executions which match the given filters filtered to user accounts.",
        "parameters": [
          {
            "name": "accounts",
            "in": "query",
            "description": "A comma separated list of accounts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asset_types",
            "in": "query",
            "description": "A comma separated list of asset types.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instruments",
            "in": "query",
            "description": "A comma separated list of instruments.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locations",
            "in": "query",
            "description": "A comma separated list of locations.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "products",
            "in": "query",
            "description": "A comma separated list of products.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocols",
            "in": "query",
            "description": "A comma separated list of protocols.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "venues",
            "in": "query",
            "description": "A comma separated list of venues.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "users",
            "in": "query",
            "description": "A comma separated list of users.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "An IANA timezone string.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetParameter"
          }
        ],
        "tags": [
          "Reporting"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExecutionReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/reporting/order_totals": {
      "get": {
        "summary": "List user order totals",
        "description": "Lists totals for orders by given grouping filtered to users accounts.",
        "parameters": [
          {
            "name": "accounts",
            "in": "query",
            "description": "A comma separated list of accounts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asset_types",
            "in": "query",
            "description": "A comma separated list of asset types.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instruments",
            "in": "query",
            "description": "A comma separated list of instruments.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locations",
            "in": "query",
            "description": "A comma separated list of locations.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "products",
            "in": "query",
            "description": "A comma separated list of products.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocols",
            "in": "query",
            "description": "A comma separated list of protocols.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "An IANA timezone string.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ReportGroupingsParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetParameter"
          },
          {
            "$ref": "#/components/parameters/VolumeMaxParameter"
          },
          {
            "$ref": "#/components/parameters/VolumeMinParameter"
          }
        ],
        "tags": [
          "Reporting"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTotals"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/reporting/orders": {
      "get": {
        "summary": "List all user orders",
        "description": "Lists all orders which match the given filters filtered to user accounts.",
        "parameters": [
          {
            "name": "accounts",
            "in": "query",
            "description": "A comma separated list of accounts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asset_types",
            "in": "query",
            "description": "A comma separated list of asset types.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instruments",
            "in": "query",
            "description": "A comma separated list of instruments.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locations",
            "in": "query",
            "description": "A comma separated list of locations.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "products",
            "in": "query",
            "description": "A comma separated list of products.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocols",
            "in": "query",
            "description": "A comma separated list of protocols.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "venues",
            "in": "query",
            "description": "A comma separated list of venues.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "users",
            "in": "query",
            "description": "A comma separated list of users.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "An IANA timezone string.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetParameter"
          }
        ],
        "tags": [
          "Reporting"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/reporting/rfq_totals": {
      "get": {
        "summary": "List user rfq totals",
        "description": "Lists totals for RFQ by given grouping filtered to users accounts.",
        "parameters": [
          {
            "name": "accounts",
            "in": "query",
            "description": "A comma separated list of accounts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instruments",
            "in": "query",
            "description": "A comma separated list of instruments.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "products",
            "in": "query",
            "description": "A comma separated list of products.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "An IANA timezone string.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ReportGroupingsParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetParameter"
          }
        ],
        "tags": [
          "Reporting"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RfqTotals"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/roles": {
      "get": {
        "summary": "List the user roles",
        "description": "Lists all roles for the current authenticated user.",
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Role"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/settings": {
      "get": {
        "summary": "List the user settings",
        "description": "Lists all settings for the current authenticated user.",
        "parameters": [
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/OffsetParameter"
          },
          {
            "$ref": "#/components/parameters/ReverseParameter"
          }
        ],
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Setting"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user": {
      "get": {
        "summary": "Retrieve the user",
        "description": "Retrieves the current authenticated user.",
        "parameters": [
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update the user",
        "description": "Updates the current authenticated user.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/limits": {
      "get": {
        "summary": "Retrieve user limits",
        "description": "Retrieves trading limits for the user in USD.",
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserProductLimit"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update user limits",
        "description": "Updates trading limits for the user in USD.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductLimit"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductLimit"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/settings/{settings_key}": {
      "get": {
        "summary": "Retrieve a user setting",
        "description": "Retrieves a user setting for the given key.",
        "parameters": [
          {
            "name": "settings_key",
            "in": "path",
            "description": "The settings key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Setting"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update a user setting",
        "description": "Updates a user setting for the given settings key.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Setting"
              }
            }
          },
          "required": true
        },
        "parameters": [
          {
            "name": "settings_key",
            "in": "path",
            "description": "The settings key.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "User"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Setting"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/user/reporting/trends": {
      "get": {
        "summary": "List user trends",
        "description": "Retrieve user trend data for a given interval, grouping, and metric.",
        "parameters": [
          {
            "name": "accounts",
            "in": "query",
            "description": "A comma separated list of accounts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asset_types",
            "in": "query",
            "description": "A comma separated list of asset types.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instruments",
            "in": "query",
            "description": "A comma separated list of instruments.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locations",
            "in": "query",
            "description": "A comma separated list of locations.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "products",
            "in": "query",
            "description": "A comma separated list of products.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "protocols",
            "in": "query",
            "description": "A comma separated list of protocols.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "users",
            "in": "query",
            "description": "A comma separated list of users.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "An IANA timezone string.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/ReportIntervalParameter"
          },
          {
            "$ref": "#/components/parameters/ReportTrendGroupingParameter"
          },
          {
            "$ref": "#/components/parameters/ReportMetricParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/VolumeMaxParameter"
          },
          {
            "$ref": "#/components/parameters/VolumeMinParameter"
          }
        ],
        "tags": [
          "Reporting"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Trend"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/order_staging": {
      "post": {
        "summary": "Create staged orders",
        "description": "Creates staged orders in Order Staging from an array of parameters.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StagedOrderCreate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request: Invalid body parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "List staged orders",
        "description": "Lists all staged orders for the given input parameters.",
        "parameters": [
          {
            "name": "accounts",
            "in": "query",
            "description": "A comma separated list of accounts to filter by.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ending_before",
            "in": "query",
            "description": "The timestamp of the end time of the date range to list staged orders for.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "The fields to expand in the response.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of staged orders to return.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of staged orders to skip.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "starting_after",
            "in": "query",
            "description": "The timestamp of the start time of the date range to list staged orders for.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StagedOrder"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: Invalid query parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/order_staging/{staging_id}": {
      "delete": {
        "summary": "Delete staged order",
        "description": "Deletes a staged order with the given staging_id from Order Staging.",
        "parameters": [
          {
            "name": "staging_id",
            "in": "path",
            "description": "The id of the staged order to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: Staged order could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Retrieve staged order",
        "description": "Retrieves details of a singular staged order by staging_id.",
        "parameters": [
          {
            "name": "staging_id",
            "in": "path",
            "description": "The id of the staged order to retrieve.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StagedOrder"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: Invalid query parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: Staged order could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update staged order",
        "description": "Updates a staged order with the given staging_id with new parameters.",
        "parameters": [
          {
            "name": "staging_id",
            "in": "path",
            "description": "The id of the staged order to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StagedOrderUpdate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request: Invalid body parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: Staged order is locked or not accessible.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: Staged order could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/order_staging/{staging_id}/lock": {
      "put": {
        "summary": "Lock staged order",
        "description": "Locks a shared staged order with the given staging_id for editing or trading.",
        "parameters": [
          {
            "name": "staging_id",
            "in": "path",
            "description": "The id of the staged order to lock.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StagedOrderLock"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request: Invalid body parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden: Staged order is already locked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: Staged order could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Unlock staged order",
        "description": "Unlocks a locked staged order with the given staging_id so that it is free to be locked by another user.",
        "parameters": [
          {
            "name": "staging_id",
            "in": "path",
            "description": "The id of the staged order to unlock.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StagedOrderLock"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request: Invalid body parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: Staged order could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/order_staging/{staging_id}/reload": {
      "put": {
        "summary": "Reload staged order",
        "description": "Reloads a completed staged order with the given staging_id for additional trading or editing.",
        "parameters": [
          {
            "name": "staging_id",
            "in": "path",
            "description": "The id of the staged order to reload.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: Staged order could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/order_staging/{staging_id}/share": {
      "put": {
        "summary": "Share staged order",
        "description": "Shares a staged order with the given staging_id to all users with access to the account of the staged order.",
        "parameters": [
          {
            "name": "staging_id",
            "in": "path",
            "description": "The id of the staged order to share.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: Staged order could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Unshare staged order",
        "description": "Unshares a shared staged order with the given staging_id from all users other than the creator.",
        "parameters": [
          {
            "name": "staging_id",
            "in": "path",
            "description": "The id of the staged order to unshare.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error: An unexpected error occurred.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/orders": {
      "delete": {
        "summary": "Cancel all orders",
        "description": "Cancels all orders for the existing user.",
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Create a new order",
        "description": "Creates a new order.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewOrder"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Trading"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NewOrderResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "List all orders",
        "description": "Lists all orders for the current user or accounts. This endpoint is restricted to the last 30 days of trading.",
        "parameters": [
          {
            "name": "accounts",
            "in": "query",
            "description": "A comma separated list of accounts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "One of: active.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/ReverseParameter"
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Order"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/orders/{market}/{order_id}": {
      "delete": {
        "summary": "Cancel an order",
        "description": "Cancels an order for the existing user.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelOrder"
              }
            }
          },
          "required": true
        },
        "parameters": [
          {
            "name": "market",
            "in": "path",
            "description": "The market symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "The order id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Retrieve an order",
        "description": "Retrieves an order for the given market, order id for the current date.",
        "parameters": [
          {
            "name": "market",
            "in": "path",
            "description": "The market.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "The order id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/ReverseParameter"
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Revise an order",
        "description": "Revise a previously placed order.",
        "parameters": [
          {
            "name": "market",
            "in": "path",
            "description": "The market symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "The order id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderUpdate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Trading"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/orders/{date}/{market}/{order_id}": {
      "get": {
        "summary": "Retrieve an order by date",
        "description": "Retrieves an order for the given market, order id, and creation date.",
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "description": "The order creation date in YYYYMMDD format.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "market",
            "in": "path",
            "description": "The market.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order_id",
            "in": "path",
            "description": "The order id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/ReverseParameter"
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Order"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/trades": {
      "get": {
        "summary": "List all trades",
        "description": "Lists all trades for the current user or accounts. This endpoint is restricted to the last 30 days of trading.",
        "parameters": [
          {
            "name": "accounts",
            "in": "query",
            "description": "A comma separated list of accounts",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/EndingBeforeParameter"
          },
          {
            "$ref": "#/components/parameters/StartingAfterParameter"
          },
          {
            "$ref": "#/components/parameters/LimitParameter"
          },
          {
            "$ref": "#/components/parameters/ReverseParameter"
          },
          {
            "$ref": "#/components/parameters/ExpandParameter"
          }
        ],
        "tags": [
          "Trading"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Trade"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/client_accounts/{account}": {
      "delete": {
        "summary": "Drop client account",
        "description": "Drops a client account as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Accounts"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Retrieve a client account",
        "description": "Retrieves a client account as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientAccountDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/accounts": {
      "get": {
        "summary": "List all accounts",
        "description": "Lists all accounts in the organization, in the order that they were created.",
        "tags": [
          "Accounts"
        ],
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "description": "One of: active, archived, all. Show either active, archived, or all accounts.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Account"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/accounts/positions": {
      "get": {
        "summary": "List NOP for all accounts",
        "description": "Lists the Net Open Positions for all accounts.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountsPositions"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/client_accounts": {
      "get": {
        "summary": "List all client accounts",
        "description": "Lists all client accounts as a maker.",
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClientAccount"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/accounts/{account}": {
      "get": {
        "summary": "Retrieve an account",
        "description": "Retrieves an account in the organization.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/client_accounts/{account}/allocations": {
      "get": {
        "summary": "Retrieve client account allocations",
        "description": "Retrieves allocations for the account as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VenueAllocation"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: No allocations found for this account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Updates client account allocation tags",
        "description": "Updates allocation tags for the account as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AllocationTags"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AllocationTags"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: Account allocations not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/client_accounts/{account}/tags": {
      "get": {
        "summary": "Retrieve client account tags",
        "description": "Retrieves account tags used on orders received as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountTag"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update client account tags",
        "description": "Updates account tags used on orders received as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AccountTag"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Accounts"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/client_accounts/{account}/algo_tags": {
      "get": {
        "summary": "Retrieve client account algo tags",
        "description": "Retrieves account tags used on algo orders received as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountTag"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update client account algo tags",
        "description": "Updates account tags used on algo orders received as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AccountTag"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Accounts"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/client_accounts/{account}/rfq": {
      "get": {
        "summary": "Retrieve client account RFQ products",
        "description": "Retrieves products enabled for RFQ as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update client account rfq products",
        "description": "Updates client account rfq products as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Accounts"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/client_accounts/{account}/strategies": {
      "get": {
        "summary": "Retrieve client account strategies",
        "description": "Retrieves algo strategies for the account as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Accounts"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update client account strategies",
        "description": "Updates client account algo strategies as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Accounts"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/client_accounts/{account}/protocols": {
      "patch": {
        "summary": "Update client account protocols",
        "description": "Updates enabled protocols on an account as a maker",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Accounts"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/analytics/access": {
      "get": {
        "summary": "List analytics access",
        "description": "List venue access to your analytics",
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AnalyticsAccess"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update analytics access",
        "description": "Updates venue access to your analytics",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsAccessUpdate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Mappings"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/analytics/access/history": {
      "get": {
        "summary": "List analytics access history",
        "description": "List history of venue access to your analytics",
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AnalyticsAccessHistory"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/prime_broker_clients/{client_id}/trading": {
      "delete": {
        "summary": "Disable prime broker client trading",
        "description": "Disables trading for the client as a prime broker.",
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "The clients id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Enable prime broker client trading",
        "description": "Enables trading for the client as a prime broker.",
        "parameters": [
          {
            "name": "client_id",
            "in": "path",
            "description": "The clients id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/prime_broker_clients": {
      "get": {
        "summary": "List prime broker clients",
        "description": "Lists all clients as a prime broker.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PrimeBrokerClient"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/instrument_groups": {
      "post": {
        "summary": "Create instrument group",
        "description": "Creates an instrument group",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstrumentGroupCreate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstrumentGroup"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "List instrument groups",
        "description": "Lists all instrument groups",
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InstrumentGroup"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/instrument_groups/{id}": {
      "delete": {
        "summary": "Delete instrument group",
        "description": "Deletes an instrument group",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The instrument group id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Mappings"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Retrieve instrument group",
        "description": "Retrieves an instrument group",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The instrument group id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update instrument group",
        "description": "Updates an instrument group",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The instrument group id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstrumentGroupUpdate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstrumentGroup"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/instrument_groups/history": {
      "get": {
        "summary": "List instrument groups history",
        "description": "List history for all instrument groups",
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InstrumentGroupHistory"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/liquidity/disablement": {
      "get": {
        "summary": "List liquidity disablement",
        "description": "List disablement for all accounts and venues as a taker.",
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InstrumentGroupDisablement"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update disablement by instrument group",
        "description": "Updates disablement for all instrument groups",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InstrumentGroupDisablementUpdate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Mappings"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/liquidity/disablement/history": {
      "get": {
        "summary": "List liquidity disablement history",
        "description": "List history of disablement for all accounts and venues as a taker.",
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InstrumentGroupDisablementHistory"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/mappings": {
      "get": {
        "summary": "List all stream mappings",
        "description": "Lists all stream mappings across all accounts as a maker",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of mappings to return.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of mappings to skip.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StreamMapping"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/mappings/{account}": {
      "get": {
        "summary": "List stream mappings by account",
        "description": "Lists stream mappings for an account as a maker",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StreamMapping"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update stream mappings",
        "description": "Updates all stream mappings for an account as a maker.",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/StreamMappingUpdate"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Mappings"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/mappings/{account}/{history_id}": {
      "get": {
        "summary": "List stream mappings by history id",
        "description": "Lists stream mappings for an account at a given history id as a maker",
        "parameters": [
          {
            "name": "account",
            "in": "path",
            "description": "The account symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "history_id",
            "in": "path",
            "description": "The history id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StreamMapping"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/mappings/history": {
      "get": {
        "summary": "List stream mappings history",
        "description": "Lists history of stream mappings as a maker",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "One of: algo, esp or rfq. Defaults to esp.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StreamMappingRevision"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/members": {
      "post": {
        "summary": "Create member",
        "description": "Create a member in your organization.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewMember"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "List all members",
        "description": "Lists all members in the organization, in the order that they were added.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/members/{member_id}": {
      "delete": {
        "summary": "Delete a member",
        "description": "Deletes the user account of a member of your organization.",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "description": "The id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Retrieve a member",
        "description": "Retrieve a member of your organization.",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "description": "The id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update a member",
        "description": "Update a member of your organization.",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "description": "The id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/members/{member_id}/accounts": {
      "get": {
        "summary": "List member accounts",
        "description": "List the accounts of a member in your organization.",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "description": "The id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update member accounts",
        "description": "Updates the accounts of a member in your organization.",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "description": "The id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/members/{member_id}/roles": {
      "get": {
        "summary": "List member roles",
        "description": "List the roles of a member in your organization.",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "description": "The id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update member roles",
        "description": "Updates the roles of a member in your organization.",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "description": "The id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/members/{member_id}/logoff": {
      "put": {
        "summary": "Logout a member",
        "description": "Logout a member of your organization.",
        "parameters": [
          {
            "name": "member_id",
            "in": "path",
            "description": "The id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/members/{user_id}/suspended": {
      "put": {
        "summary": "Suspend a member",
        "description": "Suspend the user account of a member of your organization.",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "The user id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Unsuspend a member",
        "description": "Unsuspend the user account of a member of your organization.",
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "The user id of the member.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not Found: The organization member could not be found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/onboarding/requests/{request_id}": {
      "put": {
        "summary": "Accept onboarding request",
        "description": "Accepts an onboarding request and applies the provided mappings",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "description": "The onboarding request id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OnboardingRequestAcceptMappings"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Mappings"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Decline onboarding request",
        "description": "Delines an onboarding request",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "description": "The onboarding request id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Mappings"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "summary": "Retrieve onboarding request",
        "description": "Retrieves the onboading request with given id",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "description": "The onboarding request id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OnboardingRequest"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/onboarding/requests": {
      "get": {
        "summary": "List onboarding requests",
        "description": "Lists all account onboarding requests as a maker",
        "tags": [
          "Mappings"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OnboardingRequest"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reference/client/markets": {
      "get": {
        "summary": "List all client markets as a maker",
        "description": "List all client markets as a maker.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of markets to return.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of markets to skip.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Market"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content: Organization is not a maker."
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reference/strategies": {
      "get": {
        "summary": "List all strategies as a maker",
        "description": "List all client markets as a maker.",
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Strategy"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reference/underlying/metadata": {
      "get": {
        "summary": "List all underlying market metadata as a maker",
        "description": "List all underlying market metadata as a maker.",
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UnderlyingMetadata"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content: Organization is not a maker."
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reference/underlying/markets": {
      "get": {
        "summary": "List all underlying markets as a maker",
        "description": "List all underlying markets as a maker.",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "The maximum number of underlyings to return.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "The number of underlyings to skip.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Underlying"
                  }
                }
              }
            }
          },
          "204": {
            "description": "No Content: Organization is not a maker."
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reference/markets": {
      "get": {
        "summary": "List all taker markets",
        "description": "List all taker markets.",
        "tags": [
          "Reference"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Market"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/executions": {
      "post": {
        "summary": "List trade executions",
        "description": "Lists all trade executions which match the given filters.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsExecutionsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExecutionReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/maker_execution_totals": {
      "post": {
        "summary": "List totals for maker trade executions",
        "description": "Lists totals for trades by the given grouping.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMakerExecutionTotalsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExecutionTotal"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/maker_executions": {
      "post": {
        "summary": "List maker trade executions",
        "description": "Lists all trades which match the given filters.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMakerExecutionsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExecutionReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/maker_order_totals": {
      "post": {
        "summary": "List totals for maker orders",
        "description": "Lists totals for orders by the given grouping.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMakerOrderTotalsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTotals"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/maker_performance": {
      "post": {
        "summary": "List maker performance",
        "description": "Lists performance of your organization as a maker. Only includes accounts and metrics which have been granted by the taker.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMakerPerformanceQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MakerPerformance"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/maker_rejects": {
      "post": {
        "summary": "List maker trade rejections",
        "description": "Lists all rejections which match the given filters.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsMakerRejectsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExecutionReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/order_totals": {
      "post": {
        "summary": "List order totals",
        "description": "Lists totals for orders by given grouping.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsOrderTotalsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderTotals"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/orders": {
      "post": {
        "summary": "List all orders",
        "description": "Lists all orders which match the given filters.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsOrdersQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrderReport"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/rfq_totals": {
      "post": {
        "summary": "List RFQ totals",
        "description": "Lists totals for RFQ requests by given grouping.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsRfqTotalsQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RfqTotals"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/reporting/trends": {
      "post": {
        "summary": "Retrieve trend",
        "description": "Retrieve trend data for a given interval, grouping, and metric.",
        "tags": [
          "Reporting"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsTrendQuery"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Trend"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: The request is invalid/validation failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/settings/credit_limits": {
      "get": {
        "summary": "Retrieve NOS credit limits",
        "description": "Retrieves the NOS credit limits for all accounts.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationCreditLimits"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update NOS credit limits",
        "description": "Updates the NOS credit limits for all accounts.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationCreditLimits"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request: Invalid body parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/settings/notification_emails": {
      "get": {
        "summary": "Retrieve notification emails",
        "description": "Retrieves the notification email addresses.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationEmails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update email notifications",
        "description": "Updates the notification emails.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotificationEmails"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationEmails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/settings/limits": {
      "get": {
        "summary": "Retrieve organization limits",
        "description": "Retrieves the default hard trading limits for the organization.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductLimit"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update organization limits",
        "description": "Updates the default hard trading limits for the organization.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductLimit"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductLimit"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/settings/member_limits": {
      "get": {
        "summary": "Retrieve organization member limits",
        "description": "Retrieves the hard trading limits for members of the organization.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationMemberLimits"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update organization member limits",
        "description": "Updates the hard trading limits for members of the organization.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OrganizationMemberLimits"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationMemberLimits"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/settings/prime_broker_fees": {
      "get": {
        "summary": "Retrieve prime broker fees",
        "description": "Retrieves the prime broker fees for all accounts in $ per million as a taker.",
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationPrimeBrokerFee"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update prime broker fees",
        "description": "Updates the prime broker fees for all accounts in $ per million as a taker.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OrganizationPrimeBrokerFee"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Organization"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationPrimeBrokerFee"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/security/allowed_ips": {
      "get": {
        "summary": "Retrieve allowed IP addresses",
        "description": "Retrieves the IP address ranges which are allowed access for the organization.",
        "tags": [
          "Security"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AllowedIP"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update allowed IP addresses",
        "description": "Updates the IP address ranges which are allowed access for the organization.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AllowedIPUpdate"
                }
              }
            }
          },
          "required": true
        },
        "tags": [
          "Security"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AllowedIP"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request: CIDR blocks are invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/security/domain_slug": {
      "delete": {
        "summary": "Remove organization domain slug",
        "description": "Removes the custom domain slug for the organization.",
        "tags": [
          "Security"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "summary": "Update organization domain slug",
        "description": "Sets a unique, lowercase custom domain slug for the organization used to identify it on inbound requests.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDomainSlug"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Security"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict: The domain slug is already in use.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/security/require_mfa": {
      "put": {
        "summary": "Require MFA",
        "description": "Requires all users in the organization have MFA enabled.",
        "tags": [
          "Security"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Unrequire MFA",
        "description": "Removes the MFA enforcement from the organization.",
        "tags": [
          "Security"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/roles": {
      "get": {
        "summary": "List all roles",
        "description": "Lists all roles available to your organization.",
        "tags": [
          "Roles"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Role"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/roles/{role}": {
      "get": {
        "summary": "Retrieve a role",
        "description": "Returns a role in the organization.",
        "parameters": [
          {
            "name": "role",
            "in": "path",
            "description": "The role symbol.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "Roles"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Role"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/security/require_saml": {
      "put": {
        "summary": "Require SAML",
        "description": "Requires all users in the organization sign in with SAML.",
        "tags": [
          "Security"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Unrequire SAML",
        "description": "Removes the SAML enforcement from the organization.",
        "tags": [
          "Security"
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/org/security/saml": {
      "get": {
        "summary": "Retrieve SAML configuration",
        "description": "Returns the SAML configuration for the organization.",
        "tags": [
          "Security"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SamlConfig"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Update SAML cofiguration",
        "description": "Updates the SAML configuration for the organization.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SamlConfig"
              }
            }
          },
          "required": true
        },
        "tags": [
          "Security"
        ],
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SamlConfig"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorised: Authorization information is missing or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "EndingBeforeParameter": {
        "in": "query",
        "name": "ending_before",
        "schema": {
          "type": "integer",
          "minimum": 0
        },
        "required": false,
        "description": "The time in unix milliseconds."
      },
      "ExpandParameter": {
        "in": "query",
        "name": "expand",
        "schema": {
          "type": "string"
        },
        "required": false,
        "description": "A comma separated list of properties to expand."
      },
      "LimitParameter": {
        "in": "query",
        "name": "limit",
        "schema": {
          "type": "integer",
          "minimum": 0,
          "default": 10
        },
        "required": false,
        "description": "A limit on the number of objects to be returned. Default is 10."
      },
      "MakerPerformanceReportGrouping": {
        "in": "query",
        "name": "groupings",
        "schema": {
          "type": "string",
          "enum": [
            "account",
            "asset_type",
            "client",
            "date",
            "instrument",
            "location",
            "product",
            "protocol",
            "user"
          ]
        },
        "required": false,
        "description": "A comma separated list of fields to group by. Defaults to 'account' and 'product' which are required groupings."
      },
      "OffsetParameter": {
        "in": "query",
        "name": "offset",
        "schema": {
          "type": "integer",
          "minimum": 0,
          "default": 0
        },
        "required": false,
        "description": "An offset on the objects to be returned."
      },
      "ReportGroupingsParameter": {
        "in": "query",
        "name": "groupings",
        "schema": {
          "type": "string",
          "enum": [
            "account",
            "date",
            "hour",
            "instrument",
            "product",
            "side",
            "venue"
          ]
        },
        "required": true,
        "description": "A comma separated list of fields to group by."
      },
      "ReportIntervalParameter": {
        "in": "query",
        "name": "interval",
        "schema": {
          "type": "string",
          "enum": [
            "day",
            "hour",
            "month",
            "quarter",
            "week",
            "year"
          ]
        },
        "required": true,
        "description": "The time interval to be applied to the trend data."
      },
      "ReportMetricParameter": {
        "in": "query",
        "name": "metric",
        "schema": {
          "type": "string",
          "enum": [
            "filled",
            "rejected",
            "fill_rate",
            "reject_rate",
            "order_volume",
            "filled_volume",
            "market_share",
            "venue_rtt_max",
            "venue_rtt_mean",
            "venue_rtt_median"
          ]
        },
        "required": true,
        "description": "The metric to query a trend for."
      },
      "ReportTrendGroupingParameter": {
        "in": "query",
        "name": "grouping",
        "schema": {
          "type": "string",
          "enum": [
            "account",
            "asset_type",
            "client",
            "intrument",
            "location",
            "product",
            "protocol",
            "user",
            "venue"
          ]
        },
        "required": true,
        "description": "The grouping required for the trend."
      },
      "VolumeMaxParameter": {
        "in": "query",
        "name": "volume_max",
        "schema": {
          "type": "integer",
          "minimum": 1
        },
        "required": false,
        "description": "The maximum volume (USD) of orders to show."
      },
      "VolumeMinParameter": {
        "in": "query",
        "name": "volume_min",
        "schema": {
          "type": "integer",
          "minimum": 0
        },
        "required": false,
        "description": "The minimum volume (USD) of orders to show."
      },
      "ReverseParameter": {
        "in": "query",
        "name": "reverse",
        "schema": {
          "type": "boolean"
        },
        "required": false,
        "description": "Reverses the results."
      },
      "StartingAfterParameter": {
        "in": "query",
        "name": "starting_after",
        "schema": {
          "type": "integer",
          "minimum": 0
        },
        "required": false,
        "description": "The time in unix milliseconds."
      }
    },
    "schemas": {
      "Account": {
        "properties": {
          "created_ts": {
            "description": "Created time in unix nanoseconds.",
            "type": "number"
          },
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "imid": {
            "description": "FINRA CAT IMID (US Equities). Must be one of the parent organization's IMIDs.",
            "type": "string"
          },
          "liquidity_type": {
            "description": "Liquidity types.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "FullAmountLadder",
                "FullAmountStack",
                "SweepableStack"
              ]
            }
          },
          "liquidity_location": {
            "description": "Liquidity location.",
            "type": "string",
            "enum": [
              "london",
              "mixed",
              "newyork",
              "singapore"
            ]
          },
          "parent_account": {
            "description": "Parent account symbol.",
            "type": "string"
          },
          "prime_broker": {
            "description": "Prime broker venue symbol.",
            "type": "string"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          },
          "uid": {
            "description": "Unique 16-character identifier assigned to the account.",
            "type": "string",
            "minLength": 16,
            "maxLength": 16,
            "readOnly": true
          },
          "updated_ts": {
            "description": "Updated time in unix nanoseconds.",
            "type": "number"
          }
        },
        "required": [
          "created_ts",
          "symbol"
        ]
      },
      "AccountMarket": {
        "properties": {
          "market": {
            "type": "string",
            "description": "Market symbol."
          },
          "underlying": {
            "type": "string",
            "description": "Underlying market symbol."
          }
        },
        "required": [
          "market",
          "underlying"
        ]
      },
      "AccountTag": {
        "properties": {
          "field": {
            "description": "The account tag field",
            "type": "string"
          },
          "value": {
            "description": "The account tag value",
            "type": "string"
          }
        },
        "required": [
          "field",
          "value"
        ]
      },
      "AccountUpdate": {
        "properties": {
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "prime_broker": {
            "description": "Prime broker venue symbol.",
            "type": "string"
          }
        }
      },
      "AccountVenue": {
        "properties": {
          "account": {
            "description": "Account symbol.",
            "type": "string"
          },
          "enabled": {
            "description": "Whether the venue is enabled for the account.",
            "type": "boolean"
          },
          "venue": {
            "description": "Venue symbol.",
            "type": "string"
          }
        },
        "required": [
          "account",
          "enabled",
          "venue"
        ]
      },
      "AccountVenues": {
        "properties": {
          "account": {
            "description": "Account symbol.",
            "type": "string"
          },
          "venues": {
            "description": "Venues for the account.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "account",
          "venues"
        ]
      },
      "AccountsPositions": {
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "account": {
                  "type": "string"
                },
                "nop": {
                  "type": "number"
                }
              }
            }
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "account": {
                  "type": "string"
                },
                "nop": {
                  "type": "number"
                },
                "venue": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "AllocationTags": {
        "properties": {
          "id": {
            "description": "The allocation id",
            "type": "string"
          },
          "tag": {
            "description": "The allocation tag",
            "type": "string"
          }
        },
        "required": [
          "id",
          "tag"
        ]
      },
      "AllowedIP": {
        "properties": {
          "ip_address": {
            "description": "IP address or CIDR range from which access is allowed.",
            "type": "string"
          }
        },
        "required": [
          "ip_address"
        ]
      },
      "AllowedIPUpdate": {
        "properties": {
          "ip_address": {
            "description": "IP address or CIDR range from which access is allowed.",
            "type": "string"
          }
        },
        "required": [
          "ip_address"
        ]
      },
      "AnalyticsAccess": {
        "properties": {
          "access": {
            "description": "The allowed analytics access to grant.",
            "type": "string",
            "enum": [
              "market_share_bucketed",
              "market_share_explicit",
              "markouts",
              "min_data_granularity_monthly",
              "min_data_granularity_weekly",
              "ranking_explicit",
              "ranking_quartile",
              "reject_rate",
              "rtt"
            ]
          },
          "account": {
            "description": "The account to enable analytics access for.",
            "type": "string"
          },
          "product": {
            "description": "The product to enable analytics access for.",
            "type": "string"
          },
          "venue": {
            "description": "The venue to enable analytics access for.",
            "type": "string"
          }
        },
        "required": [
          "access",
          "account",
          "product",
          "venue"
        ]
      },
      "AnalyticsAccessHistory": {
        "properties": {
          "added": {
            "$ref": "#/components/schemas/AnalyticsAccess"
          },
          "removed": {
            "$ref": "#/components/schemas/AnalyticsAccess"
          },
          "timestamp": {
            "description": "The timestamp of the history entry.",
            "type": "number"
          },
          "user": {
            "description": "The user which made the change.",
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "timestamp",
          "user"
        ]
      },
      "AnalyticsAccessUpdate": {
        "type": "object",
        "properties": {
          "analytics_access": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyticsAccess"
            }
          }
        },
        "required": [
          "analytics_access"
        ]
      },
      "AnalyticsExecutionsQuery": {
        "title": "Executions Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of trading accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of fields to expand in the response (e.g. account, user)."
          },
          "instrument_groups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instrument groups to filter by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone string (default Etc/UTC)."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of venues to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsInstrumentLadder": {
        "type": "object",
        "properties": {
          "instr": {
            "type": "string"
          },
          "quantities": {
            "type": "array",
            "items": "number"
          }
        },
        "required": [
          "instr",
          "quantities"
        ]
      },
      "AnalyticsMakerExecutionTotalsQuery": {
        "title": "Maker Execution Totals Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "groupings": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "account",
                "asset_type",
                "client",
                "date",
                "hour",
                "instrument",
                "location",
                "product",
                "protocol",
                "side"
              ]
            },
            "description": "Dimensions to group the results by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone string (default Etc/UTC)."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsMakerExecutionsQuery": {
        "title": "Maker Executions Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "clients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of clients to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of fields to expand in the response (e.g. user)."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone string (default Etc/UTC)."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          },
          "venue": {
            "type": "string",
            "description": "Venue to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsMakerOrderTotalsQuery": {
        "title": "Maker Order Totals Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "groupings": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "account",
                "asset_type",
                "client",
                "date",
                "hour",
                "instrument",
                "location",
                "product",
                "protocol",
                "venue"
              ]
            },
            "description": "Dimensions to group the results by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone string (default Etc/UTC)."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsMakerPerformanceQuery": {
        "title": "Maker Performance Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of trading accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "clients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of clients to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Fields to expand in the response."
          },
          "groupings": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "account",
                "asset_type",
                "client",
                "date",
                "instrument",
                "location",
                "product",
                "protocol",
                "user"
              ]
            },
            "description": "Dimensions to group the results by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone to use for time-based groupings (e.g., 'UTC', 'America/New_York')."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of venues to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsMakerRejectsQuery": {
        "title": "Maker Rejects Query",
        "type": "object",
        "properties": {
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone string (default Etc/UTC)."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsMarkoutsQuery": {
        "title": "Markouts Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of trading accounts to filter by."
          },
          "ending_before": {
            "type": "number",
            "minimum": 1,
            "description": "Timestamp (ms) to end the query range. Range must be 31 days or less (inclusive)."
          },
          "groupings": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "enum": [
                "account",
                "instrument",
                "trader_id",
                "user",
                "venue"
              ]
            },
            "description": "Dimensions to group the results by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "minimum": 1,
            "description": "Maximum number of results to return."
          },
          "offset": {
            "type": "number",
            "minimum": 0,
            "description": "Number of results to skip."
          },
          "starting_after": {
            "type": "number",
            "minimum": 1,
            "description": "Timestamp (ms) to start the query range. Range must be 31 days or less (inclusive)."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone used by the query."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of venues to filter by."
          }
        },
        "required": [
          "ending_before",
          "groupings",
          "starting_after"
        ]
      },
      "AnalyticsOrderTotalsQuery": {
        "title": "Order Totals Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of trading accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "clients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of clients to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Fields to expand in the response."
          },
          "groupings": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "account",
                "asset_type",
                "client",
                "date",
                "hour",
                "instrument",
                "location",
                "product",
                "protocol",
                "user",
                "venue"
              ]
            },
            "description": "Dimensions to group the results by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone to use for time-based groupings (e.g., 'UTC', 'America/New_York')."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of venues to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsOrdersQuery": {
        "title": "Orders Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of trading accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of fields to expand in the response (e.g. account, user)."
          },
          "instrument_groups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instrument groups to filter by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone string (default Etc/UTC)."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of venues to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsRfqTotalsQuery": {
        "title": "RFQ Totals Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of trading accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "clients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of clients to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Fields to expand in the response."
          },
          "groupings": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "account",
                "client",
                "date",
                "hour",
                "instrument",
                "product",
                "user",
                "venue"
              ]
            },
            "description": "Dimensions to group the results by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone to use for time-based groupings (e.g., 'UTC', 'America/New_York')."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of venues to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsSpreadsMatrixQuery": {
        "title": "Analytics Spreads Matrix Query",
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "Trading account to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "description": "List of instruments to include in the matrix. Required if pivot_by is NOT 'instrument'. Cannot be provided if pivot_by IS 'instrument'."
          },
          "pivot_by": {
            "type": "string",
            "enum": [
              "instrument",
              "quantity",
              "venue"
            ],
            "description": "Dimension to pivot the matrix by. (instrument | quantity | venue)"
          },
          "quantities": {
            "type": "array",
            "items": {
              "type": "number",
              "minimum": 1
            },
            "minItems": 1,
            "description": "List of quantities to include in the matrix. Cannot be provided if pivot_by IS 'quantity'."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone to use for the query."
          },
          "value": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "number",
                "minimum": 1
              }
            ],
            "description": "Fixed value for the non-pivoted dimension."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "description": "List of venues to include in the matrix. Cannot be provided if pivot_by IS 'venue'."
          }
        },
        "required": [
          "account",
          "ending_before",
          "pivot_by",
          "starting_after",
          "timezone",
          "value"
        ]
      },
      "AnalyticsSpreadsQuery": {
        "title": "Analytics Spreads Query",
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "Trading account to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "instrument": {
            "type": "string",
            "description": "Instrument to filter by."
          },
          "quantity": {
            "type": "number",
            "minimum": 1,
            "description": "Quantity to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone to use for the query."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of venues to filter by."
          }
        },
        "required": [
          "account",
          "ending_before",
          "instrument",
          "starting_after",
          "timezone"
        ]
      },
      "AnalyticsTrendQuery": {
        "title": "Analytics Trend Query",
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of trading accounts to filter by."
          },
          "asset_types": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Ccy",
                "Crypto",
                "Eqty"
              ]
            },
            "description": "List of asset types to filter by."
          },
          "clients": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of clients to filter by."
          },
          "ending_before": {
            "type": "number",
            "description": "Timestamp (ms) to end the query range."
          },
          "expand": {
            "type": "string",
            "description": "Fields to expand in the response."
          },
          "grouping": {
            "type": "string",
            "enum": [
              "account",
              "asset_type",
              "client",
              "instrument",
              "location",
              "product",
              "protocol",
              "user",
              "venue"
            ],
            "description": "Dimension to group the results by."
          },
          "instruments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of instruments to filter by."
          },
          "interval": {
            "type": "string",
            "enum": [
              "day",
              "hour",
              "month",
              "quarter",
              "week",
              "year"
            ],
            "description": "Time interval for the trend data (e.g., 'day', 'hour')."
          },
          "limit": {
            "type": "number",
            "description": "Maximum number of results to return."
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of locations to filter by."
          },
          "metric": {
            "type": "string",
            "enum": [
              "filled",
              "filled_volume_usd",
              "fill_rate",
              "market_share",
              "order_volume_usd",
              "reject_rate",
              "rejected",
              "venue_rtt_max",
              "venue_rtt_mean",
              "venue_rtt_median"
            ],
            "description": "The metric to analyze (e.g., 'filled_volume_usd')."
          },
          "offset": {
            "type": "number",
            "description": "Number of results to skip."
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF",
                "Swap",
                "NDFSwap"
              ]
            },
            "description": "List of products to filter by."
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            },
            "description": "List of protocols to filter by."
          },
          "starting_after": {
            "type": "number",
            "description": "Timestamp (ms) to start the query range."
          },
          "timezone": {
            "type": "string",
            "description": "Timezone to use for time-based groupings."
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of users to filter by."
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of venues to filter by."
          }
        },
        "required": [
          "ending_before",
          "starting_after",
          "timezone"
        ]
      },
      "Asset": {
        "properties": {
          "asset_type": {
            "description": "The asset type. One of Cmdty, Corp, Ccy, Eqty, Govt, Index, Crypto.",
            "type": "string"
          },
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifer for the object. ISO 4217 number for currencies.",
            "type": "number"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "symbol"
        ]
      },
      "Audit": {
        "properties": {
          "id": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "remote_address": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "user": {
            "type": "string"
          },
          "ts": {
            "type": "number"
          }
        },
        "required": [
          "id",
          "ts",
          "url",
          "user"
        ]
      },
      "CancelOrder": {
        "properties": {
          "cl_order_id": {
            "description": "Request identifier assigned by the client (Max 48 characters).",
            "type": "string"
          },
          "account": {
            "description": "Trading account.",
            "type": "string"
          }
        },
        "required": [
          "cl_order_id",
          "account"
        ]
      },
      "ClientAccount": {
        "properties": {
          "client": {
            "description": "The client.",
            "type": "object",
            "properties": {
              "display": {
                "description": "The client display.",
                "type": "string"
              },
              "symbol": {
                "description": "The client symbol.",
                "type": "string"
              }
            }
          },
          "display": {
            "description": "The account display.",
            "type": "string"
          },
          "liquidity_location": {
            "description": "The account liquidity location.",
            "type": "string",
            "enum": [
              "london",
              "mixed",
              "newyork",
              "singapore"
            ]
          },
          "liquidity_type": {
            "description": "The account liquidity types.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "FullAmountLadder",
                "FullAmountStack",
                "SweepableStack"
              ]
            }
          },
          "parent_account": {
            "description": "The parent account symbol.",
            "type": "string"
          },
          "protocols": {
            "descrption": "Mappings for each protocol for this account.",
            "type": "object",
            "properties": {
              "ALGO": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "description": "Whether Algos are enabled on this account.",
                    "type": "boolean"
                  },
                  "mappings": {
                    "type": "array",
                    "description": "The algos configured for this account.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "description": "Whether the algo is enabled.",
                          "type": "boolean"
                        },
                        "mapping": {
                          "description": "The algo.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "enabled",
                        "mapping"
                      ]
                    }
                  }
                }
              },
              "ESP": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "description": "Whether ESP is enabled on this account.",
                    "type": "boolean"
                  },
                  "mappings": {
                    "type": "array",
                    "description": "The mapped streams.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "description": "Whether the stream is enabled.",
                          "type": "boolean"
                        },
                        "mapping": {
                          "description": "The stream.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "enabled",
                        "mapping"
                      ]
                    }
                  }
                }
              },
              "RFQ": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "description": "Whether RFQ is enabled on this account.",
                    "type": "boolean"
                  },
                  "mappings": {
                    "type": "array",
                    "description": "The RFQ products configured for this account.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "description": "Whether the product is enabled.",
                          "type": "boolean"
                        },
                        "mapping": {
                          "description": "The product.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "enabled",
                        "mapping"
                      ]
                    }
                  }
                }
              }
            }
          },
          "symbol": {
            "description": "The account symbol.",
            "type": "string"
          },
          "tags": {
            "description": "The account tags.",
            "type": "object",
            "properties": {
              "account": {
                "description": "Account tags used on ESP/RFQ orders.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "algo_account": {
                "description": "Account tags used on Algo orders.",
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "traders": {
            "description": "The traders with this account.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "The trader id.",
                  "type": "string"
                },
                "name": {
                  "description": "The trader name.",
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "client",
          "display",
          "protocols",
          "symbol",
          "tags",
          "traders"
        ]
      },
      "ClientAccountDetails": {
        "properties": {
          "child_accounts": {
            "description": "The child accounts of this account.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "description": "The account description.",
                  "type": "string"
                },
                "display": {
                  "description": "The account display.",
                  "type": "string"
                },
                "prime_broker": {
                  "description": "The account prime broker.",
                  "type": "string"
                },
                "symbol": {
                  "description": "The account symbol.",
                  "type": "string"
                }
              }
            }
          },
          "client": {
            "description": "The client.",
            "type": "object",
            "properties": {
              "display": {
                "description": "The client display.",
                "type": "string"
              },
              "symbol": {
                "description": "The client symbol.",
                "type": "string"
              }
            }
          },
          "description": {
            "description": "The account description.",
            "type": "string"
          },
          "display": {
            "description": "The account display.",
            "type": "string"
          },
          "liquidity_location": {
            "description": "The account liquidity location.",
            "type": "string",
            "enum": [
              "london",
              "mixed",
              "newyork",
              "singapore"
            ]
          },
          "liquidity_type": {
            "description": "The account liquidity types.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "FullAmountLadder",
                "FullAmountStack",
                "SweepableStack"
              ]
            }
          },
          "parent_account": {
            "description": "The parent account symbol.",
            "type": "string"
          },
          "protocols": {
            "description": "The account protocols available for this account.",
            "type": "object",
            "properties": {
              "ALGO": {
                "description": "Whether Algo trading is enabled for this account.",
                "type": "boolean"
              },
              "ESP": {
                "description": "Whether ESP trading is enabled for this account.",
                "type": "boolean"
              },
              "RFQ": {
                "description": "Whether RFQ trading is enabled for this account.",
                "type": "boolean"
              }
            }
          },
          "symbol": {
            "description": "The account symbol.",
            "type": "string"
          },
          "traders": {
            "description": "The traders with this account.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "The trader id.",
                  "type": "string"
                },
                "name": {
                  "description": "The trader name.",
                  "type": "string"
                },
                "tags": {
                  "description": "The trader tags.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "field": {
                        "description": "The tag field.",
                        "type": "string"
                      },
                      "value": {
                        "description": "The tag value.",
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "required": [
          "client",
          "display",
          "protocols",
          "symbol",
          "traders"
        ]
      },
      "ConnectivityRequest": {
        "type": "object",
        "required": [
          "created_by",
          "created_ts",
          "id",
          "region",
          "request_type",
          "session_type",
          "status"
        ],
        "properties": {
          "additional_info": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "created_ts": {
            "type": "number"
          },
          "id": {
            "type": "string"
          },
          "marketdata_session": {
            "type": "object",
            "properties": {
              "endpoint": {
                "type": "string"
              },
              "fields": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "minProperties": 1
              },
              "password": {
                "type": "string"
              },
              "sender_comp_id": {
                "type": "string"
              },
              "target_comp_id": {
                "type": "string"
              },
              "username": {
                "type": "string"
              }
            }
          },
          "order_session": {
            "type": "object",
            "properties": {
              "endpoint": {
                "type": "string"
              },
              "fields": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "minProperties": 1
              },
              "password": {
                "type": "string"
              },
              "sender_comp_id": {
                "type": "string"
              },
              "target_comp_id": {
                "type": "string"
              },
              "username": {
                "type": "string"
              }
            }
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF"
              ]
            }
          },
          "quote_type": {
            "type": "string",
            "enum": [
              "FullAmountLadder",
              "FullAmountStack",
              "SweepableStack"
            ]
          },
          "region": {
            "type": "string",
            "enum": [
              "london",
              "newyork",
              "singapore"
            ]
          },
          "request_type": {
            "type": "string",
            "enum": [
              "decommission",
              "provision"
            ]
          },
          "session_type": {
            "type": "string",
            "enum": [
              "FIX",
              "ITCH"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "cancelled",
              "completed",
              "pending"
            ]
          }
        }
      },
      "ConnectivityRequestUpdate": {
        "type": "object",
        "required": [
          "region",
          "request_type",
          "session_type"
        ],
        "properties": {
          "additional_info": {
            "type": "string"
          },
          "marketdata_session": {
            "type": "object",
            "properties": {
              "endpoint": {
                "type": "string"
              },
              "fields": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "minProperties": 1
              },
              "password": {
                "type": "string"
              },
              "sender_comp_id": {
                "type": "string"
              },
              "target_comp_id": {
                "type": "string"
              },
              "username": {
                "type": "string"
              }
            }
          },
          "order_session": {
            "type": "object",
            "properties": {
              "endpoint": {
                "type": "string"
              },
              "fields": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "minProperties": 1
              },
              "password": {
                "type": "string"
              },
              "sender_comp_id": {
                "type": "string"
              },
              "target_comp_id": {
                "type": "string"
              },
              "username": {
                "type": "string"
              }
            }
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "Spot",
                "Forward",
                "NDF"
              ]
            }
          },
          "quote_type": {
            "type": "string",
            "enum": [
              "FullAmountLadder",
              "FullAmountStack",
              "SweepableStack"
            ]
          },
          "request_type": {
            "type": "string",
            "enum": [
              "decommission",
              "provision"
            ]
          },
          "region": {
            "type": "string",
            "enum": [
              "london",
              "newyork",
              "singapore"
            ]
          },
          "session_type": {
            "type": "string",
            "enum": [
              "FIX",
              "ITCH"
            ]
          }
        }
      },
      "ConnectivitySession": {
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "conn_type": {
            "type": "string"
          },
          "in_session": {
            "type": "string"
          },
          "last_logon_ts": {
            "type": "string"
          },
          "last_updated": {
            "type": "string"
          },
          "logged_on": {
            "type": "string"
          },
          "msg_rcvd_rate": {
            "type": "string"
          },
          "msg_sent_rate": {
            "type": "string"
          },
          "quote_type": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "reliability": {
            "type": "string"
          },
          "session_enabled": {
            "type": "string"
          },
          "session_id": {
            "type": "string"
          },
          "stream": {
            "type": "string"
          },
          "subs_num": {
            "type": "string"
          },
          "workflow": {
            "type": "string"
          }
        },
        "required": [
          "in_session",
          "last_logon_ts",
          "last_updated",
          "logged_on",
          "msg_rcvd_rate",
          "msg_sent_rate",
          "region",
          "reliability",
          "session_enabled",
          "session_id",
          "subs_num",
          "workflow"
        ]
      },
      "Device": {
        "properties": {
          "id": {
            "description": "Device id.",
            "type": "string"
          },
          "brand": {
            "description": "Device brand.",
            "type": "string"
          },
          "device_type": {
            "description": "Type of device.",
            "type": "string"
          },
          "manufacturer": {
            "description": "Device manufacturer.",
            "type": "string"
          },
          "model": {
            "description": "Device model.",
            "type": "string"
          },
          "created_ts": {
            "description": "Created time in unix nanoseconds.",
            "type": "string"
          },
          "updated_ts": {
            "description": "Updated time in unix nanoseconds.",
            "type": "number"
          }
        },
        "required": [
          "brand",
          "device_type",
          "manufacturer",
          "model",
          "created_ts"
        ]
      },
      "Error": {
        "properties": {
          "message": {
            "description": "Human readable description of the error.",
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "description": "The field the error corresponds to.",
                  "type": "string"
                },
                "code": {
                  "description": "One of additional_field, missing_field, missing_body, invalid.",
                  "type": "string"
                },
                "message": {
                  "description": "Human readable description.",
                  "type": "string"
                }
              },
              "required": [
                "code"
              ]
            }
          }
        },
        "required": [
          "message"
        ]
      },
      "ExecutionReport": {
        "properties": {
          "account": {
            "type": "string",
            "description": "Trading account."
          },
          "ccy": {
            "type": "string",
            "description": "Ccy of quantity specified in qty field."
          },
          "cl_order_id": {
            "type": "string",
            "description": "Request identifier assigned by the client (Max 48 characters)."
          },
          "cost_usd": {
            "type": "number",
            "description": "Volume of execution in USD."
          },
          "counterparty": {
            "type": "string",
            "description": "Counterparty"
          },
          "effective_time": {
            "type": "string",
            "description": "Receive time from the system. ISO-8601 format."
          },
          "exec_id": {
            "type": "string",
            "description": "Execution ID."
          },
          "far_price": {
            "type": "number",
            "description": "Far price of this fill."
          },
          "far_qty": {
            "type": "number",
            "description": "Far quantity traded on this fill."
          },
          "far_settl_date": {
            "type": "string",
            "description": "The far settlement date. YYYY-MM-DD format."
          },
          "far_tenor": {
            "type": "string",
            "description": "Far tenor symbol."
          },
          "instr": {
            "type": "string",
            "description": "Underlying instrument."
          },
          "instr_type": {
            "type": "string",
            "description": "Underlying instrument type."
          },
          "liq_ind": {
            "type": "string",
            "description": "Liquidity indicator.",
            "enum": [
              "None",
              "Maker",
              "Taker"
            ]
          },
          "order_id": {
            "type": "string",
            "description": "Order ID."
          },
          "order_type": {
            "type": "string",
            "description": "Order type. e.g. Limit, Market.",
            "enum": [
              "None",
              "Limit",
              "Market",
              "Stop",
              "Quoted"
            ]
          },
          "price": {
            "type": "number",
            "description": "Price of this fill."
          },
          "protocol": {
            "type": "string",
            "description": "Underlying protocol."
          },
          "qty": {
            "type": "number",
            "description": "Quantity traded on this fill."
          },
          "quote_id": {
            "type": "string",
            "description": "Quote ID."
          },
          "sec_cl_order_id": {
            "type": "string",
            "description": "Request identifier sent to the LP."
          },
          "sec_exec_id": {
            "type": "string",
            "description": "LP Execution ID."
          },
          "sec_order_id": {
            "type": "string",
            "description": "LP Order ID."
          },
          "sending_time": {
            "type": "string",
            "description": "Created time. ISO-8601 format."
          },
          "settl_date": {
            "type": "string",
            "description": "The settlement date. YYYY-MM-DD format."
          },
          "side": {
            "type": "string",
            "description": "Trade side.",
            "enum": [
              "None",
              "Buy",
              "Sell"
            ]
          },
          "strat_type": {
            "type": "string",
            "description": "Strategy type of the trade."
          },
          "tenor": {
            "type": "string",
            "description": "Tenor symbol."
          },
          "text": {
            "type": "string",
            "description": "Free text field. Max 128 characters."
          },
          "time_type": {
            "type": "string",
            "description": "Time in force.",
            "enum": [
              "None",
              "GTC",
              "IOC",
              "FOK",
              "GFD",
              "GFW"
            ]
          },
          "trade_date": {
            "type": "string",
            "description": "The date of the trade. YYYY-MM-DD format."
          },
          "transact_time": {
            "type": "string",
            "description": "Transmit time from the system. ISO-8601 format."
          },
          "user": {
            "type": "string",
            "description": "User who created the trade."
          },
          "venue": {
            "type": "string",
            "description": "Underlying execution venue."
          }
        },
        "required": [
          "account",
          "effective_time",
          "instr",
          "instr_type",
          "price",
          "qty",
          "sending_time",
          "side",
          "tenor",
          "transact_time",
          "user",
          "venue"
        ]
      },
      "ExecutionSnapshot": {
        "properties": {
          "account": {
            "type": "string"
          },
          "bids": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "all_in": {
                  "type": "number"
                },
                "fwd_points": {
                  "type": "number"
                },
                "indicative": {
                  "type": "boolean"
                },
                "price": {
                  "type": "number"
                },
                "spot": {
                  "type": "number"
                },
                "traded": {
                  "type": "boolean"
                },
                "usd_diff": {
                  "type": "number"
                },
                "venue": {
                  "type": "string"
                }
              }
            }
          },
          "ccy": {
            "type": "string"
          },
          "instr": {
            "type": "string"
          },
          "offers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "all_in": {
                  "type": "number"
                },
                "fwd_points": {
                  "type": "number"
                },
                "indicative": {
                  "type": "boolean"
                },
                "price": {
                  "type": "number"
                },
                "spot": {
                  "type": "number"
                },
                "traded": {
                  "type": "boolean"
                },
                "usd_diff": {
                  "type": "number"
                },
                "venue": {
                  "type": "string"
                }
              }
            }
          },
          "pb_venue": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "product": {
            "type": "string"
          },
          "protocol": {
            "type": "string"
          },
          "qty": {
            "type": "number"
          },
          "sending_time": {
            "type": "string"
          },
          "side": {
            "type": "string"
          },
          "tenor": {
            "type": "string"
          },
          "user": {
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        }
      },
      "ExecutionTotal": {
        "properties": {
          "account": {
            "type": "string",
            "description": "Trading account."
          },
          "cost_usd": {
            "type": "number",
            "description": "Volume of execution in USD."
          },
          "date": {
            "type": "string",
            "description": "Date of the trade. ISO-8601 format."
          },
          "hour": {
            "type": "string",
            "description": "Hour of the trade. ISO-8601 format."
          },
          "instrument": {
            "type": "string",
            "description": "Underlying instrument."
          },
          "product": {
            "type": "string",
            "description": "Underlying product."
          },
          "protocol": {
            "type": "string",
            "description": "Underlying protocol."
          },
          "side": {
            "type": "string",
            "description": "Trade side.",
            "enum": [
              "None",
              "Buy",
              "Sell"
            ]
          },
          "venue": {
            "type": "string",
            "description": "Routing venue."
          },
          "count": {
            "type": "number",
            "description": "Count of executions."
          }
        },
        "required": [
          "count"
        ]
      },
      "Grant": {
        "properties": {
          "action": {
            "description": "CRUD:possession action.",
            "type": "string"
          },
          "attributes": {
            "description": "ABAC properties.",
            "type": "string"
          },
          "resource": {
            "description": "Associated resource symbol.",
            "type": "string"
          },
          "role": {
            "description": "Associated role symbol.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "attributes",
          "resource",
          "role"
        ]
      },
      "Instrument": {
        "properties": {
          "asset_type": {
            "description": "The asset type. One of Cmdty, Corp, Ccy, Eqty, Govt, Index, Crypto.",
            "type": "string"
          },
          "base_asset": {
            "description": "The base asset.",
            "type": "string"
          },
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifer for the object.",
            "type": "number"
          },
          "pip_dp": {
            "description": "Conventional pip decimal places.",
            "type": "number"
          },
          "pip_digits": {
            "description": "Conventional pip digits.",
            "type": "number"
          },
          "price_dp": {
            "description": "Price display decimal places.",
            "type": "number"
          },
          "settl_type": {
            "description": "Cash or Physical delivery.",
            "type": "string"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          },
          "tenor": {
            "description": "The tenor or delivery month.",
            "type": "string"
          },
          "term_asset": {
            "description": "The term asset.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "symbol"
        ]
      },
      "InstrumentGroup": {
        "properties": {
          "created_by": {
            "description": "The user that created the instrument group.",
            "type": "string"
          },
          "created_ts": {
            "description": "The timestamp the instrument group was created.",
            "type": "number"
          },
          "display": {
            "description": "Instrument group display name.",
            "type": "string"
          },
          "description": {
            "description": "Instrument group description.",
            "type": "string"
          },
          "id": {
            "description": "The instrument group id.",
            "type": "string"
          },
          "updated_by": {
            "description": "The user that updated the instrument group.",
            "type": "string"
          },
          "updated_ts": {
            "description": "The timestamp the instrument group was updated.",
            "type": "number"
          }
        },
        "required": [
          "created_by",
          "created_ts",
          "display",
          "id"
        ]
      },
      "InstrumentGroupCreate": {
        "properties": {
          "display": {
            "description": "Instrument group display name.",
            "type": "string"
          },
          "description": {
            "description": "Instrument group description.",
            "type": "string"
          },
          "instruments": {
            "description": "Instruments in the group.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "display"
        ]
      },
      "InstrumentGroupHistory": {
        "properties": {
          "added": {
            "description": "The instruments which were added.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "display": {
            "description": "The instrument group display.",
            "type": "string"
          },
          "id": {
            "description": "The instrument group id.",
            "type": "string"
          },
          "removed": {
            "description": "The instruments which were removed.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "timestamp": {
            "description": "The timestamp of the history entry.",
            "type": "number"
          },
          "user": {
            "description": "The user which made the change.",
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "display",
          "id",
          "timestamp",
          "user"
        ]
      },
      "InstrumentGroupUpdate": {
        "properties": {
          "display": {
            "description": "Instrument group display name.",
            "type": "string"
          },
          "description": {
            "description": "Instrument group description.",
            "type": "string"
          },
          "instruments": {
            "description": "Instruments in the group.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "instruments"
        ]
      },
      "InstrumentTypeTenors": {
        "properties": {
          "instr_type": {
            "description": "Machine readable identifier.",
            "type": "string"
          },
          "tenors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Unique identifer for the object.",
                  "type": "number"
                },
                "priority": {
                  "description": "Display order for the tenor.",
                  "type": "number"
                },
                "symbol": {
                  "description": "Machine readable identifier.",
                  "type": "string"
                }
              }
            }
          }
        },
        "required": [
          "instr_type",
          "tenors"
        ]
      },
      "LiquidityDisablement": {
        "properties": {
          "account": {
            "description": "The account the instrument group is disabled for.",
            "type": "string"
          },
          "instrument_group": {
            "description": "The instrument group.",
            "type": "string"
          },
          "product": {
            "description": "The product the instrument group is disabled for.",
            "type": "string"
          },
          "protocol": {
            "description": "The protocol the instrument group is disabled for.",
            "type": "string"
          },
          "venue": {
            "description": "The venue the instrument group is disabled for.",
            "type": "string"
          }
        },
        "required": [
          "account",
          "protocol",
          "venue"
        ]
      },
      "LiquidityDisablementHistory": {
        "properties": {
          "added": {
            "$ref": "#/components/schemas/LiquidityDisablement"
          },
          "removed": {
            "$ref": "#/components/schemas/LiquidityDisablement"
          },
          "timestamp": {
            "description": "The timestamp of the history entry.",
            "type": "number"
          },
          "user": {
            "description": "The user which made the change.",
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "timestamp",
          "user"
        ]
      },
      "LiquidityDisablementUpdate": {
        "type": "object",
        "properties": {
          "disablement": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LiquidityDisablement"
            }
          }
        },
        "required": [
          "disablement"
        ]
      },
      "MakerPerformance": {
        "description": "Performance of your organization as a maker at the requested groupings.",
        "properties": {
          "account": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "display": {
                    "type": "string"
                  },
                  "symbol": {
                    "type": "string"
                  }
                }
              }
            ],
            "description": "Trading account."
          },
          "asset_type": {
            "type": "string",
            "description": "Underlying asset type. Only present if included in grouping."
          },
          "client": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "display": {
                    "type": "string"
                  },
                  "symbol": {
                    "type": "string"
                  }
                }
              }
            ],
            "description": "Trading client organization. Only present if included in grouping."
          },
          "date": {
            "type": "string",
            "description": "Date of the trade. ISO-8601 format. Only present if included in grouping."
          },
          "hour": {
            "type": "string",
            "description": "Hour of the trade. ISO-8601 format. Only present if included in grouping."
          },
          "instrument": {
            "type": "string",
            "description": "Underlying instrument. Only present if included in grouping."
          },
          "location": {
            "type": "string",
            "description": "The location the trade was routed. Only present if included in grouping."
          },
          "market_share": {
            "type": "object",
            "description": "Market share of the filled volume as a %. Only present if the taker has granted access.",
            "properties": {
              "bucket": {
                "type": "string",
                "description": "Market share range of your organization.",
                "enum": [
                  "0-5%",
                  "5-10%",
                  "10-20%",
                  ">20%"
                ]
              },
              "value": {
                "type": "number",
                "description": "Market share of your organization."
              }
            }
          },
          "product": {
            "type": "string",
            "description": "Underlying product."
          },
          "protocol": {
            "type": "string",
            "description": "Underlying protocol. Only present if included in grouping."
          },
          "ranking": {
            "type": "object",
            "description": "Rank of the filled volume compared to others.",
            "properties": {
              "quartile": {
                "type": "number",
                "description": "Quartile of the filled volume compared to others.",
                "enum": [
                  1,
                  2,
                  3,
                  4
                ]
              },
              "value": {
                "type": "number",
                "description": "Rank of your organization."
              }
            }
          },
          "reject_rate": {
            "type": "object",
            "description": "Reject rate of orders.",
            "properties": {
              "average": {
                "type": "number",
                "description": "Average reject rate across all LPs. Only present if the taker has granted access."
              },
              "value": {
                "type": "number",
                "description": "Reject rate of your organization."
              }
            }
          },
          "rtt_max": {
            "type": "object",
            "description": "The max rtt in ms.",
            "properties": {
              "value": {
                "type": "number",
                "description": "The max rtt of your organization in ms."
              }
            }
          },
          "rtt_mean": {
            "type": "object",
            "description": "The mean rtt in ms.",
            "properties": {
              "average": {
                "type": "number",
                "description": "The average of all LPs in ms. Only present if the taker has granted access."
              },
              "value": {
                "type": "number",
                "description": "The mean rtt of your organization in ms."
              }
            }
          },
          "rtt_median": {
            "type": "object",
            "description": "The median rtt in ms.",
            "properties": {
              "average": {
                "type": "number",
                "description": "The average of all LPs in ms. Only present if the taker has granted access."
              },
              "value": {
                "type": "number",
                "description": "The median rtt of your organization in ms."
              }
            }
          },
          "user": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              }
            ],
            "description": "User who placed order(s). Only present if included in grouping."
          },
          "volume": {
            "type": "number",
            "description": "The filled volume in USD."
          }
        },
        "required": [
          "account",
          "product",
          "volume"
        ]
      },
      "Market": {
        "properties": {
          "base_dp": {
            "type": "number"
          },
          "base_default_lots": {
            "type": "number"
          },
          "base_denom": {
            "type": "number"
          },
          "base_numer": {
            "type": "number"
          },
          "display": {
            "type": "string"
          },
          "id": {
            "type": "number"
          },
          "instr": {
            "type": "string"
          },
          "price_denom": {
            "type": "number"
          },
          "price_dp": {
            "type": "number"
          },
          "price_numer": {
            "type": "number"
          },
          "symbol": {
            "type": "string"
          },
          "tenor": {
            "type": "string"
          },
          "term_default_lots": {
            "type": "number"
          },
          "term_denom": {
            "type": "number"
          },
          "term_dp": {
            "type": "number"
          },
          "term_numer": {
            "type": "number"
          },
          "venue": {
            "type": "string"
          },
          "venue_symbol": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "symbol"
        ]
      },
      "MarketAccounts": {
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "market": {
            "description": "Machine readable identifier.",
            "type": "string"
          }
        },
        "required": [
          "accounts",
          "market"
        ]
      },
      "MarketDataKeepAlive": {
        "properties": {
          "markets": {
            "type": "array",
            "items": {
              "properties": {
                "account": {
                  "description": "Trading account.",
                  "type": "string"
                },
                "security_type": {
                  "description": "Security Type.",
                  "enum": [
                    "Spot",
                    "Future",
                    "CFD",
                    "Swap",
                    "Perp",
                    "NDF",
                    "Forward",
                    "NDFSwap"
                  ],
                  "type": "string"
                },
                "symbol": {
                  "description": "The symbol the request is for.",
                  "type": "string"
                },
                "tenor": {
                  "description": "Tenor symbol. Defaults to SP.",
                  "type": "string"
                },
                "venue": {
                  "description": "The venue to subscribe to.",
                  "type": "string"
                }
              },
              "required": [
                "account",
                "symbol"
              ]
            }
          }
        },
        "required": [
          "markets"
        ]
      },
      "MarketParameters": {
        "properties": {
          "product": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "product",
          "symbol",
          "venue"
        ]
      },
      "Markout": {
        "properties": {
          "account": {
            "description": "Optional account when grouped.",
            "type": "string"
          },
          "delta_time": {
            "description": "Delta time.",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "instrument": {
            "description": "Optional instrument when grouped.",
            "type": "string"
          },
          "pnl": {
            "description": "PnL in bps.",
            "type": "array",
            "items": {
              "type": "number"
            }
          },
          "order_id": {
            "description": "Order id.",
            "type": "string"
          },
          "trade_count": {
            "description": "Number of trades in the group.",
            "type": "integer",
            "format": "int64"
          },
          "traded_usd": {
            "description": "Traded volume in USD for the group.",
            "type": "number",
            "format": "double"
          },
          "trader_id": {
            "description": "Optional trader id when grouped.",
            "type": "string"
          },
          "user": {
            "description": "Optional user when grouped.",
            "type": "string"
          },
          "venue": {
            "description": "Optional venue when grouped.",
            "type": "string"
          }
        },
        "required": [
          "delta_time",
          "pnl"
        ]
      },
      "NewAccount": {
        "properties": {
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "prime_broker": {
            "description": "Prime broker venue symbol.",
            "type": "string"
          }
        },
        "required": [
          "display"
        ]
      },
      "NewMember": {
        "properties": {
          "country": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "picture": {
            "type": "string"
          },
          "require_mfa": {
            "type": "boolean"
          },
          "require_reset": {
            "type": "boolean"
          }
        },
        "required": [
          "email",
          "name",
          "password"
        ]
      },
      "NewOrder": {
        "properties": {
          "account": {
            "description": "Trading account.",
            "type": "string"
          },
          "allocations": {
            "description": "The allocations for the order.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "number",
                  "description": "The amount allocated to the fund."
                },
                "fund": {
                  "type": "string",
                  "description": "The fund name."
                }
              },
              "required": [
                "amount",
                "fund"
              ],
              "additionalProperties": false
            }
          },
          "ccy": {
            "description": "Currency of the order quantity.",
            "type": "string"
          },
          "cl_order_id": {
            "description": "Request identifier assigned by the client (Max 48 characters).",
            "type": "string"
          },
          "exec_venues": {
            "description": "A list of order execution venues. Igmored if the venue is not AGG.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "far_price": {
            "description": "Swap only, far leg all-in price.",
            "type": "number"
          },
          "far_qty": {
            "description": "Swap only, far leg quantity.",
            "type": "number"
          },
          "far_tenor": {
            "description": "Swap only, far leg tenor.",
            "type": "string"
          },
          "order_type": {
            "description": "Order type.",
            "enum": [
              "Limit",
              "Market",
              "PreviouslyQuoted"
            ],
            "type": "string"
          },
          "price": {
            "description": "Order price.",
            "type": "number"
          },
          "price_tolerance": {
            "description": "Order price tolerance in absolute terms.",
            "type": "number"
          },
          "qty": {
            "description": "Order quantity. MUST be greater than zero.",
            "type": "number"
          },
          "quote_id": {
            "description": "Quote Identifier.",
            "type": "string"
          },
          "security_type": {
            "description": "Security Type.",
            "enum": [
              "Spot",
              "Future",
              "CFD",
              "Swap",
              "Perp",
              "NDF",
              "Forward",
              "NDFSwap"
            ],
            "type": "string"
          },
          "side": {
            "description": "The order side. Buy or Sell.",
            "type": "string"
          },
          "strategy": {
            "description": "Strategy type to execute.",
            "type": "string"
          },
          "strategy_parameters": {
            "description": "Strategy parameters for this strategy.",
            "type": "object"
          },
          "symbol": {
            "description": "The symbol the order is for.",
            "type": "string"
          },
          "tenor": {
            "description": "Tenor symbol. Defaults to SP.",
            "type": "string"
          },
          "text": {
            "description": "Free text field for customer use. Max 128 characters.",
            "type": "string"
          },
          "time_in_force": {
            "description": "The time in force for the order.",
            "type": "string",
            "enum": [
              "GFD",
              "GTC",
              "IOC",
              "FOK",
              "GFW"
            ]
          },
          "venue": {
            "description": "The venue to send the order to.",
            "type": "string"
          }
        },
        "required": [
          "account",
          "cl_order_id",
          "qty",
          "side",
          "symbol",
          "venue"
        ]
      },
      "NewOrderResponse": {
        "properties": {
          "account": {
            "description": "Trading account.",
            "type": "string"
          },
          "ccy": {
            "description": "Currency of the order quantity.",
            "type": "string"
          },
          "cl_order_id": {
            "description": "Request identifier assigned by the client (Max 48 characters).",
            "type": "string"
          },
          "exec_venues": {
            "description": "A list of order execution venues. Igmored if the venue is not AGG.",
            "type": "string"
          },
          "far_price": {
            "description": "Swap only, far leg all-in price.",
            "type": "number"
          },
          "far_qty": {
            "description": "Swap only, far leg quantity.",
            "type": "number"
          },
          "far_tenor": {
            "description": "Swap only, far leg tenor.",
            "type": "string"
          },
          "flags": {
            "description": "Flags for the order.",
            "type": "number"
          },
          "order_type": {
            "description": "Order type.",
            "enum": [
              "Limit",
              "Market",
              "PreviouslyQuoted"
            ],
            "type": "string"
          },
          "price": {
            "description": "Order price.",
            "type": "number"
          },
          "price_tolerance": {
            "description": "Order price tolerance in absolute terms.",
            "type": "number"
          },
          "qty": {
            "description": "Order quantity. MUST be greater than zero.",
            "type": "number"
          },
          "quote_id": {
            "description": "Quote Identifier.",
            "type": "string"
          },
          "security_type": {
            "description": "Security Type.",
            "enum": [
              "Spot",
              "Future",
              "CFD",
              "Swap",
              "Perp",
              "NDF",
              "Forward",
              "NDFSwap"
            ],
            "type": "string"
          },
          "side": {
            "description": "The order side. Buy or Sell.",
            "type": "string"
          },
          "strategy": {
            "description": "Strategy type to execute.",
            "type": "string"
          },
          "strategy_parameters": {
            "description": "Strategy parameters for this strategy.",
            "type": "object"
          },
          "symbol": {
            "description": "The symbol the order is for.",
            "type": "string"
          },
          "rts": {
            "description": "Receive time from the system.",
            "type": "number"
          },
          "tenor": {
            "description": "Tenor symbol. Defaults to SP.",
            "type": "string"
          },
          "time_in_force": {
            "description": "The time in force for the order.",
            "type": "string",
            "enum": [
              "GFD",
              "GTC",
              "IOC",
              "FOK",
              "GFW"
            ]
          },
          "tts": {
            "description": "Transmit time from the system.",
            "type": "number"
          },
          "venue": {
            "description": "The venue to send the order to.",
            "type": "string"
          }
        }
      },
      "NewOrganization": {
        "properties": {
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "email": {
            "description": "Email of the organization.",
            "type": "string"
          },
          "display": {
            "description": "Organization display name.",
            "type": "string"
          },
          "phone_number": {
            "description": "Contact number.",
            "type": "string"
          },
          "require_mfa": {
            "description": "Enforce MFA logins across the organization.",
            "type": "boolean"
          }
        }
      },
      "NewStream": {
        "properties": {
          "display": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "display"
        ]
      },
      "NewUser": {
        "properties": {
          "country": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organization": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "picture": {
            "type": "string"
          },
          "require_mfa": {
            "type": "boolean"
          },
          "require_reset": {
            "type": "boolean"
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "NewsArticle": {
        "properties": {
          "creator": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "image": {
            "type": "string"
          },
          "link": {
            "type": "string"
          },
          "pub_ts": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "NewsCategory": {
        "properties": {
          "description": {
            "type": "string"
          },
          "display": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "NewsFeed": {
        "properties": {
          "description": {
            "type": "string"
          },
          "display": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "NotificationEmails": {
        "properties": {
          "connectivity_liquidity_provider_email": {
            "description": "Emails to receive connectivity service notifications as a liquidity provider.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "crossrate_liquidity_provider_email": {
            "description": "Emails to receive crossrate service notifications as a liquidity provider.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mappings_liquidity_provider_email": {
            "description": "Emails to receive mapping update notifications as a liquidity provider.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mappings_taker_email": {
            "description": "Emails to receive mapping update notifications as a taker.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "onboarding_liquidity_provider_email": {
            "description": "Emails to receive account onboarding requests as a liquidity provider.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "timeouts_taker_email": {
            "description": "Emails to receive non-response notifications as a taker",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "timeouts_liquidity_provider_email": {
            "description": "Emails to receive non-response notifications as a liquidity provider.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "Ohlc": {
        "properties": {
          "close": {
            "type": "number"
          },
          "given": {
            "type": "number"
          },
          "high": {
            "type": "number"
          },
          "low": {
            "type": "number"
          },
          "open": {
            "type": "number"
          },
          "paid": {
            "type": "number"
          },
          "tts": {
            "type": "number"
          }
        },
        "required": [
          "tts"
        ]
      },
      "OnboardingRequest": {
        "properties": {
          "account": {
            "type": "string"
          },
          "algo_strategies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "created_ts": {
            "type": "number"
          },
          "emails": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "email_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          },
          "esp_instruments": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "organization": {
            "type": "string"
          },
          "protocols": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "rfq_products": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ESP",
                "RFQ",
                "ALGO"
              ]
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "accepted",
              "rejected"
            ]
          },
          "user": {
            "type": "string"
          }
        },
        "required": [
          "account",
          "created_ts",
          "emails",
          "organization",
          "protocols",
          "status",
          "user"
        ]
      },
      "OnboardingRequestAcceptMappings": {
        "properties": {
          "account_tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "account_algo_tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "algo_strategies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "allocation_tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "The allocation id",
                  "type": "string"
                },
                "tag": {
                  "description": "The allocation tag",
                  "type": "string"
                }
              },
              "required": [
                "id",
                "tag"
              ]
            }
          },
          "esp_mappings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "market": {
                  "type": "string"
                },
                "underlying": {
                  "type": "string"
                },
                "enabled": {
                  "type": "boolean"
                }
              }
            }
          },
          "rfq_products": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "Order": {
        "properties": {
          "accnt": {
            "type": "string"
          },
          "active": {
            "type": "string"
          },
          "avg_price": {
            "type": "number"
          },
          "cl_order_id": {
            "type": "string"
          },
          "created_ts": {
            "type": "number"
          },
          "cum_qty": {
            "type": "number"
          },
          "exec_id": {
            "type": "string"
          },
          "exec_type": {
            "type": "string"
          },
          "exec_venue": {
            "type": "string"
          },
          "last_price": {
            "type": "number"
          },
          "last_qty": {
            "type": "number"
          },
          "liq_ind": {
            "type": "string"
          },
          "market": {
            "type": "string"
          },
          "min_qty": {
            "type": "number"
          },
          "order_id": {
            "type": "string"
          },
          "order_state": {
            "type": "string"
          },
          "order_type": {
            "type": "string"
          },
          "prev_qty": {
            "type": "number"
          },
          "price": {
            "type": "number"
          },
          "qty": {
            "type": "number"
          },
          "qty_type": {
            "type": "string"
          },
          "quote_id": {
            "type": "string"
          },
          "resd_qty": {
            "type": "number"
          },
          "rts": {
            "type": "number"
          },
          "side": {
            "type": "string"
          },
          "slippage": {
            "type": "number"
          },
          "strat_type": {
            "type": "string"
          },
          "tenor": {
            "type": "string"
          },
          "time_type": {
            "type": "string"
          },
          "trans_ts": {
            "type": "number"
          },
          "tts": {
            "type": "string"
          }
        }
      },
      "OrderExecution": {
        "properties": {
          "marketData": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "price": {
                  "type": "string"
                },
                "quote_id": {
                  "type": "string"
                },
                "tts": {
                  "type": "string"
                }
              }
            }
          },
          "orders": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "exec_type": {
                  "type": "number"
                },
                "instr": {
                  "type": "string"
                },
                "market": {
                  "type": "string"
                },
                "order_id": {
                  "type": "string"
                },
                "price": {
                  "type": "number"
                },
                "qty": {
                  "type": "number"
                },
                "side": {
                  "type": "number"
                },
                "tts": {
                  "type": "string"
                },
                "venue": {
                  "type": "string"
                }
              }
            }
          },
          "quote_id": {
            "type": "string"
          }
        }
      },
      "OrderReport": {
        "properties": {
          "account": {
            "type": "string",
            "description": "Trading account."
          },
          "avg_price": {
            "type": "number",
            "description": "Filled price of the order."
          },
          "ccy": {
            "type": "string",
            "description": "Ccy of quantity specified in qty field."
          },
          "cl_order_id": {
            "type": "string",
            "description": "Request identifier assigned by the client (Max 48 characters)."
          },
          "counterparty": {
            "type": "string",
            "description": "Counterparty"
          },
          "cum_qty": {
            "type": "number",
            "description": "Filled quantity of the order."
          },
          "effective_time": {
            "type": "string",
            "description": "Receive time from the system. ISO-8601 format."
          },
          "exec_id": {
            "type": "string",
            "description": "Execution ID."
          },
          "exec_venue": {
            "type": "string",
            "description": "Underlying execution venue."
          },
          "far_avg_price": {
            "type": "number",
            "description": "Filled far price of the order."
          },
          "far_cum_qty": {
            "type": "number",
            "description": "Filled far quantity of the order."
          },
          "far_qty": {
            "type": "number",
            "description": "Total far quantity."
          },
          "far_price": {
            "type": "number",
            "description": "Order far price."
          },
          "far_settl_date": {
            "type": "string",
            "description": "The far settlement date. YYYY-MM-DD format."
          },
          "far_tenor": {
            "type": "string",
            "description": "Far tenor symbol."
          },
          "filled_volume_usd": {
            "type": "number",
            "description": "Filled volume in USD of order."
          },
          "instr": {
            "type": "string",
            "description": "Underlying instrument."
          },
          "instr_type": {
            "type": "string",
            "description": "Underlying instrument type."
          },
          "liq_ind": {
            "type": "string",
            "description": "Liquidity indicator.",
            "enum": [
              "None",
              "Maker",
              "Taker"
            ]
          },
          "order_id": {
            "type": "string",
            "description": "Order ID."
          },
          "order_status": {
            "type": "string",
            "description": "Status of the order.",
            "enum": [
              "Cancelled",
              "Filled",
              "Rejected"
            ]
          },
          "order_type": {
            "type": "string",
            "description": "Order type. e.g. Limit, Market.",
            "enum": [
              "None",
              "Limit",
              "Market",
              "Stop",
              "Quoted"
            ]
          },
          "order_volume_usd": {
            "type": "number",
            "description": "Total volume in USD of order."
          },
          "price": {
            "type": "number",
            "description": "Order price."
          },
          "protocol": {
            "type": "string",
            "description": "Underlying protocol."
          },
          "qty": {
            "type": "number",
            "description": "Total quantity."
          },
          "quote_id": {
            "type": "string",
            "description": "Quote ID."
          },
          "sec_cl_order_id": {
            "type": "string",
            "description": "Request identifier sent to the LP."
          },
          "sec_exec_id": {
            "type": "string",
            "description": "LP Execution ID."
          },
          "sec_order_id": {
            "type": "string",
            "description": "LP Order ID."
          },
          "sending_time": {
            "type": "string",
            "description": "Created time. ISO-8601 format."
          },
          "settl_date": {
            "type": "string",
            "description": "The settlement date. YYYY-MM-DD format."
          },
          "side": {
            "type": "string",
            "description": "Trade side.",
            "enum": [
              "None",
              "Buy",
              "Sell"
            ]
          },
          "strat_type": {
            "type": "string",
            "description": "Strategy type of the order."
          },
          "tenor": {
            "type": "string",
            "description": "Tenor symbol."
          },
          "text": {
            "type": "string",
            "description": "Free text field. Max 128 characters."
          },
          "time_type": {
            "type": "string",
            "description": "Time in force.",
            "enum": [
              "None",
              "GTC",
              "IOC",
              "FOK",
              "GFD",
              "GFW"
            ]
          },
          "trade_date": {
            "type": "string",
            "description": "The date of the trade. YYYY-MM-DD format."
          },
          "transact_time": {
            "type": "string",
            "description": "Transmit time from the system. ISO-8601 format."
          },
          "user": {
            "type": "string",
            "description": "User who created the trade."
          },
          "venue": {
            "type": "string",
            "description": "Routing venue."
          }
        },
        "required": [
          "account",
          "effective_time",
          "instr",
          "instr_type",
          "order_status",
          "price",
          "qty",
          "sending_time",
          "side",
          "tenor",
          "transact_time",
          "user",
          "venue"
        ]
      },
      "OrderTotals": {
        "properties": {
          "account": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "display": {
                    "type": "string"
                  },
                  "symbol": {
                    "type": "string"
                  }
                }
              }
            ],
            "description": "Trading account."
          },
          "asset_type": {
            "type": "string",
            "description": "Underlying asset type."
          },
          "client": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "display": {
                    "type": "string"
                  },
                  "symbol": {
                    "type": "string"
                  }
                }
              }
            ],
            "description": "Trading client organization."
          },
          "date": {
            "type": "string",
            "description": "Date of the trade. ISO-8601 format."
          },
          "filled": {
            "type": "number",
            "description": "Count of filled orders."
          },
          "filled_volume_usd": {
            "type": "number",
            "description": "Total filled volume in USD of orders."
          },
          "hour": {
            "type": "string",
            "description": "Hour of the trade. ISO-8601 format."
          },
          "instrument": {
            "type": "string",
            "description": "Underlying instrument."
          },
          "location": {
            "type": "string",
            "description": "The location the trade was routed."
          },
          "market_share": {
            "type": "number",
            "description": "Market share of the filled volume as a %."
          },
          "order_volume_usd": {
            "type": "number",
            "description": "Total volume in USD of orders."
          },
          "product": {
            "type": "string",
            "description": "Underlying product."
          },
          "protocol": {
            "type": "string",
            "description": "Underlying protocol."
          },
          "ranking": {
            "type": "number",
            "description": "Rank of the filled volume compared to others."
          },
          "rejected": {
            "type": "number",
            "description": "Count of rejected orders."
          },
          "user": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                }
              }
            ],
            "description": "User who placed order(s)."
          },
          "venue": {
            "type": "string",
            "description": "Routing venue."
          },
          "venue_rtt": {
            "type": "object",
            "properties": {
              "max": {
                "type": "number",
                "description": "The max rtt in ms."
              },
              "mean": {
                "type": "number",
                "description": "The mean rtt in ms."
              },
              "median": {
                "type": "number",
                "description": "The median rtt in ms."
              }
            },
            "required": [
              "max",
              "mean",
              "median"
            ]
          }
        },
        "required": [
          "filled",
          "rejected"
        ]
      },
      "OrderUpdate": {
        "properties": {
          "account": {
            "description": "Trading account.",
            "type": "string"
          },
          "cl_order_id": {
            "description": "Request identifier assigned by the client (Max 48 characters).",
            "type": "string"
          },
          "price": {
            "description": "Order price.",
            "type": "number"
          },
          "qty": {
            "description": "Order quantity. MUST be greater than zero.",
            "type": "number"
          }
        },
        "required": [
          "account",
          "cl_order_id"
        ]
      },
      "OrderUpdateResponse": {
        "properties": {
          "account": {
            "description": "Trading account.",
            "type": "string"
          },
          "cl_order_id": {
            "description": "Request identifier assigned by the client (Max 48 characters).",
            "type": "string"
          },
          "price": {
            "description": "Order price.",
            "type": "number"
          },
          "qty": {
            "description": "Order quantity. MUST be greater than zero.",
            "type": "number"
          }
        }
      },
      "Organization": {
        "properties": {
          "address": {
            "description": "Company address.",
            "type": "string"
          },
          "billing_address": {
            "description": "Billing address.",
            "type": "string"
          },
          "created_ts": {
            "description": "Created time in unix nanoseconds.",
            "type": "number"
          },
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "display": {
            "description": "Organization display name.",
            "type": "string"
          },
          "domain_slug": {
            "description": "Unique, lowercase custom domain slug used to identify the organization on inbound requests.",
            "type": "string"
          },
          "email": {
            "description": "Email of the organization.",
            "type": "string"
          },
          "imids": {
            "description": "FINRA CAT IMIDs (US Equities).",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "picture": {
            "description": "Url of the organization picture.",
            "type": "string"
          },
          "phone_number": {
            "description": "Contact number.",
            "type": "string"
          },
          "require_mfa": {
            "description": "Enforce MFA logins across the organization.",
            "type": "boolean"
          },
          "require_saml": {
            "description": "Enforce SAML logins across the organization.",
            "type": "boolean"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          },
          "updated_ts": {
            "description": "Updated time in unix nanoseconds.",
            "type": "number"
          },
          "venue": {
            "description": "Linked venue symbol.",
            "type": "string"
          },
          "website": {
            "description": "Url of the organization website.",
            "type": "string"
          }
        },
        "required": [
          "created_ts",
          "symbol"
        ]
      },
      "OrganizationCreditLimits": {
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "account": {
                  "type": "string"
                },
                "alert_emails": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "idn-email"
                  }
                },
                "enable_cls": {
                  "type": "boolean"
                },
                "hard_limit": {
                  "type": "number"
                },
                "soft_limits": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                }
              }
            }
          },
          "venues": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "account": {
                  "type": "string"
                },
                "venue": {
                  "type": "string"
                },
                "hard_limit": {
                  "type": "number"
                }
              }
            }
          }
        }
      },
      "OrganizationMemberLimits": {
        "properties": {
          "member": {
            "type": "string"
          },
          "product": {
            "type": "string",
            "enum": [
              "Spot",
              "Forward",
              "Swap",
              "NDF",
              "NDFSwap"
            ]
          },
          "limit": {
            "type": "number",
            "minimum": 0
          }
        }
      },
      "OrganizationPrimeBrokerFee": {
        "properties": {
          "account": {
            "type": "string"
          },
          "product": {
            "type": "string",
            "enum": [
              "Spot",
              "Forward",
              "NDF",
              "NDFSwap",
              "Swap"
            ]
          },
          "value": {
            "type": "number",
            "minimum": 0
          }
        }
      },
      "OrganizationUpdate": {
        "properties": {
          "address": {
            "description": "Company address.",
            "type": "string"
          },
          "billing_address": {
            "description": "Billing address.",
            "type": "string"
          },
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "display": {
            "description": "Organization display name.",
            "type": "string"
          },
          "email": {
            "description": "Email of the organization.",
            "type": "string"
          },
          "picture": {
            "description": "Url of the organization picture.",
            "type": "string"
          },
          "phone_number": {
            "description": "Contact number.",
            "type": "string"
          },
          "website": {
            "description": "Url of the organization website.",
            "type": "string"
          }
        }
      },
      "PrimeBrokerClient": {
        "properties": {
          "accounts": {
            "description": "Number of accounts.",
            "type": "integer"
          },
          "client": {
            "description": "Client symbol.",
            "type": "string"
          },
          "enabled": {
            "description": "Trading state.",
            "type": "boolean"
          }
        }
      },
      "ProductLimit": {
        "properties": {
          "product": {
            "type": "string",
            "enum": [
              "Spot",
              "Forward",
              "Swap",
              "NDF",
              "NDFSwap"
            ]
          },
          "limit": {
            "type": "number",
            "minimum": 0
          }
        }
      },
      "ReferenceRates": {
        "properties": {
          "base_asset": {
            "type": "string"
          },
          "term_asset": {
            "type": "string"
          },
          "rate": {
            "type": "number"
          }
        }
      },
      "Resource": {
        "properties": {
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "RfqTotals": {
        "properties": {
          "account": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "display": {
                    "type": "string"
                  },
                  "symbol": {
                    "type": "string"
                  }
                }
              }
            ],
            "description": "Trading account"
          },
          "client": {
            "type": "string",
            "description": "Trading client organization."
          },
          "date": {
            "type": "string",
            "description": "Date of the trade. ISO-8601 format."
          },
          "hour": {
            "type": "string",
            "description": "Hour of the trade. ISO-8601 format."
          },
          "instrument": {
            "type": "string",
            "description": "Underlying instrument."
          },
          "order_filled": {
            "type": "number",
            "description": "Count of RFQ requests which were then filled as an order."
          },
          "order_sent": {
            "type": "number",
            "description": "Count of RFQ requests which were then sent as an order."
          },
          "product": {
            "type": "string",
            "description": "Underlying product."
          },
          "rfq_priced": {
            "type": "number",
            "description": "Count of RFQ requests which were priced."
          },
          "rfq_sent": {
            "type": "number",
            "description": "Count of RFQ requests."
          },
          "user": {
            "type": "string",
            "description": "User who placed RFQ(s)."
          },
          "venue": {
            "type": "string",
            "description": "Routing venue."
          },
          "venue_rtt": {
            "type": "object",
            "properties": {
              "max": {
                "type": "number",
                "description": "The max rtt in ms."
              },
              "mean": {
                "type": "number",
                "description": "The mean rtt in ms."
              },
              "median": {
                "type": "number",
                "description": "The median rtt in ms."
              }
            },
            "required": [
              "max",
              "mean",
              "median"
            ]
          }
        },
        "required": [
          "order_filled",
          "order_sent",
          "rfq_priced",
          "rfq_sent"
        ]
      },
      "Role": {
        "properties": {
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "RoleUpdate": {
        "properties": {
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "display": {
            "description": "Human readable description.",
            "type": "string"
          }
        }
      },
      "SamlConfig": {
        "properties": {
          "audience": {
            "description": "The expected SAML response Audience. Optional.",
            "type": "string"
          },
          "cert": {
            "description": "The IDP's public signing certificate used to validate the signatures of the incoming SAML responses.",
            "type": "string"
          },
          "entrypoint": {
            "description": "The IDP's entrypoint to initiate SAML authentication.",
            "type": "string"
          },
          "issuer": {
            "description": "Issuer string to supply to IDP.",
            "type": "string"
          }
        },
        "required": [
          "cert",
          "entrypoint",
          "issuer"
        ]
      },
      "SamlSpConfig": {
        "properties": {
          "acs_url": {
            "type": "string"
          },
          "cert": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "entity_id": {
            "type": "string"
          },
          "slo_url": {
            "type": "string"
          }
        },
        "required": [
          "acs_url",
          "entity_id"
        ]
      },
      "SamlSpConfigUpdate": {
        "properties": {
          "acs_url": {
            "type": "string"
          },
          "cert": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "entity_id": {
            "type": "string"
          },
          "slo_url": {
            "type": "string"
          }
        }
      },
      "Setting": {
        "properties": {
          "data": {
            "type": "string"
          },
          "deleted": {
            "type": "boolean"
          },
          "key": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "deleted",
          "key"
        ]
      },
      "Spread": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "Account grouping."
          },
          "asset_type": {
            "type": "string",
            "description": "Asset type grouping."
          },
          "client": {
            "type": "string",
            "description": "Client grouping."
          },
          "group": {
            "type": "string",
            "description": "Group grouping."
          },
          "instrument": {
            "type": "string",
            "description": "Instrument grouping."
          },
          "location": {
            "type": "string",
            "description": "Location grouping."
          },
          "product": {
            "type": "string",
            "description": "Product grouping."
          },
          "protocol": {
            "type": "string",
            "description": "Protocol grouping."
          },
          "user": {
            "type": "string",
            "description": "User grouping."
          },
          "timestamp": {
            "type": "string",
            "nullable": true,
            "description": "Timestamp of the interval."
          },
          "venue": {
            "type": "string",
            "description": "Venue of the trade."
          },
          "mean": {
            "type": "array",
            "items": {
              "type": "number",
              "nullable": true
            },
            "description": "Mean spread value for each quantity."
          },
          "median": {
            "type": "array",
            "items": {
              "type": "number",
              "nullable": true
            },
            "description": "Median spread value for each quantity."
          },
          "min": {
            "type": "array",
            "items": {
              "type": "number",
              "nullable": true
            },
            "description": "Minimum spread value for each quantity."
          },
          "max": {
            "type": "array",
            "items": {
              "type": "number",
              "nullable": true
            },
            "description": "Maximum spread value for each quantity."
          },
          "quantile_25": {
            "type": "array",
            "items": {
              "type": "number",
              "nullable": true
            },
            "description": "25th percentile spread value for each quantity."
          },
          "quantile_75": {
            "type": "array",
            "items": {
              "type": "number",
              "nullable": true
            },
            "description": "75th percentile spread value for each quantity."
          },
          "tob_percent": {
            "type": "array",
            "items": {
              "type": "number",
              "nullable": true
            },
            "description": "Top of book percentage for each quantity."
          }
        }
      },
      "SpreadMatrix": {
        "type": "object",
        "properties": {
          "venue": {
            "type": "string",
            "description": "Venue grouping (if pivoted)."
          },
          "instrument": {
            "type": "string",
            "description": "Instrument grouping (if pivoted)."
          },
          "quantity": {
            "type": "number",
            "description": "Quantity grouping (if pivoted)."
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "venue": {
                  "type": "string",
                  "description": "Venue grouping."
                },
                "instrument": {
                  "type": "string",
                  "description": "Instrument grouping."
                },
                "quantity": {
                  "type": "number",
                  "description": "Quantity grouping."
                },
                "spread": {
                  "type": "object",
                  "properties": {
                    "mean": {
                      "type": "number",
                      "description": "Mean spread value."
                    },
                    "median": {
                      "type": "number",
                      "description": "Median spread value."
                    },
                    "min": {
                      "type": "number",
                      "description": "Minimum spread value."
                    },
                    "max": {
                      "type": "number",
                      "description": "Maximum spread value."
                    },
                    "quantile_25": {
                      "type": "number",
                      "description": "25th percentile spread value."
                    },
                    "quantile_75": {
                      "type": "number",
                      "description": "75th percentile spread value."
                    }
                  }
                }
              }
            }
          }
        }
      },
      "StagedOrder": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string"
          },
          "allocations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "number"
                },
                "fund": {
                  "type": "string"
                }
              }
            }
          },
          "ccy": {
            "type": "string"
          },
          "cl_order_id": {
            "type": "string"
          },
          "correlation_id": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "created_ts": {
            "type": "number"
          },
          "far_fixing_date": {
            "type": "string"
          },
          "far_quantity": {
            "type": "number"
          },
          "far_tenor": {
            "type": "string"
          },
          "fixing_date": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "include_venues": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "market": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "pricing_mode": {
            "type": "string",
            "enum": [
              "ESP",
              "RFQ"
            ]
          },
          "product": {
            "type": "string",
            "enum": [
              "CFD",
              "Forward",
              "Future",
              "NDF",
              "NDFSwap",
              "Perp",
              "Spot",
              "Swap"
            ]
          },
          "quantity": {
            "type": "number"
          },
          "remarks": {
            "type": "string"
          },
          "shared": {
            "type": "boolean"
          },
          "side": {
            "type": "string",
            "enum": [
              "Buy",
              "Buy/Sell",
              "Sell",
              "Sell/Buy"
            ]
          },
          "source_sys": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "strategy_parameters": {
            "type": "object"
          },
          "strategy_type": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "tenor": {
            "type": "string"
          },
          "updated_by": {
            "type": "string"
          },
          "updated_ts": {
            "type": "number"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "account",
          "created_by",
          "created_ts",
          "id",
          "market",
          "pricing_mode",
          "product",
          "quantity",
          "shared",
          "side",
          "source_sys",
          "state",
          "symbol",
          "tenor",
          "venue"
        ]
      },
      "StagedOrderCreate": {
        "type": "object",
        "properties": {
          "shared": {
            "type": "boolean",
            "default": true
          },
          "orders": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "account": {
                  "type": "string"
                },
                "ccy": {
                  "type": "string"
                },
                "exclude_venues": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "far_fixing_date": {
                  "type": "string"
                },
                "far_quantity": {
                  "type": "number"
                },
                "far_tenor": {
                  "type": "string"
                },
                "fixing_date": {
                  "type": "string"
                },
                "include_venues": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "note": {
                  "type": "string"
                },
                "price": {
                  "type": "number"
                },
                "pricing_mode": {
                  "type": "string",
                  "enum": [
                    "ESP",
                    "RFQ"
                  ]
                },
                "product": {
                  "type": "string",
                  "enum": [
                    "Spot",
                    "Future",
                    "CFD",
                    "Swap",
                    "Perp",
                    "NDF",
                    "Forward",
                    "NDFSwap"
                  ]
                },
                "quantity": {
                  "type": "number"
                },
                "remarks": {
                  "type": "string"
                },
                "side": {
                  "type": "string",
                  "enum": [
                    "Buy",
                    "Sell",
                    "Buy/Sell",
                    "Sell/Buy"
                  ]
                },
                "strategy_type": {
                  "type": "string"
                },
                "strategy_parameters": {
                  "type": "object"
                },
                "symbol": {
                  "type": "string"
                },
                "tenor": {
                  "type": "string"
                },
                "venue": {
                  "type": "string"
                },
                "venue_group": {
                  "type": "string"
                }
              },
              "required": [
                "account",
                "product",
                "quantity",
                "side",
                "symbol"
              ]
            }
          }
        },
        "required": [
          "orders"
        ]
      },
      "StagedOrderLock": {
        "type": "object",
        "properties": {
          "correlation_id": {
            "type": "string"
          }
        },
        "required": [
          "correlation_id"
        ]
      },
      "StagedOrderUpdate": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string"
          },
          "ccy": {
            "type": "string"
          },
          "correlation_id": {
            "type": "string"
          },
          "far_fixing_date": {
            "type": "string"
          },
          "far_quantity": {
            "type": "number"
          },
          "far_tenor": {
            "type": "string"
          },
          "fixing_date": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "include_venues": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "market": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "pricing_mode": {
            "type": "string",
            "enum": [
              "ESP",
              "RFQ"
            ]
          },
          "product": {
            "type": "string",
            "enum": [
              "CFD",
              "Forward",
              "Future",
              "NDF",
              "NDFSwap",
              "Perp",
              "Spot",
              "Swap"
            ]
          },
          "quantity": {
            "type": "number"
          },
          "remarks": {
            "type": "string"
          },
          "shared": {
            "type": "boolean"
          },
          "side": {
            "type": "string",
            "enum": [
              "Buy",
              "Buy/Sell",
              "Sell",
              "Sell/Buy"
            ]
          },
          "state": {
            "type": "string"
          },
          "strategy_parameters": {
            "type": "object"
          },
          "strategy_type": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "tenor": {
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "correlation_id"
        ]
      },
      "Strategy": {
        "properties": {
          "description": {
            "description": "Human readable long description.",
            "type": "string"
          },
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "flags": {
            "description": "Flags to indicate the capabilities of the strategy.",
            "type": "number"
          },
          "id": {
            "description": "Unique identifer for the object.",
            "type": "number"
          },
          "order_type": {
            "description": "Order type for the strategy. e.g. Limit, Market",
            "type": "string"
          },
          "parameters": {
            "description": "Parameters for the strategy.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "default_value": {
                  "description": "Default value for the parameter if not provided.",
                  "type": "string"
                },
                "description": {
                  "description": "Human readable long description.",
                  "type": "string"
                },
                "display": {
                  "description": "Human readable description.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the parameter.",
                  "type": "string"
                },
                "options": {
                  "description": "Possible values of the parameter.",
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "priority": {
                  "description": "Display order for the parameter.",
                  "type": "number"
                },
                "required": {
                  "description": "Whether the parameter is required.",
                  "type": "boolean"
                },
                "value_type": {
                  "description": "Data type of the parameter.",
                  "type": "string"
                }
              }
            }
          },
          "priority": {
            "description": "Display order for the strategies.",
            "type": "number"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          },
          "time_type": {
            "description": "Time in force for the strategy.",
            "type": "string"
          },
          "venue": {
            "description": "The venue the strategy can be used with.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "symbol"
        ]
      },
      "Stream": {
        "properties": {
          "created_ts": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "display": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "updated_ts": {
            "type": "number"
          }
        },
        "required": [
          "created_ts",
          "display",
          "symbol"
        ]
      },
      "StreamMapping": {
        "properties": {
          "account": {
            "type": "object",
            "properties": {
              "display": {
                "type": "string"
              },
              "liquidity_location": {
                "type": "string",
                "enum": [
                  "london",
                  "mixed",
                  "newyork",
                  "singapore"
                ]
              },
              "liquidity_type": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "FullAmountLadder",
                    "FullAmountStack",
                    "SweepableStack"
                  ]
                }
              },
              "symbol": {
                "type": "string"
              }
            }
          },
          "account_override": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "enabled": {
            "type": "boolean"
          },
          "market": {
            "type": "string"
          },
          "organization": {
            "type": "object",
            "properties": {
              "display": {
                "type": "string"
              },
              "symbol": {
                "type": "string"
              }
            }
          },
          "underlying": {
            "type": "string"
          },
          "users": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "account",
          "enabled",
          "market",
          "underlying"
        ]
      },
      "StreamMappingRevision": {
        "properties": {
          "account": {
            "description": "The account for this revision.",
            "type": "string"
          },
          "id": {
            "description": "The ID of this revision.",
            "type": "string"
          },
          "snapshot": {
            "description": "Whether this revision has a snapshot.",
            "type": "boolean"
          },
          "timestamp": {
            "description": "Created time in unix milliseconds.",
            "type": "number"
          },
          "user": {
            "description": "The user who created this revision.",
            "type": "string"
          },
          "venue": {
            "description": "The venue for this revision.",
            "type": "string"
          }
        },
        "required": [
          "account",
          "id",
          "timestamp",
          "user",
          "venue"
        ]
      },
      "StreamMappingUpdate": {
        "properties": {
          "account": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "market": {
            "type": "string"
          },
          "underlying": {
            "type": "string"
          }
        },
        "required": [
          "account",
          "enabled",
          "market",
          "underlying"
        ]
      },
      "StreamUpdate": {
        "properties": {
          "display": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "Tenor": {
        "properties": {
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "id": {
            "description": "Unique identifer for the object.",
            "type": "number"
          },
          "priority": {
            "description": "Display order for the tenor.",
            "type": "number"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "symbol"
        ]
      },
      "TokenTimestamps": {
        "properties": {
          "created_ts": {
            "description": "Created time in unix nanoseconds.",
            "type": "number"
          },
          "updated_ts": {
            "description": "Updated time in unix nanoseconds.",
            "type": "number"
          }
        },
        "required": [
          "created_ts",
          "updated_ts"
        ]
      },
      "Trade": {
        "properties": {
          "accnt": {
            "type": "string"
          },
          "cost": {
            "type": "number"
          },
          "exec_id": {
            "type": "string"
          },
          "exec_venue": {
            "type": "string"
          },
          "instr": {
            "type": "string"
          },
          "liq_ind": {
            "type": "string"
          },
          "market": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "qty": {
            "type": "number"
          },
          "qty_type": {
            "type": "string"
          },
          "quote_id": {
            "type": "string"
          },
          "settl_date": {
            "type": "string"
          },
          "side": {
            "type": "string"
          },
          "tenor": {
            "type": "string"
          },
          "trans_ts": {
            "type": "number"
          },
          "user": {
            "type": "string"
          }
        }
      },
      "Trend": {
        "type": "object",
        "properties": {
          "hour": {
            "type": "string",
            "description": "Hour interval key."
          },
          "day": {
            "type": "string",
            "description": "Day interval key."
          },
          "week": {
            "type": "string",
            "description": "Week interval key."
          },
          "month": {
            "type": "string",
            "description": "Month interval key."
          },
          "quarter": {
            "type": "string",
            "description": "Quarter interval key."
          },
          "year": {
            "type": "string",
            "description": "Year interval key."
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "account": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "display": {
                          "type": "string"
                        },
                        "symbol": {
                          "type": "string"
                        }
                      }
                    }
                  ],
                  "description": "Account grouping."
                },
                "asset_type": {
                  "type": "string",
                  "description": "Asset type grouping."
                },
                "client": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "display": {
                          "type": "string"
                        },
                        "symbol": {
                          "type": "string"
                        }
                      }
                    }
                  ],
                  "description": "Client grouping."
                },
                "instrument": {
                  "type": "string",
                  "description": "Instrument grouping."
                },
                "location": {
                  "type": "string",
                  "description": "Location grouping."
                },
                "product": {
                  "type": "string",
                  "description": "Product grouping."
                },
                "protocol": {
                  "type": "string",
                  "description": "Protocol grouping."
                },
                "user": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        }
                      }
                    }
                  ],
                  "description": "User grouping."
                },
                "venue": {
                  "type": "string",
                  "description": "Venue grouping."
                },
                "filled": {
                  "type": "number",
                  "description": "Number of filled orders."
                },
                "filled_volume_usd": {
                  "type": "number",
                  "description": "Volume of filled orders in USD."
                },
                "fill_rate": {
                  "type": "number",
                  "description": "Fill rate."
                },
                "market_share": {
                  "type": "number",
                  "description": "Market share."
                },
                "order_volume_usd": {
                  "type": "number",
                  "description": "Order volume in USD."
                },
                "reject_rate": {
                  "type": "number",
                  "description": "Reject rate."
                },
                "rejected": {
                  "type": "number",
                  "description": "Number of rejected orders."
                },
                "venue_rtt_max": {
                  "type": "number",
                  "description": "Maximum round-trip time."
                },
                "venue_rtt_mean": {
                  "type": "number",
                  "description": "Mean round-trip time."
                },
                "venue_rtt_median": {
                  "type": "number",
                  "description": "Median round-trip time."
                }
              }
            }
          }
        },
        "additionalProperties": false
      },
      "Underlying": {
        "properties": {
          "display": {
            "type": "string"
          },
          "instr": {
            "type": "string"
          },
          "instr_type": {
            "type": "string"
          },
          "pool": {
            "type": "number"
          },
          "symbol": {
            "type": "string"
          },
          "venue_symbol": {
            "type": "string"
          }
        },
        "required": [
          "display",
          "instr",
          "instr_type",
          "pool",
          "symbol"
        ]
      },
      "UnderlyingMetadata": {
        "properties": {
          "comp_id": {
            "type": "string"
          },
          "display": {
            "type": "string"
          },
          "pool": {
            "type": "number"
          },
          "quote_type": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "venue": {
            "type": "string"
          }
        },
        "required": [
          "display",
          "pool",
          "quote_type",
          "region",
          "venue"
        ]
      },
      "UpdateDomainSlug": {
        "properties": {
          "domain_slug": {
            "description": "Unique, lowercase custom domain slug used to identify the organization on inbound requests.",
            "type": "string"
          }
        },
        "required": [
          "domain_slug"
        ]
      },
      "User": {
        "properties": {
          "active_ts": {
            "type": "number"
          },
          "country": {
            "type": "string"
          },
          "created_ts": {
            "type": "number"
          },
          "email": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "mfa": {
            "type": "string"
          },
          "password_ts": {
            "type": "number"
          },
          "picture": {
            "type": "string"
          },
          "require_mfa": {
            "type": "boolean"
          },
          "require_reset": {
            "type": "boolean"
          },
          "suspended": {
            "type": "boolean"
          },
          "updated_ts": {
            "type": "number"
          }
        },
        "required": [
          "created_ts",
          "email",
          "id",
          "name"
        ]
      },
      "UserActivity": {
        "properties": {
          "ip": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "success": {
            "type": "string"
          },
          "ts": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "browser": {
            "type": "string"
          },
          "browserVersion": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "location": {
            "type": "string"
          },
          "os": {
            "type": "string"
          },
          "platform": {
            "type": "string"
          },
          "region": {
            "type": "string"
          }
        },
        "required": [
          "ip",
          "provider",
          "reason",
          "success",
          "ts",
          "type",
          "browser",
          "browserVersion",
          "city",
          "location",
          "os",
          "platform",
          "region"
        ]
      },
      "UserAllocation": {
        "properties": {
          "account": {
            "type": "string"
          },
          "allocations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "fund": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "UserLimit": {
        "properties": {
          "user": {
            "type": "string"
          },
          "instr": {
            "type": "string"
          },
          "instr_type": {
            "type": "string"
          },
          "limit": {
            "type": "number"
          }
        }
      },
      "UserLimitUpdate": {
        "properties": {
          "user": {
            "type": "string"
          },
          "instr": {
            "type": "string"
          },
          "instr_type": {
            "type": "string"
          },
          "limit": {
            "type": "number"
          }
        },
        "required": [
          "user",
          "instr",
          "instr_type",
          "limit"
        ]
      },
      "UserProductLimit": {
        "properties": {
          "product": {
            "type": "string",
            "enum": [
              "Spot",
              "Forward",
              "Swap",
              "NDF",
              "NDFSwap"
            ]
          },
          "soft_limit": {
            "type": "number",
            "minimum": 0
          },
          "hard_limit": {
            "type": "number",
            "minimum": 0
          }
        }
      },
      "UserUpdate": {
        "properties": {
          "email": {
            "description": "The users email address.",
            "type": "string"
          },
          "name": {
            "description": "The full name of the user.",
            "type": "string"
          },
          "picture": {
            "description": "A https link to the users picture.",
            "type": "string"
          }
        }
      },
      "UserUpdateAdmin": {
        "properties": {
          "email": {
            "description": "The users email address.",
            "type": "string"
          },
          "name": {
            "description": "The full name of the user.",
            "type": "string"
          },
          "organization": {
            "description": "The users organization.",
            "type": "string"
          },
          "picture": {
            "description": "A https link to the users picture.",
            "type": "string"
          },
          "username": {
            "description": "A default username for the user.",
            "type": "string"
          }
        }
      },
      "Venue": {
        "properties": {
          "display": {
            "description": "Human readable description.",
            "type": "string"
          },
          "flags": {
            "description": "Flags to indicate the capabilities of the venue.",
            "type": "number"
          },
          "id": {
            "description": "Unique identifer for the object.",
            "type": "number"
          },
          "symbol": {
            "description": "Machine readable identifier.",
            "type": "string"
          }
        },
        "required": [
          "symbol"
        ]
      },
      "VenueAllocation": {
        "properties": {
          "amount": {
            "description": "The allocation amount",
            "type": "string"
          },
          "fund": {
            "description": "The allocation fund",
            "type": "string"
          },
          "id": {
            "description": "The allocation id",
            "type": "string"
          },
          "tag": {
            "description": "The allocation tag",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "fund",
          "id",
          "tag"
        ]
      }
    },
    "securitySchemes": {
      "bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "bearer": []
    }
  ],
  "externalDocs": {
    "url": "https://developer.reactivemarkets.com"
  }
}